lkml.org 
[lkml]   [1999]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: syscall semantics question
==> Regarding Re: syscall semantics question ; Philip Blundell <pb@nexus.co.uk> 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...

ok

>> 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?

-Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

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