/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
#ifndef _SYS_SELECT_H_
#define _SYS_SELECT_H_
+#include <sys/appleapiopts.h>
+
+#ifdef __APPLE_API_UNSTABLE
+
+__BEGIN_DECLS
+
+#ifdef KERNEL
+#include <kern/wait_queue.h>
+#endif
+
/*
* Used to maintain information about processes that wish to be
* notified when I/O becomes possible.
*/
struct selinfo {
- void *si_thread; /* thread to be notified */
- short si_flags; /* see below */
+#ifdef KERNEL
+ struct wait_queue wait_queue; /* wait_queue for wait/wakeup */
+#else
+ char wait_queue[16];
+#endif
+ u_int si_flags; /* see below */
};
+
#define SI_COLL 0x0001 /* collision occurred */
-#define SI_SBSEL 0x0002 /* select socket buffer wanted replaces SB_SEL */
+#define SI_RECORDED 0x0004 /* select has been recorded */
+#define SI_INITED 0x0008 /* selinfo has been inited */
+#define SI_CLEAR 0x0010 /* selinfo has been cleared */
#ifdef KERNEL
struct proc;
-void selrecord __P((struct proc *selector, struct selinfo *));
+void selrecord __P((struct proc *selector, struct selinfo *, void *));
void selwakeup __P((struct selinfo *));
void selthreadclear __P((struct selinfo *));
-#endif
+#endif /* KERNEL */
+
+__END_DECLS
+
+#endif /* __APPLE_API_UNSTABLE */
#endif /* !_SYS_SELECT_H_ */