[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     ! 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