123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- typedef struct Hwrpb Hwrpb;
- typedef struct Hwcpu Hwcpu;
- typedef struct Hwcrb Hwcrb;
- typedef struct Hwdsr Hwdsr;
- typedef struct Procdesc Procdesc;
- typedef struct Memdsc Memdsc;
- typedef struct Memclust Memclust;
- typedef struct PCB PCB;
- struct Hwrpb
- {
- uvlong phys;
- uvlong sign;
- uvlong rev;
- uvlong size;
- uvlong cpu0;
- uvlong by2pg;
- uvlong pabits;
- uvlong maxasn;
- char ssn[16];
- uvlong systype;
- uvlong sysvar;
- uvlong sysrev;
- uvlong ifreq;
- uvlong cfreq;
- uvlong vptb;
- uvlong resv;
- uvlong tbhint;
- uvlong ncpu;
- uvlong cpulen;
- uvlong cpuoff;
- uvlong nctb;
- uvlong ctblen;
- uvlong ctboff;
- uvlong crboff;
- uvlong memoff;
- uvlong confoff;
- uvlong fruoff;
- uvlong termsaveva;
- uvlong termsavex;
- uvlong termrestva;
- uvlong termrestx;
- uvlong termresetva;
- uvlong termresetx;
- uvlong sysresv;
- uvlong hardresv;
- uvlong csum;
- uvlong rxrdymsk;
- uvlong txrdymsk;
- uvlong dsroff; /* rev 6 or higher */
- };
- extern Hwrpb* hwrpb;
- struct Hwcpu
- {
- uvlong hwpcb[16];
- uvlong state;
- uvlong palmainlen;
- uvlong palscratchlen;
- uvlong palmainpa;
- uvlong palscratchpa;
- uvlong palrev;
- uvlong cputype;
- uvlong cpuvar;
- uvlong cpurev;
- uvlong serial[2];
- /* more crap ... */
- };
- struct Hwdsr
- {
- vlong smm;
- uvlong lurtoff;
- uvlong sysnameoff;
- };
- struct Hwcrb
- {
- uvlong dispatchva;
- uvlong dispatchpa;
- uvlong fixupva;
- uvlong fixuppa;
- /* more, uninteresting crud */
- };
- struct Procdesc
- {
- uvlong bollocks;
- uvlong addr;
- };
- struct Memclust
- {
- uvlong pfn;
- uvlong npages;
- uvlong ntest;
- uvlong vabitm;
- uvlong pabitm;
- uvlong csumbitm;
- uvlong usage;
- };
- struct Memdsc
- {
- uvlong csum;
- uvlong opt;
- uvlong nclust;
- Memclust clust[1];
- };
- enum
- {
- PRINTSIZE = 256,
- MB = (1024*1024),
- };
- #define L_MAGIC ((((4*23)+0)*23)+7)
- typedef struct Exec Exec;
- struct Exec
- {
- uchar magic[4]; /* magic number */
- uchar text[4]; /* size of text segment */
- uchar data[4]; /* size of initialized data */
- uchar bss[4]; /* size of uninitialized data */
- uchar syms[4]; /* size of symbol table */
- uchar entry[4]; /* entry point */
- uchar spsz[4]; /* size of sp/pc offset table */
- uchar pcsz[4]; /* size of pc/line number table */
- };
- enum {
- Eaddrlen = 6,
- ETHERMINTU = 60, /* minimum transmit size */
- ETHERMAXTU = 1514, /* maximum transmit size */
- ETHERHDRSIZE = 14, /* size of an ethernet header */
- MaxEther = 2,
- };
- typedef struct {
- uchar d[Eaddrlen];
- uchar s[Eaddrlen];
- uchar type[2];
- uchar data[1500];
- uchar crc[4];
- } Etherpkt;
- /*
- * Process Control Block, used by OSF/1 PALcode when we switch to it
- */
- struct PCB {
- uvlong ksp;
- uvlong usp;
- uvlong ptbr;
- ulong asn;
- ulong pcc;
- uvlong unique;
- ulong fen;
- ulong dummy;
- uvlong rsrv1;
- uvlong rsrv2;
- };
- #include "conf.h"
- extern Bootconf conf;
|