Home | History | Annotate | Line # | Download | only in include
sysarch.h revision 1.1.2.1
      1  1.1.2.1  skrll /*	$NetBSD: sysarch.h,v 1.1.2.1 2004/08/03 10:31:36 skrll Exp $	*/
      2      1.1   fvdl 
      3      1.1   fvdl #ifndef _AMD64_SYSARCH_H_
      4      1.1   fvdl #define _AMD64_SYSARCH_H_
      5      1.1   fvdl 
      6      1.1   fvdl /*
      7      1.1   fvdl  * Architecture specific syscalls (amd64)
      8      1.1   fvdl  */
      9      1.1   fvdl #define X86_64_GET_LDT	0
     10      1.1   fvdl #define X86_64_SET_LDT	1
     11      1.1   fvdl #define	X86_64_IOPL	2
     12      1.1   fvdl #define	X86_64_GET_IOPERM	3
     13      1.1   fvdl #define	X86_64_SET_IOPERM	4
     14      1.1   fvdl #define	X86_64_VM86	5
     15      1.1   fvdl #define	X86_64_PMC_INFO	8
     16      1.1   fvdl #define	X86_64_PMC_STARTSTOP 9
     17      1.1   fvdl #define	X86_64_PMC_READ	10
     18      1.1   fvdl #define X86_64_GET_MTRR   11
     19      1.1   fvdl #define X86_64_SET_MTRR   12
     20      1.1   fvdl 
     21      1.1   fvdl /*
     22      1.1   fvdl  * XXXfvdl todo.
     23      1.1   fvdl  */
     24      1.1   fvdl 
     25      1.1   fvdl #if 0
     26      1.1   fvdl 
     27      1.1   fvdl struct x86_64_get_ldt_args {
     28      1.1   fvdl 	int start;
     29      1.1   fvdl 	union descriptor *desc;
     30      1.1   fvdl 	int num;
     31      1.1   fvdl };
     32      1.1   fvdl 
     33      1.1   fvdl struct x86_64_set_ldt_args {
     34      1.1   fvdl 	int start;
     35      1.1   fvdl 	union descriptor *desc;
     36      1.1   fvdl 	int num;
     37      1.1   fvdl };
     38      1.1   fvdl 
     39      1.1   fvdl #endif
     40      1.1   fvdl 
     41      1.1   fvdl struct x86_64_iopl_args {
     42      1.1   fvdl 	int iopl;
     43      1.1   fvdl };
     44      1.1   fvdl 
     45      1.1   fvdl #if 0
     46      1.1   fvdl 
     47      1.1   fvdl struct x86_64_get_ioperm_args {
     48      1.1   fvdl 	u_long *iomap;
     49      1.1   fvdl };
     50      1.1   fvdl 
     51      1.1   fvdl struct x86_64_set_ioperm_args {
     52      1.1   fvdl 	u_long *iomap;
     53      1.1   fvdl };
     54      1.1   fvdl 
     55      1.1   fvdl struct x86_64_pmc_info_args {
     56      1.1   fvdl 	int	type;
     57      1.1   fvdl 	int	flags;
     58      1.1   fvdl };
     59      1.1   fvdl 
     60      1.1   fvdl #define	PMC_TYPE_NONE		0
     61      1.1   fvdl #define	PMC_TYPE_I586		1
     62      1.1   fvdl #define	PMC_TYPE_I686		2
     63      1.1   fvdl 
     64      1.1   fvdl #define	PMC_INFO_HASTSC		0x01
     65      1.1   fvdl 
     66      1.1   fvdl #define	PMC_NCOUNTERS		2
     67      1.1   fvdl 
     68      1.1   fvdl struct x86_64_pmc_startstop_args {
     69      1.1   fvdl 	int counter;
     70      1.1   fvdl 	u_int64_t val;
     71      1.1   fvdl 	u_int8_t event;
     72      1.1   fvdl 	u_int8_t unit;
     73      1.1   fvdl 	u_int8_t compare;
     74      1.1   fvdl 	u_int8_t flags;
     75      1.1   fvdl };
     76      1.1   fvdl 
     77      1.1   fvdl #define	PMC_SETUP_KERNEL	0x01
     78      1.1   fvdl #define	PMC_SETUP_USER		0x02
     79      1.1   fvdl #define	PMC_SETUP_EDGE		0x04
     80      1.1   fvdl #define	PMC_SETUP_INV		0x08
     81      1.1   fvdl 
     82      1.1   fvdl struct x86_64_pmc_read_args {
     83      1.1   fvdl 	int counter;
     84      1.1   fvdl 	u_int64_t val;
     85      1.1   fvdl 	u_int64_t time;
     86      1.1   fvdl };
     87      1.1   fvdl 
     88      1.1   fvdl #endif /* todo */
     89      1.1   fvdl 
     90      1.1   fvdl struct x86_64_get_mtrr_args {
     91      1.1   fvdl 	struct mtrr *mtrrp;
     92      1.1   fvdl 	int *n;
     93      1.1   fvdl };
     94      1.1   fvdl 
     95      1.1   fvdl struct x86_64_set_mtrr_args {
     96      1.1   fvdl 	struct mtrr *mtrrp;
     97      1.1   fvdl 	int *n;
     98      1.1   fvdl };
     99      1.1   fvdl 
    100      1.1   fvdl 
    101      1.1   fvdl #ifdef _KERNEL
    102      1.1   fvdl int x86_64_iopl __P((struct lwp *, void *, register_t *));
    103      1.1   fvdl int x86_64_get_mtrr __P((struct lwp *, void *, register_t *));
    104      1.1   fvdl int x86_64_set_mtrr __P((struct lwp *, void *, register_t *));
    105      1.1   fvdl #else
    106  1.1.2.1  skrll #include <sys/cdefs.h>
    107  1.1.2.1  skrll 
    108  1.1.2.1  skrll __BEGIN_DECLS
    109      1.1   fvdl int x86_64_get_ldt __P((int, union descriptor *, int));
    110      1.1   fvdl int x86_64_set_ldt __P((int, union descriptor *, int));
    111      1.1   fvdl int x86_64_iopl __P((int));
    112      1.1   fvdl int x86_64_get_ioperm __P((u_long *));
    113      1.1   fvdl int x86_64_set_ioperm __P((u_long *));
    114      1.1   fvdl int x86_64_pmc_info __P((struct x86_64_pmc_info_args *));
    115      1.1   fvdl int x86_64_pmc_startstop __P((struct x86_64_pmc_startstop_args *));
    116      1.1   fvdl int x86_64_pmc_read __P((struct x86_64_pmc_read_args *));
    117      1.1   fvdl int x86_64_set_mtrr __P((struct mtrr *, int *));
    118      1.1   fvdl int x86_64_get_mtrr __P((struct mtrr *, int *));
    119      1.1   fvdl int sysarch __P((int, void *));
    120  1.1.2.1  skrll __END_DECLS
    121      1.1   fvdl #endif
    122      1.1   fvdl 
    123      1.1   fvdl #endif /* !_AMD64_SYSARCH_H_ */
    124