Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
808 | serge | 1 | |
2 | |||
3 | |||
4 | { |
||
5 | if(!delay) delay++; |
||
6 | delay*=2000; |
||
7 | |||
8 | |||
9 | ( |
||
10 | "1:\n\t" |
||
11 | "xorl %%eax, %%eax \n\t" |
||
12 | "cpuid \n\t" |
||
13 | "decl %%edi \n\t" |
||
14 | "jnz 1b" |
||
15 | : |
||
16 | :"D"(delay) |
||
17 | :"eax","ebx","ecx","edx" |
||
18 | ); |
||
19 | } |
||
20 | |||
21 | |||
22 | { |
||
23 | u32 retval; |
||
24 | |||
25 | |||
26 | ( |
||
27 | "call *__imp__PciApi" |
||
28 | :"=eax" (retval) |
||
29 | :"a" (cmd) |
||
30 | :"memory" |
||
31 | ); |
||
32 | return retval; |
||
33 | }; |
||
34 | |||
35 | |||
36 | u32 __RegService(char *name, srv_proc_t proc) |
||
37 | { |
||
38 | u32 retval; |
||
39 | |||
40 | |||
41 | ( |
||
42 | "pushl %%eax \n\t" |
||
43 | "pushl %%ebx \n\t" |
||
44 | "call *__imp__RegService \n\t" |
||
45 | :"=eax" (retval) |
||
46 | :"a" (proc), "b" (name) |
||
47 | :"memory" |
||
48 | ); |
||
49 | return retval; |
||
50 | }; |
||
51 | */ |
||
52 | |||
53 | |||
54 | { |
||
55 | void *retval; |
||
56 | |||
57 | |||
58 | ( |
||
59 | "call *__imp__CreateObject \n\t" |
||
60 | :"=eax" (retval) |
||
61 | :"a" (size),"b"(pid) |
||
62 | :"esi","edi", "memory" |
||
63 | ); |
||
64 | |||
65 | |||
66 | } |
||
67 | |||
68 | |||
69 | { |
||
70 | asm __volatile__ |
||
71 | ( |
||
72 | "call *__imp__DestroyObject" |
||
73 | : |
||
74 | :"a" (obj) |
||
75 | :"ebx","edx","esi","edi", "memory" |
||
76 | ); |
||
77 | } |
||
78 |