You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

82 lines
2.0 KiB

#ifdef lint
util_restart_save_state()
{
return 0;
}
util_restart_restore_state()
{
}
#else
static char rcsid[] = "$Id: state.c,v 1.1 1997/11/04 22:38:50 fabio Exp $";
#ifdef vax
int util_restart_state[32];
util_restart_save_state()
{
asm("movl sp,_util_save_sp");
asm("movl r1,_util_restart_state");
asm("movl r2,_util_restart_state+4");
asm("movl r3,_util_restart_state+8");
asm("movl r4,_util_restart_state+12");
asm("movl r5,_util_restart_state+16");
asm("movl r6,_util_restart_state+20");
asm("movl r7,_util_restart_state+24");
asm("movl r8,_util_restart_state+28");
asm("movl r9,_util_restart_state+32");
asm("movl r10,_util_restart_state+36");
asm("movl r11,_util_restart_state+40");
asm("movl 8(fp),_util_restart_state+44");
asm("movl 12(fp),_util_restart_state+48");
asm("movl 16(fp),_util_restart_state+52");
asm("movl $0,r0");
}
util_restart_restore_state()
{
asm("movl _util_restart_state,r1");
asm("movl _util_restart_state+4,r2");
asm("movl _util_restart_state+8,r3");
asm("movl _util_restart_state+12,r4");
asm("movl _util_restart_state+16,r5");
asm("movl _util_restart_state+20,r6");
asm("movl _util_restart_state+24,r7");
asm("movl _util_restart_state+28,r8");
asm("movl _util_restart_state+32,r9");
asm("movl _util_restart_state+36,r10");
asm("movl _util_restart_state+40,r11");
asm("movl _util_restart_state+44,ap");
asm("movl _util_restart_state+48,fp");
asm("addl3 fp,$4,sp");
asm("movl _util_restart_state+52,r0");
asm("jmp (r0)");
}
#endif
#if defined(sun) && ! defined(sparc)
int util_restart_state[32];
util_restart_save_state()
{
asm("movel sp,_util_save_sp");
asm("movel sp@,_util_restart_state");
asm("movel sp@(0x4),_util_restart_state+4");
asm("moveml #0xFFFF,_util_restart_state+8");
return 0;
}
util_restart_restore_state()
{
asm("moveml _util_restart_state+8,#0xFFFF");
asm("movel _util_restart_state+4,sp@(0x4)");
asm("movel _util_restart_state,sp@");
return 1;
}
#endif
#endif