## diffname pc/dat.h 1991/0612
## diff -e /dev/null /n/bootesdump/1991/0612/sys/src/9/safari/dat.h
0a
typedef struct Conf Conf;
typedef struct Label Label;
typedef struct Lock Lock;
typedef struct MMU MMU;
typedef struct Mach Mach;
typedef struct PMMU PMMU;
typedef struct Ureg Ureg;
typedef struct User User;
#define MACHP(n) (n==0? &mach0 : *(Mach**)0)
extern Mach mach0;
extern void (*kprofp)(ulong);
/*
* parameters for sysproc.c
*/
#define AOUT_MAGIC I_MAGIC
struct Lock
{
char key;
ulong pc;
};
struct Label
{
ulong sp;
ulong pc;
ushort sr;
};
/*
* floating point registers
*/
enum
{
FPinit,
FPactive,
FPdirty,
};
struct FPsave
{
uchar type;
uchar size;
short reserved;
char junk[212]; /* 68881: sizes 24, 180; 68882: 56, 212 */
char reg[3*4+8*12];
};
struct Conf
{
int nmach; /* processors */
int nproc; /* processes */
int npgrp; /* process groups */
ulong npage0; /* total physical pages of memory, bank 0 */
ulong npage1; /* total physical pages of memory, bank 1 */
ulong base0; /* base of bank 0 */
ulong base1; /* base of bank 1 */
ulong npage; /* total physical pages of memory */
ulong norig; /* origins */
ulong npte; /* contiguous page table entries */
ulong nmod; /* single (modifying) page table entries */
int nalarm; /* alarms */
int nchan; /* channels */
int nenv; /* distinct environment values */
int nenvchar; /* environment text storage */
int npgenv; /* environment files per process group */
int nmtab; /* mounted-upon channels per process group */
int nmount; /* mounts */
int nmntdev; /* mounted devices (devmnt.c) */
int nmntbuf; /* buffers for devmnt.c messages */
int nmnthdr; /* headers for devmnt.c messages */
int nstream; /* streams */
int nqueue; /* stream queues */
int nblock; /* stream blocks */
int nsrv; /* public servers (devsrv.c) */
int nbitmap; /* bitmap structs (devbit.c) */
int nbitbyte; /* bytes of bitmap data (devbit.c) */
int nfont; /* font structs (devbit.c) */
int nurp; /* max urp conversations */
int nasync; /* number of async protocol modules */
int npipe; /* number of pipes */
int nservice; /* number of services */
int nfsyschan; /* number of filsys open channels */
ulong maxialloc; /* maximum bytes used by ialloc */
int copymode; /* 0 is copy on write, 1 is copy on reference */
int portispaged; /* ??? */
int nnoifc;
int nnoconv;
ulong ipif; /* Ip protocol interfaces */
ulong ip; /* Ip conversations per interface */
ulong arp; /* Arp table size */
ulong frag; /* Ip fragment assemble queue size */
int cntrlp; /* panic on ^P */
};
/*
* MMU stuff in proc
*/
struct PMMU
{
MMU *mmu;
};
#include "../port/portdat.h"
/*
* machine dependent definitions not used by ../port/dat.h
*/
struct Mach
{
int machno; /* physical id of processor */
ulong splpc; /* pc of last caller to splhi */
int mmask; /* 1<<m->machno */
ulong ticks; /* of the clock since boot time */
Proc *proc; /* current process on this processor */
Label sched; /* scheduler wakeup */
Lock alarmlock; /* access to alarm list */
void *alarm; /* alarms bound to this clock */
int fpstate; /* state of fp registers on machine */
int tlbfault;
int tlbpurge;
int pfault;
int cs;
int syscall;
int spinlock;
int intr;
int stack[1];
};
/*
* Fake kmap
*/
typedef void KMap;
#define VA(k) ((ulong)(k))
#define kmap(p) (KMap*)(p->pa|KZERO)
#define kunmap(k)
#define NERR 15
#define NNOTE 5
#define NFD 100
struct User
{
Proc *p;
int nerrlab;
Label errlab[NERR];
char error[ERRLEN];
FPsave fpsave; /* address of this is known by vdb */
char elem[NAMELEN]; /* last name element from namec */
Chan *slash;
Chan *dot;
Chan *fd[NFD];
int maxfd; /* highest fd in use */
/*
* Rest of structure controlled by devproc.c and friends.
* lock(&p->debug) to modify.
*/
Note note[NNOTE];
short nnote;
short notified; /* sysnoted is due */
int (*notify)(void*, char*);
void *ureg;
ushort svvo;
ushort svsr;
};
struct
{
Lock;
short machs;
short exiting;
}active;
extern Mach *m;
extern User *u;
.
## diffname pc/dat.h 1991/0614
## diff -e /n/bootesdump/1991/0612/sys/src/9/safari/dat.h /n/bootesdump/1991/0614/sys/src/9/safari/dat.h
30,49d
## diffname pc/dat.h 1991/0702
## diff -e /n/bootesdump/1991/0614/sys/src/9/safari/dat.h /n/bootesdump/1991/0702/sys/src/9/safari/dat.h
68,76c
ulong copymode; /* 0 is copy on write, 1 is copy on reference */
ulong portispaged; /* ??? */
ulong nnoifc;
ulong nnoconv;
ulong cntrlp; /* panic on ^P */
.
45,66c
ulong nalarm; /* alarms */
ulong nchan; /* channels */
ulong nenv; /* distinct environment values */
ulong nenvchar; /* environment text storage */
ulong npgenv; /* environment files per process group */
ulong nmtab; /* mounted-upon channels per process group */
ulong nmount; /* mounts */
ulong nmntdev; /* mounted devices (devmnt.c) */
ulong nmntbuf; /* buffers for devmnt.c messages */
ulong nmnthdr; /* headers for devmnt.c messages */
ulong nstream; /* streams */
ulong nqueue; /* stream queues */
ulong nblock; /* stream blocks */
ulong nsrv; /* public servers (devsrv.c) */
ulong nbitmap; /* bitmap structs (devbit.c) */
ulong nbitbyte; /* bytes of bitmap data (devbit.c) */
ulong nfont; /* font structs (devbit.c) */
ulong nurp; /* max urp conversations */
ulong nasync; /* number of async protocol modules */
ulong npipe; /* number of pipes */
ulong nservice; /* number of services */
ulong nfsyschan; /* number of filsys open channels */
.
34,36c
ulong nmach; /* processors */
ulong nproc; /* processes */
ulong npgrp; /* process groups */
.
31a
struct FPsave
{
int type;
};
.
1a
typedef struct FPsave FPsave;
.
## diffname pc/dat.h 1991/0703
## diff -e /n/bootesdump/1991/0702/sys/src/9/safari/dat.h /n/bootesdump/1991/0703/sys/src/9/safari/dat.h
152a
/*
* segment descriptor/gate
*/
struct Segdesc
{
ulong d0;
ulong d1;
};
.
23c
ulong key;
.
7a
typedef struct Segdesc Segdesc;
.
## diffname pc/dat.h 1991/0706
## diff -e /n/bootesdump/1991/0703/sys/src/9/safari/dat.h /n/bootesdump/1991/0706/sys/src/9/safari/dat.h
140,141d
129d
## diffname pc/dat.h 1991/0711
## diff -e /n/bootesdump/1991/0706/sys/src/9/safari/dat.h /n/bootesdump/1991/0711/sys/src/9/safari/dat.h
76,78c
ulong ipif; /* Ip protocol interfaces */
ulong ip; /* Ip conversations per interface */
ulong arp; /* Arp table size */
ulong frag; /* Ip fragment assemble queue size */
.
74a
ulong base0; /* base of bank 0 */
ulong base1; /* base of bank 1 */
.
72,73d
68a
ulong nnoifc; /* number of nonet interfaces */
ulong nnoconv; /* number of nonet conversations/ifc */
.
49,51c
ulong nseg; /* number of segments */
ulong nimage; /* number of page cache image headers */
ulong npagetab; /* number of pte tables */
ulong nswap; /* number of swap pages */
.
44,47c
ulong npage0; /* total physical pages in bank0 */
ulong npage1; /* total physical pages in bank1 */
.
38a
struct FPsave /* ??? needs to be fixed ??? */
{
long fpreg[32];
long fpstatus;
};
.
36c
FPinit,
FPactive,
FPinactive,
.
34c
/*
* FPsave.fpstatus
*/
enum
.
## diffname pc/dat.h 1991/0716
## diff -e /n/bootesdump/1991/0711/sys/src/9/safari/dat.h /n/bootesdump/1991/0716/sys/src/9/safari/dat.h
47,48c
long status;
char reg[66];
.
36c
* FPsave.status
.
## diffname pc/dat.h 1991/0717
## diff -e /n/bootesdump/1991/0716/sys/src/9/safari/dat.h /n/bootesdump/1991/0717/sys/src/9/safari/dat.h
159a
Note lastnote;
.
101c
ulong mmuent[MAXMMU]; /* a process' mmu entries */
Page *mmupg[MAXMMU]; /* mmu pages */
.
98a
#define MAXMMU 4
.
6a
typedef struct Page Page;
.
## diffname pc/dat.h 1991/0718
## diff -e /n/bootesdump/1991/0717/sys/src/9/safari/dat.h /n/bootesdump/1991/0718/sys/src/9/safari/dat.h
141c
#define kmap(p) (KMap*)((p)->pa|KZERO)
.
103,104c
int mmuvalid;
Page *mmu[MAXMMU+MAXSMMU]; /* bottom level page tables */
ulong mmue[MAXMMU+MAXSMMU]; /* top level pointers to mmup pages */
.
100a
#define MAXSMMU 1
.
## diffname pc/dat.h 1991/0720
## diff -e /n/bootesdump/1991/0718/sys/src/9/safari/dat.h /n/bootesdump/1991/0720/sys/src/9/safari/dat.h
168,169c
ulong svcs; /* cs before a notify */
ulong svss; /* ss before a notify */
ulong svflags; /* flags before a notify */
.
## diffname pc/dat.h 1991/0801
## diff -e /n/bootesdump/1991/0720/sys/src/9/safari/dat.h /n/bootesdump/1991/0801/sys/src/9/safari/dat.h
191a
extern int flipD[]; /* for flipping bitblt destination polarity */
.
## diffname pc/dat.h 1991/0809
## diff -e /n/bootesdump/1991/0801/sys/src/9/safari/dat.h /n/bootesdump/1991/0809/sys/src/9/safari/dat.h
94a
ulong nfloppy; /* number of floppy drives */
ulong nhard; /* number of hard drives */
.
## diffname pc/dat.h 1991/0905
## diff -e /n/bootesdump/1991/0809/sys/src/9/safari/dat.h /n/bootesdump/1991/0905/sys/src/9/safari/dat.h
49c
uchar reg[94];
.
46c
struct FPsave
.
## diffname pc/dat.h 1991/0906
## diff -e /n/bootesdump/1991/0905/sys/src/9/safari/dat.h /n/bootesdump/1991/0906/sys/src/9/safari/dat.h
127d
48,49c
uchar regs[108];
.
## diffname pc/dat.h 1991/0916
## diff -e /n/bootesdump/1991/0906/sys/src/9/safari/dat.h /n/bootesdump/1991/0916/sys/src/9/safari/dat.h
107c
ulong mmue[MAXMMU+MAXSMMU]; /* top level pointers to mmu pages */
.
## diffname pc/dat.h 1991/1004
## diff -e /n/bootesdump/1991/0916/sys/src/9/safari/dat.h /n/bootesdump/1991/1004/sys/src/9/safari/dat.h
105,107c
Page *mmutop; /* 1st level table */
Page *mmufree; /* unused page table pages */
Page *mmuused; /* used page table pages */
.
## diffname pc/dat.h 1991/1107
## diff -e /n/bootesdump/1991/1004/sys/src/9/safari/dat.h /n/bootesdump/1991/1107/sys/src/9/safari/dat.h
95a
int dkif; /* number of datakit interfaces */
.
## diffname pc/dat.h 1991/1112
## diff -e /n/bootesdump/1991/1107/sys/src/9/safari/dat.h /n/bootesdump/1991/1112/sys/src/9/safari/dat.h
168a
void *dbgreg; /* User registers for debugging in proc */
.
155d
151a
FPsave fpsave; /* address of this is known by vdb */
.
133c
int load;
.
## diffname pc/dat.h 1991/1210
## diff -e /n/bootesdump/1991/1112/sys/src/9/safari/dat.h /n/bootesdump/1991/1210/sys/src/9/safari/dat.h
195a
enum
{
At= 0,
Attnsx= 1,
};
extern int machtype;
.
## diffname pc/dat.h 1991/1211
## diff -e /n/bootesdump/1991/1210/sys/src/9/safari/dat.h /n/bootesdump/1991/1211/sys/src/9/safari/dat.h
184d
## diffname pc/dat.h 1992/0208
## diff -e /n/bootesdump/1991/1211/sys/src/9/safari/dat.h /n/bootesdump/1992/0208/sys/src/9/safari/dat.h
79c
ulong nsubfont; /* Gsubfont structs (devbit.c) */
.
## diffname pc/dat.h 1992/0209
## diff -e /n/bootesdump/1992/0208/sys/src/9/safari/dat.h /n/bootesdump/1992/0209/sys/src/9/safari/dat.h
78a
int nfont; /* GFont structs (devbit.c) */
.
## diffname pc/dat.h 1992/0228
## diff -e /n/bootesdump/1992/0209/sys/src/9/safari/dat.h /n/bootesdump/1992/0228/sys/src/9/safari/dat.h
81,82d
## diffname pc/dat.h 1992/0622
## diff -e /n/bootesdump/1992/0228/sys/src/9/safari/dat.h /n/bootesdump/1992/0622/sys/src/9/safari/dat.h
77,80d
## diffname pc/dat.h 1992/0625
## diff -e /n/bootesdump/1992/0622/sys/src/9/safari/dat.h /n/bootesdump/1992/0625/sys/src/9/safari/dat.h
153a
Sargs s;
.
91d
63,80d
61d
59c
ulong upages; /* user page pool */
.
55,57c
ulong npage0; /* total physical pages of memory */
ulong npage1; /* total physical pages of memory */
ulong topofmem; /* highest physical address + 1 */
.
## diffname pc/dat.h 1992/06271
## diff -e /n/bootesdump/1992/0625/sys/src/9/safari/dat.h /n/bootesdump/1992/06271/sys/src/9/safari/dat.h
134d
127a
int scallnr; /* sys call number - known by db */
Sargs s; /* address of this is known by db */
.
## diffname pc/dat.h 1992/0725
## diff -e /n/bootesdump/1992/06271/sys/src/9/safari/dat.h /n/bootesdump/1992/0725/sys/src/9/safari/dat.h
69d
## diffname pc/dat.h 1992/0806
## diff -e /n/bootesdump/1992/0725/sys/src/9/safari/dat.h /n/bootesdump/1992/0806/sys/src/9/safari/dat.h
48c
ushort control;
ushort r1;
ushort status;
ushort r2;
ushort tag;
ushort r3;
ulong pc;
ushort selector;
ushort r4;
ulong operand;
ushort oselector;
ushort r5;
uchar regs[80]; /* floating point registers */
.
## diffname pc/dat.h 1992/0807
## diff -e /n/bootesdump/1992/0806/sys/src/9/safari/dat.h /n/bootesdump/1992/0807/sys/src/9/safari/dat.h
66a
ulong monitor; /* has monitor? */
.
## diffname pc/dat.h 1992/0902
## diff -e /n/bootesdump/1992/0808/sys/src/9/safari/dat.h /n/bootesdump/1992/0902/sys/src/9/pc/dat.h
190c
extern int mousetype;
extern int pmutype;
.
187,188c
PMUnsx20= 0,
PMUother= 1,
Mouseserial= 0,
MousePS2= 1,
Mouseother= 2,
.
## diffname pc/dat.h 1992/0903
## diff -e /n/bootesdump/1992/0902/sys/src/9/pc/dat.h /n/bootesdump/1992/0903/sys/src/9/pc/dat.h
195a
extern int resettype;
.
190,192c
/* what kind of mouse */
Mouseother= 0,
Mouseserial= 1,
MousePS2= 2,
/* how to reset the processor */
Resetother= 0,
Reset8042= 1,
Resetheadland= 2,
.
187,188c
/* what kind of power management */
PMUother= 0,
PMUnsx20= 1,
.
184a
/*
* bootline passed by boot program
*/
#define BOOTLINE ((char *)0x80000100)
/*
* configuration info
*/
.
## diffname pc/dat.h 1992/0904
## diff -e /n/bootesdump/1992/0903/sys/src/9/pc/dat.h /n/bootesdump/1992/0904/sys/src/9/pc/dat.h
189,211d
## diffname pc/dat.h 1992/0918
## diff -e /n/bootesdump/1992/0904/sys/src/9/pc/dat.h /n/bootesdump/1992/0918/sys/src/9/pc/dat.h
188a
extern char machtype[];
.
## diffname pc/dat.h 1992/0923
## diff -e /n/bootesdump/1992/0918/sys/src/9/pc/dat.h /n/bootesdump/1992/0923/sys/src/9/pc/dat.h
190c
extern PCArch *arch; /* PC architecture */
.
185,188c
#define BOOTLINE ((char *)0x80000100) /* bootline passed by boot program */
.
179a
/*
* routines for things outside the PC model, like power management
*/
struct PCArch
{
char *id;
void (*reset)(void); /* this should be in the model */
int (*cpuspeed)(int); /* 0 = low, 1 = high */
void (*buzz)(int, int); /* make a noise */
void (*lights)(int); /* turn lights or icons on/off */
int (*serialpower)(int); /* 1 == on, 0 == off */
int (*modempower)(int); /* 1 == on, 0 == off */
int (*extvga)(int); /* 1 == external, 0 == internal */
};
.
6a
typedef struct PCArch PCArch;
.
## diffname pc/dat.h 1992/1105
## diff -e /n/bootesdump/1992/0923/sys/src/9/pc/dat.h /n/bootesdump/1992/1105/sys/src/9/pc/dat.h
84a
ulong ldepth; /* screen depth */
ulong maxx; /* screen width */
ulong maxy; /* screen length */
.
82d
79,80d
## diffname pc/dat.h 1993/0206
## diff -e /n/bootesdump/1992/1105/sys/src/9/pc/dat.h /n/bootesdump/1993/0206/sys/src/9/pc/dat.h
79d
## diffname pc/dat.h 1993/0915
## diff -e /n/bootesdump/1993/0206/sys/src/9/pc/dat.h /n/fornaxdump/1993/0915/sys/src/brazil/pc/dat.h
202c
extern Mach *m;
extern Proc *up;
.
200c
extern int flipD[]; /* for flipping bitblt destination polarity */
extern PCArch *arch; /* PC architecture */
.
198c
#define MAXPCMCIA 8 /* maximum number of PCMCIA cards */
#define BOOTLINE ((char *)0x80000100) /* bootline passed by boot program */
.
195,196c
struct ISAConf {
char type[NAMELEN];
ulong port;
ulong irq;
ulong mem;
ulong size;
uchar ea[6];
};
.
134,163d
90a
#define NCOLOR 1
.
12d
2a
typedef struct ISAConf ISAConf;
.
## diffname pc/dat.h 1993/1013
## diff -e /n/fornaxdump/1993/0915/sys/src/brazil/pc/dat.h /n/fornaxdump/1993/1013/sys/src/brazil/pc/dat.h
179a
extern int cpuflag; /* true if this is a CPU */
.
98a
/*
* things saved in the Proc structure during a notify
*/
struct Notsave
{
ulong svflags;
ulong svcs;
ulong svss;
};
.
7a
typedef struct Notsave Notsave;
.
## diffname pc/dat.h 1993/1201
## diff -e /n/fornaxdump/1993/1013/sys/src/brazil/pc/dat.h /n/fornaxdump/1993/1201/sys/src/brazil/pc/dat.h
127a
int otlbfault;
.
## diffname pc/dat.h 1993/1204
## diff -e /n/fornaxdump/1993/1201/sys/src/brazil/pc/dat.h /n/fornaxdump/1993/1204/sys/src/brazil/pc/dat.h
125a
Schedq runq;
.
## diffname pc/dat.h 1993/1214
## diff -e /n/fornaxdump/1993/1204/sys/src/brazil/pc/dat.h /n/fornaxdump/1993/1214/sys/src/brazil/pc/dat.h
129d
126c
Schedq hiq;
Schedq loq;
.
## diffname pc/dat.h 1994/0311
## diff -e /n/fornaxdump/1993/1214/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0311/sys/src/brazil/pc/dat.h
127a
void (**cbin)(void);
void (**cbout)(void);
void (**cbend)(void);
void (*calls[NCALLBACK])(void);
.
115a
#define NCALLBACK 32
.
## diffname pc/dat.h 1994/0322
## diff -e /n/fornaxdump/1994/0311/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0322/sys/src/brazil/pc/dat.h
84a
ulong ialloc; /* max interrupt time allocation in bytes */
.
28c
ulong sr;
.
## diffname pc/dat.h 1994/0331
## diff -e /n/fornaxdump/1994/0322/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0331/sys/src/brazil/pc/dat.h
132,135c
Callbk* cbin;
Callbk* cbout;
Callbk* cbend;
Callbk calls[NCALLBACK];
.
117,118d
## diffname pc/dat.h 1994/0503
## diff -e /n/fornaxdump/1994/0331/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0503/sys/src/brazil/pc/dat.h
85a
ulong pipeqsize; /* size in bytes of pipe queues */
.
## diffname pc/dat.h 1994/0508
## diff -e /n/fornaxdump/1994/0503/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0508/sys/src/brazil/pc/dat.h
131,135d
## diffname pc/dat.h 1994/0520
## diff -e /n/fornaxdump/1994/0508/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0520/sys/src/brazil/pc/dat.h
193d
## diffname pc/dat.h 1994/0607
## diff -e /n/fornaxdump/1994/0520/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0607/sys/src/brazil/pc/dat.h
197a
extern char filaddr[];
.
## diffname pc/dat.h 1994/0612
## diff -e /n/fornaxdump/1994/0607/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0612/sys/src/brazil/pc/dat.h
23c
#define EXEC_MAGIC(magic) (magic==I_MAGIC)
.
## diffname pc/dat.h 1994/0621
## diff -e /n/fornaxdump/1994/0612/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0621/sys/src/brazil/pc/dat.h
23c
#define AOUT_MAGIC (I_MAGIC)
.
## diffname pc/dat.h 1994/0728
## diff -e /n/fornaxdump/1994/0621/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0728/sys/src/brazil/pc/dat.h
128,129c
int nrdy;
.
## diffname pc/dat.h 1994/0813
## diff -e /n/fornaxdump/1994/0728/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0813/sys/src/brazil/pc/dat.h
197a
extern ulong crasharea;
.
## diffname pc/dat.h 1994/0814
## diff -e /n/fornaxdump/1994/0813/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0814/sys/src/brazil/pc/dat.h
198d
## diffname pc/dat.h 1994/0823
## diff -e /n/fornaxdump/1994/0814/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0823/sys/src/brazil/pc/dat.h
185a
ulong freq;
.
## diffname pc/dat.h 1994/0908
## diff -e /n/fornaxdump/1994/0823/sys/src/brazil/pc/dat.h /n/fornaxdump/1994/0908/sys/src/brazil/pc/dat.h
189a
enum {
MaxScsi = 4,
NTarget = 8,
};
struct Target {
int ctlrno;
int target;
uchar* inq;
uchar* scratch;
int ok;
};
typedef int (*Scsiio)(Target*, int, uchar*, int, void*, int*);
.
## diffname pc/dat.h 1995/0223
## diff -e /n/fornaxdump/1994/0908/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/0223/sys/src/brazil/pc/dat.h
194d
189a
/*
* SCSI bus
*/
.
179a
/*
* a parsed plan9.ini line
*/
.
## diffname pc/dat.h 1995/0225
## diff -e /n/fornaxdump/1995/0223/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/0225/sys/src/brazil/pc/dat.h
191a
/*
* maps between ISA memory space and PCMCIA card memory space
*/
struct PCMmap
{
ulong ca; /* card address */
ulong cea; /* card end address */
ulong isa; /* ISA address */
int len; /* length of the ISA area */
int attr; /* attribute memory */
int ref;
};
.
9a
typedef struct PCMmap PCMmap;
.
## diffname pc/dat.h 1995/0517
## diff -e /n/fornaxdump/1995/0225/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/0517/sys/src/brazil/pc/dat.h
9a
typedef struct PCIcfg PCIcfg;
.
## diffname pc/dat.h 1995/0803
## diff -e /n/fornaxdump/1995/0517/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/0803/sys/src/brazil/pc/dat.h
188a
int dma;
.
## diffname pc/dat.h 1995/0920
## diff -e /n/fornaxdump/1995/0803/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/0920/sys/src/brazil/pc/dat.h
193a
int nopt;
char opt[NISAOPT][ISAOPTLEN];
.
184a
#define ISAOPTLEN 16
#define NISAOPT 8
.
## diffname pc/dat.h 1995/1009
## diff -e /n/fornaxdump/1995/0920/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/1009/sys/src/brazil/pc/dat.h
30a
ulong pc;
.
## diffname pc/dat.h 1995/1030
## diff -e /n/fornaxdump/1995/1009/sys/src/brazil/pc/dat.h /n/fornaxdump/1995/1030/sys/src/brazil/pc/dat.h
31a
ulong pid;
.
## diffname pc/dat.h 1996/0210
## diff -e /n/fornaxdump/1995/1030/sys/src/brazil/pc/dat.h /n/fornaxdump/1996/0210/sys/src/brazil/pc/dat.h
230a
Rendez rendez;
.
## diffname pc/dat.h 1996/0511
## diff -e /n/fornaxdump/1996/0210/sys/src/brazil/pc/dat.h /n/fornaxdump/1996/0511/sys/src/brazil/pc/dat.h
32a
int pri;
.
## diffname pc/dat.h 1996/0523
## diff -e /n/fornaxdump/1996/0511/sys/src/brazil/pc/dat.h /n/fornaxdump/1996/0523/sys/src/brazil/pc/dat.h
33d
## diffname pc/dat.h 1997/0327
## diff -e /n/fornaxdump/1996/0523/sys/src/brazil/pc/dat.h /n/emeliedump/1997/0327/sys/src/brazil/pc/dat.h
243,245c
typedef struct Irqctl {
int (*isr)(int); /* get isr bit for this irq */
int (*eoi)(int); /* eoi */
int isintr;
Irq* irq; /* handlers on this IRQ */
} Irqctl;
.
240,241c
Irq* next; /* link to next handler */
} Irq;
.
237,238c
typedef struct Irq {
void (*f)(Ureg*, void*); /* handler to call */
void* a; /* argument to call it with */
.
216a
extern Mach *m;
#define up (((Mach*)MACHADDR)->externup)
.
207,215c
Mach* machp[MAXMACH];
#define MACHP(n) (machp[n])
.
205c
* Each processor sees its own Mach structure at address MACHADDR.
* However, the Mach structures must also be available via the per-processor
* MMU information array machp, mainly for disambiguation and access to
* the clock which is only maintained by the bootstrap processor (0).
.
203a
extern PCArch *arch; /* PC architecture */
.
198d
194c
ulong dma;
.
181c
void (*intrinit)(void);
int (*intrenable)(int, int, Irqctl*);
void (*clockenable)(void);
.
176,178d
174c
char* id;
int (*ident)(void); /* this should be in the model */
.
165,166c
int machs; /* bitmap of active CPUs */
int exiting; /* shutdown */
int ispanic; /* shutdown in response to a panic */
.
153,161d
141a
int loopconst;
int cpumhz;
int cpuidax;
int cpuiddx;
char cpuidid[16];
char* cpuidtype;
.
131,132c
void* alarm; /* alarms bound to this clock */
.
128d
126c
void* pdb; /* page directory base for this processor (va) */
Tss* tss; /* tss for this processor */
Segdesc gdt[6]; /* gdt for this processor */
Proc* proc; /* current process on this processor */
Proc* externup; /* extern register Proc *up */
Page* pdbpool;
int pdbcnt;
.
121a
struct Segdesc
{
ulong d0;
ulong d1;
};
.
118,120c
typedef struct {
ulong link; /* link (old TSS selector) */
ulong esp0; /* privilege level 0 stack pointer */
ulong ss0; /* privilege level 0 stack selector */
ulong esp1; /* privilege level 1 stack pointer */
ulong ss1; /* privilege level 1 stack selector */
ulong esp2; /* privilege level 2 stack pointer */
ulong ss2; /* privilege level 2 stack selector */
ulong cr3; /* page directory base register */
ulong eip; /* instruction pointer */
ulong eflags; /* flags register */
ulong eax; /* general registers */
ulong ecx;
ulong edx;
ulong ebx;
ulong esp;
ulong ebp;
ulong esi;
ulong edi;
ulong es; /* segment selectors */
ulong cs;
ulong ss;
ulong ds;
ulong fs;
ulong gs;
ulong ldt; /* selector for task's LDT */
ulong iomap; /* I/O map base address + T-bit */
} Tss;
.
101,103c
Page* mmupdb; /* page directory base */
Page* mmufree; /* unused page table pages */
Page* mmuused; /* used page table pages */
.
96,97d
84,88d
76d
17,21d
10c
typedef struct Pcidev Pcidev;
.
2a
typedef struct Irq Irq;
typedef struct Irqctl Irqctl;
.
## diffname pc/dat.h 1997/1101
## diff -e /n/emeliedump/1997/0327/sys/src/brazil/pc/dat.h /n/emeliedump/1997/1101/sys/src/brazil/pc/dat.h
147c
ulong* pdb; /* page directory base for this processor (va) */
.
## diffname pc/dat.h 1998/0115
## diff -e /n/emeliedump/1997/1101/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0115/sys/src/brazil/pc/dat.h
169a
ulong spuriousintr;
ulong lastintr;
.
## diffname pc/dat.h 1998/0401
## diff -e /n/emeliedump/1998/0115/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0401/sys/src/brazil/pc/dat.h
180a
vlong mtrrcap;
vlong mtrrdef;
vlong mtrrfix[11];
vlong mtrrvar[32]; /* 256 max. */
.
## diffname pc/dat.h 1998/0604
## diff -e /n/emeliedump/1998/0401/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0604/sys/src/brazil/pc/dat.h
29c
Proc *p;
ushort pri;
ushort isilock;
.
17a
typedef struct Proc Proc;
.
## diffname pc/dat.h 1998/0605
## diff -e /n/emeliedump/1998/0604/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0605/sys/src/brazil/pc/dat.h
18d
15a
typedef struct Proc Proc;
.
## diffname pc/dat.h 1998/0606
## diff -e /n/emeliedump/1998/0605/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0606/sys/src/brazil/pc/dat.h
163a
ulong fairness; /* for runproc */
.
31d
## diffname pc/dat.h 1998/0710
## diff -e /n/emeliedump/1998/0606/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0710/sys/src/brazil/pc/dat.h
223a
uvlong (*fastclock)(uvlong*);
.
## diffname pc/dat.h 1998/0716
## diff -e /n/emeliedump/1998/0710/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0716/sys/src/brazil/pc/dat.h
189a
vlong clockstart; /* starting value for cycle clock */
.
## diffname pc/dat.h 1998/0717
## diff -e /n/emeliedump/1998/0716/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0717/sys/src/brazil/pc/dat.h
190c
vlong fastclock; /* last sampled value */
.
## diffname pc/dat.h 1998/0725
## diff -e /n/emeliedump/1998/0717/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0725/sys/src/brazil/pc/dat.h
189,190d
172a
vlong fastclock; /* last sampled value */
int flushmmu; /* make current proc flush it's mmu state */
.
## diffname pc/dat.h 1998/0825
## diff -e /n/emeliedump/1998/0725/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0825/sys/src/brazil/pc/dat.h
177c
int lastintr;
.
## diffname pc/dat.h 1998/0910
## diff -e /n/emeliedump/1998/0825/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0910/sys/src/brazil/pc/dat.h
262,295d
223c
int (*intrenable)(Vctl*);
.
18a
typedef struct Vctl Vctl;
.
3,4d
## diffname pc/dat.h 1998/0916
## diff -e /n/emeliedump/1998/0910/sys/src/brazil/pc/dat.h /n/emeliedump/1998/0916/sys/src/brazil/pc/dat.h
77a
int nswppo; /* max # of pageouts per segment pass */
.
## diffname pc/dat.h 1999/0131
## diff -e /n/emeliedump/1998/0916/sys/src/brazil/pc/dat.h /n/emeliedump/1999/0131/sys/src/brazil/pc/dat.h
181a
int cpuhz;
.
## diffname pc/dat.h 1999/0701
## diff -e /n/emeliedump/1999/0131/sys/src/brazil/pc/dat.h /n/emeliedump/1999/0701/sys/src/brazil/pc/dat.h
173a
vlong intrts; /* time stamp of last interrupt */
.
## diffname pc/dat.h 1999/0810
## diff -e /n/emeliedump/1999/0701/sys/src/brazil/pc/dat.h /n/emeliedump/1999/0810/sys/src/brazil/pc/dat.h
30a
ulong glare;
.
## diffname pc/dat.h 1999/0811
## diff -e /n/emeliedump/1999/0810/sys/src/brazil/pc/dat.h /n/emeliedump/1999/0811/sys/src/brazil/pc/dat.h
31d
## diffname pc/dat.h 2000/0623
## diff -e /n/emeliedump/1999/0811/sys/src/brazil/pc/dat.h /n/emeliedump/2000/0623/sys/src/9/pc/dat.h
196a
typedef struct Cycintr Cycintr;
/*
* fasttick timer interrupts
*/
struct Cycintr
{
vlong when; /* fastticks when f should be called */
void (*f)(Ureg*, Cycintr*);
void *a;
Cycintr *next;
};
.
## diffname pc/dat.h 2000/1018
## diff -e /n/emeliedump/2000/0623/sys/src/9/pc/dat.h /n/emeliedump/2000/1018/sys/src/9/pc/dat.h
151c
Segdesc gdt[NGDT]; /* gdt for this processor */
.
## diffname pc/dat.h 2000/1106
## diff -e /n/emeliedump/2000/1018/sys/src/9/pc/dat.h /n/emeliedump/2000/1106/sys/src/9/pc/dat.h
162a
int inclockintr;
.
## diffname pc/dat.h 2000/1118
## diff -e /n/emeliedump/2000/1106/sys/src/9/pc/dat.h /n/emeliedump/2000/1118/sys/src/9/pc/dat.h
11a
typedef struct PCMslot PCMslot;
.
## diffname pc/dat.h 2001/0121
## diff -e /n/emeliedump/2000/1118/sys/src/9/pc/dat.h /n/emeliedump/2001/0121/sys/src/9/pc/dat.h
249c
#define ISAOPTLEN 28
.
## diffname pc/dat.h 2001/0527
## diff -e /n/emeliedump/2001/0121/sys/src/9/pc/dat.h /n/emeliedump/2001/0527/sys/src/9/pc/dat.h
262c
char *opt[NISAOPT];
.
253c
char *type;
.
249d
84a
int nuart; /* number of uart devices */
.
## diffname pc/dat.h 2001/0731
## diff -e /n/emeliedump/2001/0527/sys/src/9/pc/dat.h /n/emeliedump/2001/0731/sys/src/9/pc/dat.h
19a
#define MAXSYSARG 5 /* for mount(fd, mpt, flag, arg, srv) */
.
## diffname pc/dat.h 2001/0819
## diff -e /n/emeliedump/2001/0731/sys/src/9/pc/dat.h /n/emeliedump/2001/0819/sys/src/9/pc/dat.h
20c
#define MAXSYSARG 5 /* for mount(fd, afd, mpt, flag, arg) */
.
## diffname pc/dat.h 2001/0905
## diff -e /n/emeliedump/2001/0819/sys/src/9/pc/dat.h /n/emeliedump/2001/0905/sys/src/9/pc/dat.h
280a
/*
* hardware info about a device
*/
typedef struct {
ulong port;
int size;
} port_t;
struct DevConf
{
ulong interrupt; /* interrupt number */
char *type; /* card type, malloced */
int nports; /* Number of ports */
port_t *ports; /* The ports themselves */
};
.
243a
int (*intrvecno)(int);
int (*intrdisable)(int);
.
## diffname pc/dat.h 2002/0109
## diff -e /n/emeliedump/2001/0905/sys/src/9/pc/dat.h /n/emeliedump/2002/0109/sys/src/9/pc/dat.h
87c
int nuart; /* number of uart devices */
.
## diffname pc/dat.h 2002/0221
## diff -e /n/emeliedump/2002/0109/sys/src/9/pc/dat.h /n/emeliedump/2002/0221/sys/src/9/pc/dat.h
188c
vlong cpuhz;
.
## diffname pc/dat.h 2002/0315
## diff -e /n/emeliedump/2002/0221/sys/src/9/pc/dat.h /n/emeliedump/2002/0315/sys/src/9/pc/dat.h
33a
Proc * edfwaiting;
.
32c
Proc * p;
.
## diffname pc/dat.h 2002/0330
## diff -e /n/emeliedump/2002/0315/sys/src/9/pc/dat.h /n/emeliedump/2002/0330/sys/src/9/pc/dat.h
34d
## diffname pc/dat.h 2002/0404
## diff -e /n/emeliedump/2002/0330/sys/src/9/pc/dat.h /n/emeliedump/2002/0404/sys/src/9/pc/dat.h
201,202d
1a
typedef struct Cycintr Cycintr;
.
## diffname pc/dat.h 2002/0405
## diff -e /n/emeliedump/2002/0404/sys/src/9/pc/dat.h /n/emeliedump/2002/0405/sys/src/9/pc/dat.h
211c
Timer *next;
.
209c
void (*f)(Ureg*, Timer*);
.
206c
struct Timer
.
193a
int havetsc;
vlong lasttsc; /* last sampled value */
.
179d
2c
typedef struct Timer Timer;
.
## diffname pc/dat.h 2002/0410
## diff -e /n/emeliedump/2002/0405/sys/src/9/pc/dat.h /n/emeliedump/2002/0410/sys/src/9/pc/dat.h
248a
void (*timerset)(uvlong);
.
205,215d
194d
186a
Lock apictimerlock;
.
2d
## diffname pc/dat.h 2002/0412
## diff -e /n/emeliedump/2002/0410/sys/src/9/pc/dat.h /n/emeliedump/2002/0412/sys/src/9/pc/dat.h
193a
int havepge;
.
155c
Segdesc *gdt; /* gdt for this processor */
.
150c
int machno; /* physical id of processor (KNOWN TO ASSEMBLY) */
.
## diffname pc/dat.h 2002/0415
## diff -e /n/emeliedump/2002/0412/sys/src/9/pc/dat.h /n/emeliedump/2002/0415/sys/src/9/pc/dat.h
194a
uvlong tscticks;
uvlong tscoff;
.
188c
uvlong cpuhz;
.
## diffname pc/dat.h 2002/0420
## diff -e /n/emeliedump/2002/0415/sys/src/9/pc/dat.h /n/emeliedump/2002/0420/sys/src/9/pc/dat.h
179a
int ilockdepth;
.
## diffname pc/dat.h 2002/0703
## diff -e /n/emeliedump/2002/0420/sys/src/9/pc/dat.h /n/emeliedump/2002/0703/sys/src/9/pc/dat.h
287,290c
ulong intnum; /* interrupt number */
char *type; /* card type, malloced */
int nports; /* Number of ports */
port_t *ports; /* The ports themselves */
.
282c
int size;
.
250c
char *type;
.
180c
int ilockdepth;
.
32c
Proc *p;
.
## diffname pc/dat.h 2002/0820
## diff -e /n/emeliedump/2002/0703/sys/src/9/pc/dat.h /n/emeliedump/2002/0820/sys/src/9/pc/dat.h
178c
uvlong intrts; /* time stamp of last interrupt */
.
## diffname pc/dat.h 2002/0821
## diff -e /n/emeliedump/2002/0820/sys/src/9/pc/dat.h /n/emeliedump/2002/0821/sys/src/9/pc/dat.h
180a
ulong inidle; /* fastticks in idlehands() since last slowtick */
ulong avginidle; /* avg fastticks in idlehands() per slowtick */
.
## diffname pc/dat.h 2002/0822
## diff -e /n/emeliedump/2002/0821/sys/src/9/pc/dat.h /n/emeliedump/2002/0822/sys/src/9/pc/dat.h
181,182c
Perf perf; /* performance counters */
.
178d
## diffname pc/dat.h 2002/0824
## diff -e /n/emeliedump/2002/0822/sys/src/9/pc/dat.h /n/emeliedump/2002/0824/sys/src/9/pc/dat.h
48,50c
/* this is a state */
FPinit= 0,
FPactive= 1,
FPinactive= 2,
/* the following is a bit that can be or'd into the state */
FPillegal= 0x100,
.
## diffname pc/dat.h 2003/0301
## diff -e /n/emeliedump/2002/0824/sys/src/9/pc/dat.h /n/emeliedump/2003/0301/sys/src/9/pc/dat.h
256c
int irq;
.
|