2005-04-21 16:53:53 +02:00
|
|
|
#include "syslib.h"
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
PUBLIC int sys_abort(int how, ...)
|
|
|
|
{
|
|
|
|
/* Something awful has happened. Abandon ship. */
|
|
|
|
|
|
|
|
message m;
|
|
|
|
va_list ap;
|
|
|
|
|
|
|
|
va_start(ap, how);
|
|
|
|
if ((m.ABRT_HOW = how) == RBT_MONITOR) {
|
2006-03-03 10:44:55 +01:00
|
|
|
m.ABRT_MON_ENDPT = va_arg(ap, int);
|
2005-04-21 16:53:53 +02:00
|
|
|
m.ABRT_MON_ADDR = va_arg(ap, char *);
|
|
|
|
m.ABRT_MON_LEN = va_arg(ap, size_t);
|
|
|
|
}
|
|
|
|
va_end(ap);
|
|
|
|
|
|
|
|
return(_taskcall(SYSTASK, SYS_ABORT, &m));
|
|
|
|
}
|