public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* interpreting semantics of ipc system call
@ 2010-09-29 22:03 Andreas Saebjoernsen
  2010-09-29 22:16 ` David Daney
  2010-09-30 10:04 ` Américo Wang
  0 siblings, 2 replies; 5+ messages in thread
From: Andreas Saebjoernsen @ 2010-09-29 22:03 UTC (permalink / raw)
  To: linux-kernel

We are developing a simulator that can simulate any specimen x86 linux program.
Our simulator has a simulated memory, unlike the concrete memory state of
tools like Valgrind, so that we can do concrete symbolic execution. Instead of
reimplementing the system calls we marshal the system calls called by
the specimen.

I am currently working on marshaling calls to the ipc system call (system
call 117) which has the following signature

int ipc(unsigned int call, int first, int second, int third, void
*ptr, long fifth)

I have a problem interpreting what the size is of the data structure
pointed to by
the 'void*', and I have been unable to locate good documentation or code on the
semantics of this system call.

Could you please help me interpret the size of the data structure
pointed to by the
'void*' or point me to documentation/code for the ipc system call?

kind regards,
Andreas

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: interpreting semantics of ipc system call
  2010-09-29 22:03 interpreting semantics of ipc system call Andreas Saebjoernsen
@ 2010-09-29 22:16 ` David Daney
  2010-09-30 10:04 ` Américo Wang
  1 sibling, 0 replies; 5+ messages in thread
From: David Daney @ 2010-09-29 22:16 UTC (permalink / raw)
  To: Andreas Saebjoernsen; +Cc: linux-kernel

On 09/29/2010 03:03 PM, Andreas Saebjoernsen wrote:
> We are developing a simulator that can simulate any specimen x86 linux program.
> Our simulator has a simulated memory, unlike the concrete memory state of
> tools like Valgrind, so that we can do concrete symbolic execution. Instead of
> reimplementing the system calls we marshal the system calls called by
> the specimen.
>
> I am currently working on marshaling calls to the ipc system call (system
> call 117) which has the following signature
>
> int ipc(unsigned int call, int first, int second, int third, void
> *ptr, long fifth)
>
> I have a problem interpreting what the size is of the data structure
> pointed to by
> the 'void*', and I have been unable to locate good documentation or code on the
> semantics of this system call.
 >
 > Could you please help me interpret the size of the data structure
 > pointed to by the
 > 'void*' or point me to documentation/code for the ipc system call?

man 2 
{ipc,msgctl,msgget,msgrcv,msgsnd,semctl,semget,semop,semtimedop,shmat,shmctl,shmdt,shmget}

Also look at the source code for the system call in ipc/syscall.c and 
the glibc sources.

David Daney


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: interpreting semantics of ipc system call
  2010-09-29 22:03 interpreting semantics of ipc system call Andreas Saebjoernsen
  2010-09-29 22:16 ` David Daney
@ 2010-09-30 10:04 ` Américo Wang
  2010-09-30 11:37   ` Arnd Bergmann
  1 sibling, 1 reply; 5+ messages in thread
From: Américo Wang @ 2010-09-30 10:04 UTC (permalink / raw)
  To: Andreas Saebjoernsen; +Cc: linux-kernel

On Wed, Sep 29, 2010 at 03:03:11PM -0700, Andreas Saebjoernsen wrote:
>We are developing a simulator that can simulate any specimen x86 linux program.
>Our simulator has a simulated memory, unlike the concrete memory state of
>tools like Valgrind, so that we can do concrete symbolic execution. Instead of
>reimplementing the system calls we marshal the system calls called by
>the specimen.
>
>I am currently working on marshaling calls to the ipc system call (system
>call 117) which has the following signature
>
>int ipc(unsigned int call, int first, int second, int third, void
>*ptr, long fifth)
>
>I have a problem interpreting what the size is of the data structure
>pointed to by
>the 'void*', and I have been unable to locate good documentation or code on the
>semantics of this system call.


Take a look at ipc/syscall.c, that pointer will be interpreted to different
data structures when you pass different arguments to 'call'.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: interpreting semantics of ipc system call
  2010-09-30 10:04 ` Américo Wang
@ 2010-09-30 11:37   ` Arnd Bergmann
  2010-09-30 23:29     ` Andreas Saebjoernsen
  0 siblings, 1 reply; 5+ messages in thread
From: Arnd Bergmann @ 2010-09-30 11:37 UTC (permalink / raw)
  To: Américo Wang; +Cc: Andreas Saebjoernsen, linux-kernel

On Thursday 30 September 2010, Américo Wang wrote:
> On Wed, Sep 29, 2010 at 03:03:11PM -0700, Andreas Saebjoernsen wrote:
> >We are developing a simulator that can simulate any specimen x86 linux program.
> >Our simulator has a simulated memory, unlike the concrete memory state of
> >tools like Valgrind, so that we can do concrete symbolic execution. Instead of
> >reimplementing the system calls we marshal the system calls called by
> >the specimen.
> >
> >I am currently working on marshaling calls to the ipc system call (system
> >call 117) which has the following signature
> >
> >int ipc(unsigned int call, int first, int second, int third, void
> >*ptr, long fifth)
> >
> >I have a problem interpreting what the size is of the data structure
> >pointed to by
> >the 'void*', and I have been unable to locate good documentation or code on the
> >semantics of this system call.
> 
> 
> Take a look at ipc/syscall.c, that pointer will be interpreted to different
> data structures when you pass different arguments to 'call'.

Right. Note that you can ignore the version field for all practical
purposes and consider it constant.

	Arnd

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: interpreting semantics of ipc system call
  2010-09-30 11:37   ` Arnd Bergmann
@ 2010-09-30 23:29     ` Andreas Saebjoernsen
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Saebjoernsen @ 2010-09-30 23:29 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Américo Wang, linux-kernel

Thank you! I am now implementing support for this system call. Looking at the
data structures that the 'void*' can represent it will probably take a
some time,
but the semantics is clear.

kind regards,
Andreas

On Thu, Sep 30, 2010 at 4:37 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday 30 September 2010, Américo Wang wrote:
>> On Wed, Sep 29, 2010 at 03:03:11PM -0700, Andreas Saebjoernsen wrote:
>> >We are developing a simulator that can simulate any specimen x86 linux program.
>> >Our simulator has a simulated memory, unlike the concrete memory state of
>> >tools like Valgrind, so that we can do concrete symbolic execution. Instead of
>> >reimplementing the system calls we marshal the system calls called by
>> >the specimen.
>> >
>> >I am currently working on marshaling calls to the ipc system call (system
>> >call 117) which has the following signature
>> >
>> >int ipc(unsigned int call, int first, int second, int third, void
>> >*ptr, long fifth)
>> >
>> >I have a problem interpreting what the size is of the data structure
>> >pointed to by
>> >the 'void*', and I have been unable to locate good documentation or code on the
>> >semantics of this system call.
>>
>>
>> Take a look at ipc/syscall.c, that pointer will be interpreted to different
>> data structures when you pass different arguments to 'call'.
>
> Right. Note that you can ignore the version field for all practical
> purposes and consider it constant.
>
>        Arnd
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-09-30 23:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-29 22:03 interpreting semantics of ipc system call Andreas Saebjoernsen
2010-09-29 22:16 ` David Daney
2010-09-30 10:04 ` Américo Wang
2010-09-30 11:37   ` Arnd Bergmann
2010-09-30 23:29     ` Andreas Saebjoernsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox