[BACK]Return to sysarch.h CVS log [TXT][DIR] Up to [local] / sys / arch / amd64 / include

Annotation of sys/arch/amd64/include/sysarch.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: sysarch.h,v 1.3 2004/02/27 23:45:55 deraadt Exp $     */
                      2: /*     $NetBSD: sysarch.h,v 1.1 2003/04/26 18:39:48 fvdl Exp $ */
                      3:
                      4: #ifndef _AMD64_SYSARCH_H_
                      5: #define _AMD64_SYSARCH_H_
                      6:
                      7: /*
                      8:  * Architecture specific syscalls (amd64)
                      9:  */
                     10: #define AMD64_GET_LDT  0
                     11: #define AMD64_SET_LDT  1
                     12: #define        AMD64_IOPL      2
                     13: #define        AMD64_GET_IOPERM        3
                     14: #define        AMD64_SET_IOPERM        4
                     15: #define        AMD64_VM86      5
                     16: #define        AMD64_PMC_INFO  8
                     17: #define        AMD64_PMC_STARTSTOP 9
                     18: #define        AMD64_PMC_READ  10
                     19: #define AMD64_GET_MTRR   11
                     20: #define AMD64_SET_MTRR   12
                     21:
                     22: /*
                     23:  * XXX todo.
                     24:  */
                     25: struct amd64_get_ldt_args {
                     26:        int start;
                     27:        union descriptor *desc;
                     28:        int num;
                     29: };
                     30:
                     31: struct amd64_set_ldt_args {
                     32:        int start;
                     33:        union descriptor *desc;
                     34:        int num;
                     35: };
                     36:
                     37: struct amd64_iopl_args {
                     38:        int iopl;
                     39: };
                     40:
                     41: struct amd64_get_ioperm_args {
                     42:        u_long *iomap;
                     43: };
                     44:
                     45: struct amd64_set_ioperm_args {
                     46:        u_long *iomap;
                     47: };
                     48:
                     49: struct amd64_pmc_info_args {
                     50:        int     type;
                     51:        int     flags;
                     52: };
                     53:
                     54: #define        PMC_TYPE_NONE           0
                     55: #define        PMC_TYPE_I586           1
                     56: #define        PMC_TYPE_I686           2
                     57:
                     58: #define        PMC_INFO_HASTSC         0x01
                     59:
                     60: #define        PMC_NCOUNTERS           2
                     61:
                     62: struct amd64_pmc_startstop_args {
                     63:        int counter;
                     64:        u_int64_t val;
                     65:        u_int8_t event;
                     66:        u_int8_t unit;
                     67:        u_int8_t compare;
                     68:        u_int8_t flags;
                     69: };
                     70:
                     71: #define        PMC_SETUP_KERNEL        0x01
                     72: #define        PMC_SETUP_USER          0x02
                     73: #define        PMC_SETUP_EDGE          0x04
                     74: #define        PMC_SETUP_INV           0x08
                     75:
                     76: struct amd64_pmc_read_args {
                     77:        int counter;
                     78:        u_int64_t val;
                     79:        u_int64_t time;
                     80: };
                     81:
                     82: struct amd64_get_mtrr_args {
                     83:        struct mtrr *mtrrp;
                     84:        int *n;
                     85: };
                     86:
                     87: struct amd64_set_mtrr_args {
                     88:        struct mtrr *mtrrp;
                     89:        int *n;
                     90: };
                     91:
                     92:
                     93: #ifdef _KERNEL
                     94: int amd64_iopl(struct proc *, void *, register_t *);
                     95: int amd64_get_mtrr(struct proc *, void *, register_t *);
                     96: int amd64_set_mtrr(struct proc *, void *, register_t *);
                     97: #else
                     98: int amd64_get_ldt(int, union descriptor *, int);
                     99: int amd64_set_ldt(int, union descriptor *, int);
                    100: int amd64_iopl(int);
                    101: int amd64_get_ioperm(u_long *);
                    102: int amd64_set_ioperm(u_long *);
                    103: int amd64_pmc_info(struct amd64_pmc_info_args *);
                    104: int amd64_pmc_startstop(struct amd64_pmc_startstop_args *);
                    105: int amd64_pmc_read(struct amd64_pmc_read_args *);
                    106: int amd64_set_mtrr(struct mtrr *, int *);
                    107: int amd64_get_mtrr(struct mtrr *, int *);
                    108: int sysarch(int, void *);
                    109: #endif
                    110:
                    111: #endif /* !_AMD64_SYSARCH_H_ */

CVSweb