xref: /openbsd-src/sys/arch/i386/include/sysarch.h (revision bc7fb762632a0c74a47918c71b9d4571cf6d387d)
1*bc7fb762Sguenther /*	$OpenBSD: sysarch.h,v 1.14 2016/03/24 04:56:08 guenther Exp $	*/
2c0dd7c19Sderaadt /*	$NetBSD: sysarch.h,v 1.8 1996/01/08 13:51:44 mycroft Exp $	*/
3df930be7Sderaadt 
42fa72412Spirofti #ifndef _MACHINE_SYSARCH_H_
52fa72412Spirofti #define _MACHINE_SYSARCH_H_
6df930be7Sderaadt 
7df930be7Sderaadt /*
8df930be7Sderaadt  * Architecture specific syscalls (i386)
9df930be7Sderaadt  */
10df930be7Sderaadt #define	I386_IOPL	2
11c0dd7c19Sderaadt #define	I386_VM86	5
12d65abc75Sguenther #define	I386_GET_FSBASE	6
13d65abc75Sguenther #define	I386_SET_FSBASE	7
14d65abc75Sguenther #define	I386_GET_GSBASE	8
15d65abc75Sguenther #define	I386_SET_GSBASE	9
16df930be7Sderaadt 
17df930be7Sderaadt struct i386_iopl_args {
18df930be7Sderaadt 	int iopl;
19df930be7Sderaadt };
20df930be7Sderaadt 
214a39ccd0Sderaadt #ifdef _KERNEL
224a39ccd0Sderaadt uint32_t i386_get_threadbase(struct proc *, int);
234a39ccd0Sderaadt int i386_set_threadbase(struct proc *, uint32_t, int);
244a39ccd0Sderaadt #else
254a39ccd0Sderaadt 
264a39ccd0Sderaadt #include <sys/cdefs.h>
274a39ccd0Sderaadt 
2807db63b9Ssthen __BEGIN_DECLS
29c4071fd1Smillert int i386_iopl(int);
30d65abc75Sguenther int i386_get_fsbase(void **);
31d65abc75Sguenther int i386_set_fsbase(void *);
32d65abc75Sguenther int i386_get_gsbase(void **);
33d65abc75Sguenther int i386_set_gsbase(void *);
34c19e2b63Sderaadt int sysarch(int, void *);
3507db63b9Ssthen __END_DECLS
36df930be7Sderaadt #endif
37df930be7Sderaadt 
382fa72412Spirofti #endif /* !_MACHINE_SYSARCH_H_ */
39