NetBSD/sys/arch/x86_64/include/netbsd32_machdep.h
fvdl 9b4c0e34d2 Initial commit of the port to AMD's upcoming 64 bit architecture, the
x86-64. Since there's no hardware available yet, this port is only
known to run on the Simics simulator for at the moment, and as such
uses the PC devices that it simulates for now. It will be developed
more (and cleaned up) as the hardware becomes available.
2001-06-19 00:19:12 +00:00

107 lines
1.9 KiB
C

/* $NetBSD: netbsd32_machdep.h,v 1.1 2001/06/19 00:20:11 fvdl Exp $ */
#ifndef _MACHINE_NETBSD32_H_
#define _MACHINE_NETBSD32_H_
typedef u_int32_t netbsd32_sigcontextp_t;
struct netbsd32_sigcontext13 {
int sc_gs;
int sc_fs;
int sc_es;
int sc_ds;
int sc_edi;
int sc_esi;
int sc_ebp;
int sc_ebx;
int sc_edx;
int sc_ecx;
int sc_eax;
/* XXX */
int sc_eip;
int sc_cs;
int sc_eflags;
int sc_esp;
int sc_ss;
int sc_onstack; /* sigstack state to restore */
int sc_mask; /* signal mask to restore (old style) */
int sc_trapno; /* XXX should be above */
int sc_err;
};
struct netbsd32_sigcontext {
int sc_gs;
int sc_fs;
int sc_es;
int sc_ds;
int sc_edi;
int sc_esi;
int sc_ebp;
int sc_ebx;
int sc_edx;
int sc_ecx;
int sc_eax;
/* XXX */
int sc_eip;
int sc_cs;
int sc_eflags;
int sc_esp;
int sc_ss;
int sc_onstack; /* sigstack state to restore */
int __sc_mask13; /* signal mask to restore (old style) */
int sc_trapno; /* XXX should be above */
int sc_err;
sigset_t sc_mask; /* signal mask to restore (new style) */
};
#define sc_sp sc_esp
#define sc_fp sc_ebp
#define sc_pc sc_eip
#define sc_ps sc_eflags
struct netbsd32_sigframe {
int sf_signum;
int sf_code;
u_int32_t sf_scp; /* struct sigcontext *sf_scp */
u_int32_t sf_handler; /* sig_t sf_handler; */
struct netbsd32_sigcontext sf_sc;
};
struct reg32 {
int r_eax;
int r_ecx;
int r_edx;
int r_ebx;
int r_esp;
int r_ebp;
int r_esi;
int r_edi;
int r_eip;
int r_eflags;
int r_cs;
int r_ss;
int r_ds;
int r_es;
int r_fs;
int r_gs;
};
struct fpreg32 {
char __data[108];
};
struct exec_package;
void netbsd32_setregs(struct proc *p, struct exec_package *pack, u_long stack);
int netbsd32_sigreturn(struct proc *p, void *v, register_t *retval);
void netbsd32_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code);
extern char netbsd32_sigcode[], netbsd32_esigcode[];
#endif /* _MACHINE_NETBSD32_H_ */