forked from Imagelibrary/rtems
256 lines
3.9 KiB
C
256 lines
3.9 KiB
C
/* signal.c
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#include <signal.h>
|
|
|
|
#include <rtems/system.h>
|
|
#include <rtems/score/thread.h>
|
|
|
|
/*
|
|
* 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
|
|
)
|
|
{
|
|
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
|
|
)
|
|
{
|
|
_Thread_Disable_dispatch();
|
|
_Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );
|
|
_Watchdog_Initialize(
|
|
&_Thread_Executing->Timer,
|
|
_Thread_Delay_ended, /* XXX may need to be POSIX specific */
|
|
_Thread_Executing->Object.id,
|
|
NULL
|
|
);
|
|
_Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds );
|
|
_Thread_Enable_dispatch();
|
|
return 0; /* XXX should account for signal */
|
|
}
|