POK
Main Page
Classes
Files
File List
File Members
syscall.c
1
/*
2
* POK header
3
*
4
* The following file is a part of the POK project. Any modification should
5
* made according to the POK licence. You CANNOT use this file or a part of
6
* this file is this part of a file for your own project
7
*
8
* For more information on the POK licence, please see our LICENCE FILE
9
*
10
* Please follow the coding guidelines described in doc/CODING_GUIDELINES
11
*
12
* Copyright (c) 2007-2009 POK team
13
*
14
* Created by julien on Thu Jan 15 23:34:13 2009
15
*/
16
17
18
#include <core/syscall.h>
19
#include <types.h>
20
21
pok_ret_t pok_do_syscall (pok_syscall_id_t syscall_id,
pok_syscall_args_t
* args)
22
{
23
pok_ret_t ret;
24
uint32_t args_addr;
25
uint32_t id;
26
27
args_addr = (uint32_t) args;
28
id
= (uint32_t) syscall_id;
29
30
asm
volatile
(
"movl %1,%%eax \n\t"
31
"movl %2,%%ebx \n\t"
32
"int $42 \n\t"
33
"movl %%eax, %0"
34
:
"=g"
(ret)
35
:
"g"
(
id
),
"g"
(args_addr)
36
:
"%eax"
,
"%ebx"
37
);
38
return
ret;
39
}
40
libpok
arch
x86
syscall.c
Generated on Fri Jun 1 2012 19:07:13 for POK by
1.8.1