Home | History | Annotate | Line # | Download | only in include
netbsd32_machdep.h revision 1.1.2.4
      1  1.1.2.4  skrll /*	$NetBSD: netbsd32_machdep.h,v 1.1.2.4 2005/11/10 13:51:35 skrll Exp $	*/
      2      1.1   fvdl 
      3      1.1   fvdl #ifndef _MACHINE_NETBSD32_H_
      4      1.1   fvdl #define _MACHINE_NETBSD32_H_
      5      1.1   fvdl 
      6  1.1.2.1  skrll #include <sys/ucontext.h>
      7  1.1.2.4  skrll #include <compat/sys/ucontext.h>
      8  1.1.2.4  skrll #include <compat/sys/siginfo.h>
      9  1.1.2.1  skrll 
     10      1.1   fvdl typedef	u_int32_t netbsd32_pointer_t;
     11      1.1   fvdl #define	NETBSD32PTR64(p32)	((void *)(u_long)(u_int)(p32))
     12      1.1   fvdl 
     13      1.1   fvdl typedef netbsd32_pointer_t netbsd32_sigcontextp_t;
     14      1.1   fvdl 
     15      1.1   fvdl struct netbsd32_sigcontext13 {
     16  1.1.2.1  skrll 	uint32_t	sc_gs;
     17  1.1.2.1  skrll 	uint32_t	sc_fs;
     18  1.1.2.1  skrll 	uint32_t	sc_es;
     19  1.1.2.1  skrll 	uint32_t	sc_ds;
     20  1.1.2.1  skrll 	uint32_t	sc_edi;
     21  1.1.2.1  skrll 	uint32_t	sc_esi;
     22  1.1.2.1  skrll 	uint32_t	sc_ebp;
     23  1.1.2.1  skrll 	uint32_t	sc_ebx;
     24  1.1.2.1  skrll 	uint32_t	sc_edx;
     25  1.1.2.1  skrll 	uint32_t	sc_ecx;
     26  1.1.2.1  skrll 	uint32_t	sc_eax;
     27      1.1   fvdl 	/* XXX */
     28  1.1.2.1  skrll 	uint32_t	sc_eip;
     29  1.1.2.1  skrll 	uint32_t	sc_cs;
     30  1.1.2.1  skrll 	uint32_t	sc_eflags;
     31  1.1.2.1  skrll 	uint32_t	sc_esp;
     32  1.1.2.1  skrll 	uint32_t	sc_ss;
     33      1.1   fvdl 
     34  1.1.2.1  skrll 	uint32_t	sc_onstack;	/* sigstack state to restore */
     35  1.1.2.1  skrll 	uint32_t	sc_mask;	/* signal mask to restore (old style) */
     36      1.1   fvdl 
     37  1.1.2.1  skrll 	uint32_t	sc_trapno;	/* XXX should be above */
     38  1.1.2.1  skrll 	uint32_t	sc_err;
     39      1.1   fvdl };
     40      1.1   fvdl 
     41      1.1   fvdl struct netbsd32_sigcontext {
     42  1.1.2.1  skrll 	uint32_t	sc_gs;
     43  1.1.2.1  skrll 	uint32_t	sc_fs;
     44  1.1.2.1  skrll 	uint32_t	sc_es;
     45  1.1.2.1  skrll 	uint32_t	sc_ds;
     46  1.1.2.1  skrll 	uint32_t	sc_edi;
     47  1.1.2.1  skrll 	uint32_t	sc_esi;
     48  1.1.2.1  skrll 	uint32_t	sc_ebp;
     49  1.1.2.1  skrll 	uint32_t	sc_ebx;
     50  1.1.2.1  skrll 	uint32_t	sc_edx;
     51  1.1.2.1  skrll 	uint32_t	sc_ecx;
     52  1.1.2.1  skrll 	uint32_t	sc_eax;
     53      1.1   fvdl 	/* XXX */
     54  1.1.2.1  skrll 	uint32_t	sc_eip;
     55  1.1.2.1  skrll 	uint32_t	sc_cs;
     56  1.1.2.1  skrll 	uint32_t	sc_eflags;
     57  1.1.2.1  skrll 	uint32_t	sc_esp;
     58  1.1.2.1  skrll 	uint32_t	sc_ss;
     59      1.1   fvdl 
     60  1.1.2.1  skrll 	uint32_t	sc_onstack;	/* sigstack state to restore */
     61  1.1.2.1  skrll 	uint32_t	__sc_mask13;	/* signal mask to restore (old style) */
     62      1.1   fvdl 
     63  1.1.2.1  skrll 	uint32_t	sc_trapno;	/* XXX should be above */
     64  1.1.2.1  skrll 	uint32_t	sc_err;
     65      1.1   fvdl 
     66      1.1   fvdl 	sigset_t sc_mask;		/* signal mask to restore (new style) */
     67      1.1   fvdl };
     68      1.1   fvdl 
     69      1.1   fvdl #define sc_sp sc_esp
     70      1.1   fvdl #define sc_fp sc_ebp
     71      1.1   fvdl #define sc_pc sc_eip
     72      1.1   fvdl #define sc_ps sc_eflags
     73      1.1   fvdl 
     74  1.1.2.1  skrll struct netbsd32_sigframe_sigcontext {
     75  1.1.2.1  skrll 	uint32_t	sf_ra;
     76  1.1.2.1  skrll 	int32_t		sf_signum;
     77  1.1.2.1  skrll 	int32_t		sf_code;
     78  1.1.2.1  skrll 	uint32_t	sf_scp;
     79  1.1.2.1  skrll 	struct netbsd32_sigcontext sf_sc;
     80  1.1.2.1  skrll };
     81  1.1.2.1  skrll 
     82  1.1.2.1  skrll struct netbsd32_sigframe_siginfo {
     83  1.1.2.1  skrll 	uint32_t	sf_ra;
     84  1.1.2.1  skrll 	int32_t		sf_signum;
     85  1.1.2.1  skrll 	uint32_t	sf_sip;
     86  1.1.2.1  skrll 	uint32_t	sf_ucp;
     87  1.1.2.1  skrll 	siginfo32_t	sf_si;
     88  1.1.2.1  skrll 	ucontext32_t	sf_uc;
     89      1.1   fvdl };
     90      1.1   fvdl 
     91      1.1   fvdl struct reg32 {
     92      1.1   fvdl 	int	r_eax;
     93      1.1   fvdl 	int	r_ecx;
     94      1.1   fvdl 	int	r_edx;
     95      1.1   fvdl 	int	r_ebx;
     96      1.1   fvdl 	int	r_esp;
     97      1.1   fvdl 	int	r_ebp;
     98      1.1   fvdl 	int	r_esi;
     99      1.1   fvdl 	int	r_edi;
    100      1.1   fvdl 	int	r_eip;
    101      1.1   fvdl 	int	r_eflags;
    102      1.1   fvdl 	int	r_cs;
    103      1.1   fvdl 	int	r_ss;
    104      1.1   fvdl 	int	r_ds;
    105      1.1   fvdl 	int	r_es;
    106      1.1   fvdl 	int	r_fs;
    107      1.1   fvdl 	int	r_gs;
    108      1.1   fvdl };
    109      1.1   fvdl 
    110      1.1   fvdl struct fpreg32 {
    111      1.1   fvdl 	char	__data[108];
    112      1.1   fvdl };
    113      1.1   fvdl 
    114      1.1   fvdl struct mtrr32 {
    115      1.1   fvdl 	uint64_t base;
    116      1.1   fvdl 	uint64_t len;
    117      1.1   fvdl 	uint8_t type;
    118      1.1   fvdl 	uint8_t __pad0[3];
    119      1.1   fvdl 	int flags;
    120      1.1   fvdl 	uint32_t owner;
    121      1.1   fvdl } __attribute__((packed));
    122      1.1   fvdl 
    123      1.1   fvdl struct x86_64_get_mtrr_args32 {
    124      1.1   fvdl 	uint32_t mtrrp;
    125      1.1   fvdl 	uint32_t n;
    126      1.1   fvdl };
    127      1.1   fvdl 
    128      1.1   fvdl struct x86_64_set_mtrr_args32 {
    129      1.1   fvdl 	uint32_t mtrrp;
    130      1.1   fvdl 	uint32_t n;
    131      1.1   fvdl };
    132      1.1   fvdl 
    133  1.1.2.1  skrll #define NETBSD32_MID_MACHINE MID_I386
    134      1.1   fvdl 
    135      1.1   fvdl #endif /* _MACHINE_NETBSD32_H_ */
    136