Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 619 → Rev 620

/shark/trunk/oslib/libc/stdlib/stdlib.c
19,21 → 19,57
* For legalese, check out the included GPL license.
*/
 
#include <ll/i386/hw-func.h>
 
#include <ll/i386/stdlib.h>
#include <ll/unistd.h>
 
FILE(stdlib);
 
int ll_exit_mode = EXIT_MODE_REAL;
 
unsigned abs(int x)
{
if (x < 0) return(-x);
else return(x);
if (x < 0) return(-x);
else return(x);
}
 
int ll_set_reboot(int mode)
{
switch(mode) {
case EXIT_MODE_HALT:
ll_exit_mode = EXIT_MODE_HALT;
break;
case EXIT_MODE_COLD:
ll_exit_mode = EXIT_MODE_COLD;
break;
case EXIT_MODE_WARM:
ll_exit_mode = EXIT_MODE_WARM;
break;
default:
ll_exit_mode = EXIT_MODE_REAL;
break;
}
return ll_exit_mode;
}
 
void l1_exit(int code)
{
extern void bios_restore(void);
extern void bios_restore(void);
 
bios_restore();
__exit(code);
bios_restore();
switch (ll_exit_mode) {
case EXIT_MODE_HALT:
halt();
break;
case EXIT_MODE_COLD:
cold_reboot();
break;
case EXIT_MODE_WARM:
warm_reboot();
break;
default:
__exit(code);
break;
}
}