aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/include/os.h
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2006-09-26 02:33:04 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-26 11:49:07 -0400
commit19bdf0409f25a85a45874a5a8da6f3e4edcf4a49 (patch)
tree82abcba44b8026b3dab0e6d26bdf3109bc6bb0cf /arch/um/include/os.h
parent6edf428ed177e333863a8e5c37751a9ec176f241 (diff)
[PATCH] uml: SIGIO cleanups
- Various cleanups in the sigio code. - Removed explicit zero-initializations of a few structures. - Improved some error messages. - An API change - there was an asymmetry between reactivate_fd calling maybe_sigio_broken, which goes through all the machinery of figuring out if a file descriptor supports SIGIO and applying the workaround to it if not, and deactivate_fd, which just turns off the descriptor. This is changed so that only activate_fd calls maybe_sigio_broken, when the descriptor is first seen. reactivate_fd now calls add_sigio_fd, which is symmetric with ignore_sigio_fd. This removes a recursion which makes a critical section look more critical than it really was, obsoleting a big comment to that effect. This requires keeping track of all descriptors which are getting the SIGIO treatment, not just the ones being polled at any given moment, so that reactivate_fd, through add_sigio_fd, doesn't try to tell the SIGIO thread about descriptors it doesn't care about. Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/include/os.h')
-rw-r--r--arch/um/include/os.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/um/include/os.h b/arch/um/include/os.h
index 5316e8a4a4fd..c73dfa78f943 100644
--- a/arch/um/include/os.h
+++ b/arch/um/include/os.h
@@ -329,6 +329,7 @@ extern void os_set_ioignore(void);
329extern void init_irq_signals(int on_sigstack); 329extern void init_irq_signals(int on_sigstack);
330 330
331/* sigio.c */ 331/* sigio.c */
332extern int add_sigio_fd(int fd);
332extern int ignore_sigio_fd(int fd); 333extern int ignore_sigio_fd(int fd);
333extern void maybe_sigio_broken(int fd, int read); 334extern void maybe_sigio_broken(int fd, int read);
334 335