Major numbers for inet, tty, ctty.
Defined _MINIX_VERSION to check for major minix version in applications.
Prototype for (fake) readlink().
# define KSIG_PENDING (NOTIFICATION | 2) /* signal(s) pending */
# define NEW_KMESS (NOTIFICATION | 3) /* new kernel message */
# define HARD_STOP (NOTIFICATION | 4) /* system shutdown */
-#define NR_NOTIFY_TYPES 5 /* nr of bits in mask */
+# define DEV_SELECTED (NOTIFICATION | 5) /* select() notification */
+#define NR_NOTIFY_TYPES 6 /* nr of bits in mask */
/* Shorthands for message parameters passed with notifications. */
#define NOTIFY_SOURCE m_source
#define DEV_GATHER 9 /* fcn code for reading into a vector */
#define TTY_SETPGRP 10 /* fcn code for setpgroup */
#define TTY_EXIT 11 /* a process group leader has exited */
+#define DEV_SELECT 12 /* request select() attention */
#define SUSPEND -998 /* used in interrupts when tty has no data */
/* Field names for messages to block and character device drivers. */
#define POSITION m2_l1 /* file offset */
#define ADDRESS m2_p1 /* core buffer address */
+/* Field names for DEV_SELECT messages to device drivers. */
+#define DEVICE m2_i1 /* minor device */
+#define DEV_SEL_OPS m2_i2 /* which select operations are requested */
+#define DEV_SEL_WATCH m2_i3 /* request notify if no operations are ready */
+
/* Field names used in reply messages from tasks. */
#define REP_PROC_NR m2_i1 /* # of proc on whose behalf I/O was done */
#define REP_STATUS m2_i2 /* bytes transferred or error number */
# define URANDOM_DEV RANDOM_DEV
# define ZERO_DEV 6 /* minor device for /dev/zero */
+#define TTY_MAJOR 4 /* major device no. for ttys */
+#define CTTY_MAJOR 5 /* major device no. for /dev/tty */
+
+#define INET_MAJOR 7 /* major device no. for inet */
+
/* Full device numbers that are special to the boot monitor and FS. */
# define DEV_RAM 0x0100 /* device number of /dev/ram */
# define DEV_BOOT 0x0104 /* device number of /dev/boot */
#define PZ_MEM_PTR m1_p1 /* base */
#define PZ_COUNT m1_i1 /* count */
+/* Field names for SELECT (FS) */
+#define SEL_NFDS m8_i1
+#define SEL_READFDS m8_p1
+#define SEL_WRITEFDS m8_p2
+#define SEL_ERRORFDS m8_p3
+#define SEL_TIMEOUT m8_p4
+
/*===========================================================================*
* Miscellaneous messages, mainly used by IS *
*===========================================================================*/
#define OS_RELEASE "3"
#define OS_VERSION "0.6"
+#define _MINIX_VERSION 3
+
/* This file sets configuration parameters for the MINIX kernel, FS, and PM.
* It is divided up into two main sections. The first section contains
* user-settable parameters. In the second section, various internal system
_PROTOTYPE( int select, (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) );
_PROTOTYPE( void FD_CLR, (int fd, fd_set *fdset));
-_PROTOTYPE( void FD_ISSET, (int fd, fd_set *fdset));
+_PROTOTYPE( int FD_ISSET, (int fd, fd_set *fdset));
_PROTOTYPE( void FD_SET, (int fd, fd_set *fdset));
_PROTOTYPE( void FD_ZERO, (fd_set *fdset));
+/* possible select() operation types; read, write, errors */
+/* (FS/driver internal use only) */
+#define SEL_RD (1 << 0)
+#define SEL_WR (1 << 1)
+#define SEL_ERR (1 << 2)
+#define SEL_NOTIFY (1 << 3) /* not a real select operation */
+
#endif /* _POSIX_SOURCE */
#endif /* _SYS_SELECT_H */
/* The following generic timer management functions are available. They
* can be used to operate on the lists of timers.
*/
-_PROTOTYPE( void tmrs_clrtimer, (timer_t **tmrs, timer_t *tp) );
-_PROTOTYPE( void tmrs_exptimers, (timer_t **tmrs, clock_t now) );
-_PROTOTYPE( void tmrs_settimer, (timer_t **tmrs, timer_t *tp,
- clock_t exp_time, tmr_func_t watchdog) );
+_PROTOTYPE( clock_t tmrs_clrtimer, (timer_t **tmrs, timer_t *tp, clock_t *new_head) );
+_PROTOTYPE( void tmrs_exptimers, (timer_t **tmrs, clock_t now, clock_t *new_head) );
+_PROTOTYPE( clock_t tmrs_settimer, (timer_t **tmrs, timer_t *tp,
+ clock_t exp_time, tmr_func_t watchdog, clock_t *new_head) );
#endif /* _TIMERS_H */
#endif
-_PROTOTYPE( int setcache, (int kb));
+_PROTOTYPE( int readlink, (const char *, char *, int));
#endif /* _UNISTD_H */