Rev 3391 | Rev 4110 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1029 | serge | 1 | |
1630 | serge | 2 | |
3 | |||
1408 | serge | 4 | #define __SYSCALL_H__ |
5 | |||
6 | |||
1029 | serge | 7 | |
8 | |||
1434 | serge | 9 | #define FASTCALL __attribute__ ((fastcall)) __attribute__ ((dllimport)) |
10 | |||
1029 | serge | 11 | |
1434 | serge | 12 | |
13 | |||
1029 | serge | 14 | |
15 | |||
16 | #define PciApi __PciApi |
||
17 | #define CreateObject __CreateObject |
||
18 | #define DestroyObject __DestroyObject |
||
19 | |||
20 | |||
1872 | serge | 21 | |
22 | |||
1029 | serge | 23 | |
24 | |||
25 | |||
26 | void STDCALL FreeKernelSpace(void *mem)__asm__("FreeKernelSpace"); |
||
1408 | serge | 27 | addr_t STDCALL MapIoMem(addr_t base, size_t size, u32_t flags)__asm__("MapIoMem"); |
28 | void* STDCALL KernelAlloc(size_t size)__asm__("KernelAlloc"); |
||
1029 | serge | 29 | void* STDCALL KernelFree(void *mem)__asm__("KernelFree"); |
30 | void* STDCALL UserAlloc(size_t size)__asm__("UserAlloc"); |
||
31 | int STDCALL UserFree(void *mem)__asm__("UserFree"); |
||
32 | |||
33 | |||
1613 | serge | 34 | |
1408 | serge | 35 | |
1616 | serge | 36 | |
1408 | serge | 37 | |
1613 | serge | 38 | addr_t STDCALL AllocPages(count_t count)__asm__("AllocPages"); |
1029 | serge | 39 | void IMPORT __attribute__((regparm(1))) |
2967 | Serge | 40 | FreePage(addr_t page)__asm__("FreePage"); |
41 | void STDCALL MapPage(void *vaddr, addr_t paddr, u32_t flags)__asm__("MapPage"); |
||
3031 | serge | 42 | |
1029 | serge | 43 | |
2967 | Serge | 44 | |
1029 | serge | 45 | |
46 | |||
47 | |||
48 | |||
49 | |||
50 | |||
1434 | serge | 51 | void FASTCALL MutexLock(struct mutex*)__asm__("MutexLock"); |
52 | void FASTCALL MutexUnlock(struct mutex*)__asm__("MutexUnlock"); |
||
53 | |||
1029 | serge | 54 | |
1872 | serge | 55 | u32_t IMPORT GetPid(void)__asm__("GetPid"); |
2169 | serge | 56 | |
1872 | serge | 57 | |
2967 | Serge | 58 | void *fn, void *data)asm("TimerHs"); |
59 | |||
60 | |||
3482 | Serge | 61 | |
62 | |||
1029 | serge | 63 | |
64 | |||
65 | int z, int h)__asm__("SetMouseData"); |
||
66 | |||
67 | |||
1872 | serge | 68 | |
69 | |||
70 | |||
1029 | serge | 71 | u16_t STDCALL PciRead16(u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead16"); |
72 | u32_t STDCALL PciRead32(u32_t bus, u32_t devfn, u32_t reg)__asm__("PciRead32"); |
||
73 | |||
74 | |||
75 | u32_t STDCALL PciWrite16(u32_t bus, u32_t devfn, u32_t reg,u16_t val)__asm__("PciWrite16"); |
||
76 | u32_t STDCALL PciWrite32(u32_t bus, u32_t devfn, u32_t reg,u32_t val)__asm__("PciWrite32"); |
||
77 | |||
78 | |||
79 | PciRead8(PCI_BUS_FROM_TAG(tag),PCI_DFN_FROM_TAG(tag),(reg)) |
||
80 | |||
81 | |||
82 | PciRead16(PCI_BUS_FROM_TAG(tag),PCI_DFN_FROM_TAG(tag),(reg)) |
||
83 | |||
84 | |||
85 | PciRead32(PCI_BUS_FROM_TAG(tag),PCI_DFN_FROM_TAG(tag),(reg)) |
||
86 | |||
87 | |||
88 | PciWrite8(PCI_BUS_FROM_TAG(tag),PCI_DFN_FROM_TAG(tag),(reg),(val)) |
||
89 | |||
90 | |||
91 | PciWrite16(PCI_BUS_FROM_TAG(tag),PCI_DFN_FROM_TAG(tag),(reg),(val)) |
||
92 | |||
93 | |||
94 | PciWrite32(PCI_BUS_FROM_TAG(tag),PCI_DFN_FROM_TAG(tag),(reg),(val)) |
||
95 | |||
96 | |||
3031 | serge | 97 | u8 *val) |
98 | { |
||
99 | *val = PciRead8(dev->busnr, dev->devfn, where); |
||
100 | return 1; |
||
101 | } |
||
102 | |||
103 | |||
104 | u16 *val) |
||
105 | { |
||
106 | *val = PciRead16(dev->busnr, dev->devfn, where); |
||
107 | return 1; |
||
108 | } |
||
109 | |||
110 | |||
111 | u32 *val) |
||
112 | { |
||
113 | *val = PciRead32(dev->busnr, dev->devfn, where); |
||
114 | return 1; |
||
115 | } |
||
116 | |||
117 | |||
118 | u8 val) |
||
119 | { |
||
120 | PciWrite8(dev->busnr, dev->devfn, where, val); |
||
121 | return 1; |
||
122 | } |
||
123 | |||
124 | |||
125 | u16 val) |
||
126 | { |
||
127 | PciWrite16(dev->busnr, dev->devfn, where, val); |
||
128 | return 1; |
||
129 | } |
||
130 | |||
131 | |||
132 | u32 val) |
||
133 | { |
||
134 | PciWrite32(dev->busnr, dev->devfn, where, val); |
||
135 | return 1; |
||
136 | } |
||
137 | |||
138 | |||
1029 | serge | 139 | |
140 | |||
141 | int dbgprintf(const char* format, ...); |
||
142 | |||
143 | |||
144 | |||
145 | |||
1616 | serge | 146 | { |
1029 | serge | 147 | evhandle_t evh; |
1616 | serge | 148 | |
1613 | serge | 149 | |
150 | "call *__imp__CreateEvent" |
||
151 | :"=A"(evh.raw) |
||
1616 | serge | 152 | :"S" (ev), "c"(flags) |
153 | :"memory"); |
||
154 | __asm__ __volatile__ ("":::"ebx","ecx","edx","esi", "edi"); |
||
2005 | serge | 155 | |
1613 | serge | 156 | |
1616 | serge | 157 | }; |
158 | |||
1613 | serge | 159 | |
1616 | serge | 160 | { |
161 | __asm__ __volatile__ ( |
||
162 | "call *__imp__RaiseEvent" |
||
163 | ::"a"(evh.handle),"b"(evh.euid),"d"(flags),"S" (ev) |
||
164 | :"memory"); |
||
165 | __asm__ __volatile__ ("":::"ebx","ecx","edx","esi","edi"); |
||
2005 | serge | 166 | |
1616 | serge | 167 | |
168 | |||
169 | |||
2005 | serge | 170 | { |
1616 | serge | 171 | __asm__ __volatile__ ( |
172 | "call *__imp__WaitEvent" |
||
173 | ::"a"(evh.handle),"b"(evh.euid)); |
||
2005 | serge | 174 | __asm__ __volatile__ ("":::"ebx","ecx","edx","esi","edi"); |
175 | }; |
||
1616 | serge | 176 | |
177 | |||
3391 | Serge | 178 | { |
179 | int retval; |
||
180 | __asm__ __volatile__ ( |
||
181 | "call *__imp__WaitEventTimeout" |
||
182 | :"=a"(retval) |
||
183 | :"a"(evh.handle),"b"(evh.euid), "c"(timeout)); |
||
184 | __asm__ __volatile__ ("":::"ebx","ecx","edx","esi","edi"); |
||
185 | return retval; |
||
186 | }; |
||
187 | |||
188 | |||
2967 | Serge | 189 | { |
190 | __asm__ __volatile__ ( |
||
191 | "call *__imp__DestroyEvent" |
||
192 | ::"a"(evh.handle),"b"(evh.euid)); |
||
193 | __asm__ __volatile__ ("":::"ebx","ecx","edx","esi","edi"); |
||
194 | }; |
||
195 | |||
196 | |||
1616 | serge | 197 | { |
198 | u32_t handle; |
||
199 | |||
200 | |||
201 | "call *__imp__GetEvent" |
||
202 | :"=a"(handle) |
||
203 | :"D"(ev) |
||
204 | :"memory"); |
||
205 | __asm__ __volatile__ ("":::"ebx","ecx","edx", "esi","edi"); |
||
206 | return handle; |
||
1613 | serge | 207 | }; |
208 | |||
209 | |||
1616 | serge | 210 | |
1613 | serge | 211 | { |
212 | int retval; |
||
1029 | serge | 213 | |
214 | |||
215 | :"=a"(retval) |
||
216 | :"a"(61), "b"(1)); |
||
217 | return retval; |
||
218 | } |
||
219 | |||
220 | |||
1613 | serge | 221 | { |
1029 | serge | 222 | int retval; |
223 | |||
224 | |||
225 | :"=a"(retval) |
||
226 | :"a"(61), "b"(2)); |
||
227 | return retval; |
||
228 | } |
||
229 | |||
230 | |||
1613 | serge | 231 | { |
1029 | serge | 232 | int retval; |
233 | |||
234 | |||
235 | :"=a"(retval) |
||
236 | :"a"(61), "b"(3)); |
||
237 | return re |