Home | History | Annotate | Line # | Download | only in include
sysarch.h revision 1.14
      1  1.14  christos /*	$NetBSD: sysarch.h,v 1.14 2003/09/11 19:17:07 christos Exp $	*/
      2   1.3       cgd 
      3   1.2   mycroft #ifndef _I386_SYSARCH_H_
      4   1.2   mycroft #define _I386_SYSARCH_H_
      5   1.2   mycroft 
      6   1.1    brezak /*
      7   1.1    brezak  * Architecture specific syscalls (i386)
      8   1.1    brezak  */
      9   1.1    brezak #define I386_GET_LDT	0
     10   1.1    brezak #define I386_SET_LDT	1
     11   1.7   mycroft #define	I386_IOPL	2
     12   1.7   mycroft #define	I386_GET_IOPERM	3
     13   1.7   mycroft #define	I386_SET_IOPERM	4
     14  1.14  christos #define	I386_OLD_VM86	5
     15  1.10   thorpej #define	I386_PMC_INFO	8
     16  1.10   thorpej #define	I386_PMC_STARTSTOP 9
     17  1.10   thorpej #define	I386_PMC_READ	10
     18  1.11      fvdl #define I386_GET_MTRR	11
     19  1.11      fvdl #define I386_SET_MTRR	12
     20  1.14  christos #define	I386_VM86	13
     21   1.5   mycroft 
     22   1.5   mycroft struct i386_get_ldt_args {
     23   1.5   mycroft 	int start;
     24   1.5   mycroft 	union descriptor *desc;
     25   1.5   mycroft 	int num;
     26   1.5   mycroft };
     27   1.5   mycroft 
     28   1.5   mycroft struct i386_set_ldt_args {
     29   1.5   mycroft 	int start;
     30   1.5   mycroft 	union descriptor *desc;
     31   1.5   mycroft 	int num;
     32   1.5   mycroft };
     33   1.1    brezak 
     34  1.11      fvdl struct i386_get_mtrr_args {
     35  1.11      fvdl 	struct mtrr *mtrrp;
     36  1.11      fvdl 	int *n;
     37  1.11      fvdl };
     38  1.11      fvdl 
     39  1.11      fvdl struct i386_set_mtrr_args {
     40  1.11      fvdl 	struct mtrr *mtrrp;
     41  1.11      fvdl 	int *n;
     42  1.11      fvdl };
     43  1.11      fvdl 
     44   1.7   mycroft struct i386_iopl_args {
     45   1.7   mycroft 	int iopl;
     46   1.7   mycroft };
     47   1.7   mycroft 
     48   1.7   mycroft struct i386_get_ioperm_args {
     49   1.7   mycroft 	u_long *iomap;
     50   1.7   mycroft };
     51   1.7   mycroft 
     52   1.7   mycroft struct i386_set_ioperm_args {
     53   1.7   mycroft 	u_long *iomap;
     54   1.7   mycroft };
     55   1.7   mycroft 
     56  1.10   thorpej struct i386_pmc_info_args {
     57  1.10   thorpej 	int	type;
     58  1.10   thorpej 	int	flags;
     59  1.10   thorpej };
     60  1.10   thorpej 
     61  1.10   thorpej #define	PMC_TYPE_NONE		0
     62  1.10   thorpej #define	PMC_TYPE_I586		1
     63  1.10   thorpej #define	PMC_TYPE_I686		2
     64  1.12  gmcgarry #define	PMC_TYPE_K7		3
     65  1.10   thorpej 
     66  1.10   thorpej #define	PMC_INFO_HASTSC		0x01
     67  1.10   thorpej 
     68  1.12  gmcgarry #define	PMC_NCOUNTERS		4
     69  1.10   thorpej 
     70  1.10   thorpej struct i386_pmc_startstop_args {
     71  1.10   thorpej 	int counter;
     72  1.10   thorpej 	u_int64_t val;
     73  1.10   thorpej 	u_int8_t event;
     74  1.10   thorpej 	u_int8_t unit;
     75  1.10   thorpej 	u_int8_t compare;
     76  1.10   thorpej 	u_int8_t flags;
     77  1.10   thorpej };
     78  1.10   thorpej 
     79  1.10   thorpej #define	PMC_SETUP_KERNEL	0x01
     80  1.10   thorpej #define	PMC_SETUP_USER		0x02
     81  1.10   thorpej #define	PMC_SETUP_EDGE		0x04
     82  1.10   thorpej #define	PMC_SETUP_INV		0x08
     83  1.10   thorpej 
     84  1.10   thorpej struct i386_pmc_read_args {
     85  1.10   thorpej 	int counter;
     86  1.10   thorpej 	u_int64_t val;
     87  1.10   thorpej 	u_int64_t time;
     88  1.10   thorpej };
     89  1.10   thorpej 
     90  1.11      fvdl struct mtrr;
     91  1.11      fvdl 
     92   1.4       jtc #ifndef _KERNEL
     93  1.13    kleink #include <sys/cdefs.h>
     94  1.13    kleink 
     95  1.13    kleink __BEGIN_DECLS
     96   1.1    brezak int i386_get_ldt __P((int, union descriptor *, int));
     97   1.1    brezak int i386_set_ldt __P((int, union descriptor *, int));
     98   1.7   mycroft int i386_iopl __P((int));
     99   1.7   mycroft int i386_get_ioperm __P((u_long *));
    100   1.7   mycroft int i386_set_ioperm __P((u_long *));
    101  1.10   thorpej int i386_pmc_info __P((struct i386_pmc_info_args *));
    102  1.10   thorpej int i386_pmc_startstop __P((struct i386_pmc_startstop_args *));
    103  1.10   thorpej int i386_pmc_read __P((struct i386_pmc_read_args *));
    104  1.11      fvdl int i386_set_mtrr __P((struct mtrr *, int *));
    105  1.11      fvdl int i386_get_mtrr __P((struct mtrr *, int *));
    106   1.9     perry int sysarch __P((int, void *));
    107  1.13    kleink __END_DECLS
    108   1.1    brezak #endif
    109   1.2   mycroft 
    110   1.2   mycroft #endif /* !_I386_SYSARCH_H_ */
    111