/* * $Id$ */ #include #include #include /* * 3.3.2 Send a Signal to a Process, P1003.1b-1993, p. 68 * * NOTE: Behavior of kill() depends on _POSIX_SAVED_IDS. */ int kill( pid_t pid, int sig ) { /* SIGABRT comes from abort via assert */ if ( sig == SIGABRT ) { exit( 1 ); } return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69 */ int sigemptyset( sigset_t *set ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69 */ int sigfillset( sigset_t *set ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69 */ int sigaddset( sigset_t *set, int signo ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69 */ int sigdelset( sigset_t *set, int signo ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69 */ int sigismember( const sigset_t *set, int signo ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.4 Examine and Change Signal Action, P1003.1b-1993, p. 70 */ int sigaction( int sig, const struct sigaction *act, struct sigaction *oact ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.5 Examine and Change Blocked Signals, P1003.1b-1993, p. 73 * * NOTE: P1003.1c/D10, p. 37 adds pthread_sigmask(). */ int sigprocmask( int how, const sigset_t *set, sigset_t *oset ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.5 Examine and Change Blocked Signals, P1003.1b-1993, p. 73 * * NOTE: P1003.1c/D10, p. 37 adds pthread_sigmask(). */ int pthread_sigmask( int how, const sigset_t *set, sigset_t *oset ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.6 Examine Pending Signals, P1003.1b-1993, p. 75 */ int sigpending( sigset_t *set ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.7 Wait for a Signal, P1003.1b-1993, p. 75 */ int sigsuspend( const sigset_t *sigmask ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 * * NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ int sigwaitinfo( const sigset_t *set, siginfo_t *info ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 * * NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 * * NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ int sigwait( const sigset_t *set, int *sig ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */ int sigqueue( pid_t pid, int signo, const union sigval value ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.3.10 Send a Signal to a Thread, P1003.1c/D10, p. 43 */ int pthread_kill( pthread_t thread, int sig ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.4.1 Schedule Alarm, P1003.1b-1993, p. 79 */ unsigned int alarm( unsigned int seconds ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.4.2 Suspend Process Execution, P1003.1b-1993, p. 80 */ int pause( void ) { return POSIX_NOT_IMPLEMENTED(); } /* * 3.4.3 Delay Process Execution, P1003.1b-1993, p. 73 */ unsigned int sleep( unsigned int seconds ) { /* XXX can we get away with this implementation? */ struct timespec tp; tp.tv_sec = seconds; tp.tv_nsec = 0; return nanosleep( &tp, NULL ); }