ref: c57fe0690fd947c8f285d6a87319c07408ada42f
dir: /sys/src/boot/alphapc/dat.h/
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;