[lkml]   [1999]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: syscall semantics question
==> Regarding Re: syscall semantics question ; Philip Blundell <> adds:

>> A system call is defined as:
>> static inline _syscall1 (int, restart, char*, filename);

pb> That defines a routine to actually perform the syscall; look at
>> asm/unistd.h>. It's not a declaration for...


>> Is it correct to assume on all architectures that one could cast the
>> first arg to a syscall as a 'struct pt_regs'?

pb> Not in general. Why do you want to do this?

I found the answer to my question (args a0-a5 are in registers,
then pt_regs magically appears on the stack).

This is a checkpoint/restart system. I need to port it from x86 to alpha.
So, I need to save the regs, and need to know what else to save. I have
tried saving the switch_stack, and getting the usp (via rdusp()). However,
when I restart the app, replace the struct pt_regs on the stack with the
regs from the image, as well as the switch_stack, and issue wrusp(), I
manage to set the pc someplace not within the app's stack. I get a core
dump and gdb reports:

warning: Hit heuristic-fence-post without finding
warning: enclosing function for address 0x200001930f4
Otherwise, you told GDB there
was a function where there isn't one...

So, I was wondering if I am missing something obvious?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:54    [W:0.031 / U:19.324 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site