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