This is reg.h in view mode; [Download] [Up]
/* * HISTORY * 09-Nov-86 John Seamons (jks) at NeXT * Ported to NeXT. */ #ifndef _M68K_REG_ #define _M68K_REG_ /* * processor exception frame definitions */ /* format codes */ #define EF_NORMAL4 0x0 #define EF_THROWAWAY 0x1 #define EF_NORMAL6 0x2 #define EF_FLOATPT 0x3 /* 040 only */ #define EF_ACCESS 0x7 /* 040 only */ #define EF_COPROC 0x9 /* 030 only */ #define EF_SHORTBUS 0xa /* 030 only */ #define EF_LONGBUS 0xb /* 030 only */ #ifndef __ASSEMBLER__ struct excp_frame { short e_sr; int e_pc; unsigned short e_format : 4, e_vector : 12; }; struct special_status { unsigned short ss_faultc : 1, ss_faultb : 1, ss_rerunc : 1, ss_rerunb : 1, : 3, ss_faultrerund : 1, ss_rmw : 1, ss_read : 1, ss_cyclesize : 2, : 1, ss_fcode : 3; }; #define e_faultc e_ss.ss_faultc #define e_faultb e_ss.ss_faultb #define e_rerunc e_ss.ss_rerunc #define e_rerunb e_ss.ss_rerunb #define e_faultd e_ss.ss_faultrerund #define e_rerund e_ss.ss_faultrerund #define e_rmw e_ss.ss_rmw #define e_read e_ss.ss_read #define e_cyclesize e_ss.ss_cyclesize #define e_fcode e_ss.ss_fcode #endif /* bit fields as masks */ #define SS_FAULTC 0x8000 #define SS_FAULTB 0x4000 #define SS_FAULTD 0x0100 #define SS_READ 0x0040 #define SS_FCODE 0x0007 #ifndef __ASSEMBLER__ struct special_status_040 { unsigned short ss_cp : 1, ss_cu : 1, ss_ct : 1, ss_cm : 1, ss_ma : 1, ss_atc : 1, ss_lk : 1, ss_rw : 1, : 1, ss_size : 2, ss_tt : 2, ss_tm : 3; }; #define e_cp e_ss.ss_cp #define e_cu e_ss.ss_cu #define e_ct e_ss.ss_ct #define e_cm e_ss.ss_cm #define e_ma e_ss.ss_ma #define e_atc e_ss.ss_atc #define e_lk e_ss.ss_lk #define e_rw e_ss.ss_rw #define e_size e_ss.ss_size #define e_tt e_ss.ss_tt #define e_tm e_ss.ss_tm #endif /* bit fields as masks */ #define SS_CP 0x8000 #define SS_CU 0x4000 #define SS_CT 0x2000 #define SS_CM 0x1000 #define SS_MA 0x0800 #define SS_ATC 0x0400 #define SS_LK 0x0200 #define SS_RW 0x0100 #define SS_SIZE 0x0060 #define SS_TT 0x0018 #define SS_TM 0x0007 #ifndef __ASSEMBLER__ struct writeback_status { unsigned short : 8, wbs_v : 1, wbs_size : 2, wbs_tt : 2, wbs_tm : 3; }; struct excp_normal6 { int e_ia; }; struct excp_coproc { int e_ia; short e_internal; short e_op; int e_effaddr; }; struct excp_floatpt { int e_effaddr; }; struct excp_access { int e_effaddr; struct special_status_040 e_ss; struct writeback_status e_wb3s, e_wb2s, e_wb1s; int e_faultaddr; int e_wb3a, e_wb3d; int e_wb2a, e_wb2d; int e_wb1a, e_wb1d_pd0; int e_pd1, e_pd2, e_pd3; }; struct excp_shortbus { short e_internal1; struct special_status e_ss; short e_ipipec; short e_ipipeb; int e_faultaddr; short e_internal2[2]; int e_dob; short e_internal3[2]; }; struct excp_longbus { short e_internal1; struct special_status e_ss; short e_ipipec; short e_ipipeb; int e_faultaddr; short e_internal2[2]; int e_dob; short e_internal3[4]; int e_stagebaddr; short e_internal4[2]; int e_dib; short e_internal5[22]; }; struct regs { int r_dreg[8]; #define r_d0 r_dreg[0] int r_areg[8]; #define r_fp r_areg[6] #define r_sp r_areg[7] /* system sp saved after switch to SR_SUPER */ #if MONITOR int r_usp; /* user sp */ int r_isp; int r_msp; int r_sfc, r_dfc; int r_vbr; int r_caar, r_cacr; int r_crph, r_crpl; int r_srph, r_srpl; int r_tc; int r_tt0, r_tt1; int r_ts; #endif struct excp_frame r_evec; #define r_sr r_evec.e_sr #define r_pc r_evec.e_pc #define r_format r_evec.e_format #define r_vector r_evec.e_vector }; /* offset definitions into u.u_ar0 for machine independent code */ #define R0 0 #define R1 1 #define SP 15 #define PS 16 #define PCH 16 #define PCL 17 #endif #endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.