## diffname port/portdat.h 1991/0428 ## diff -e /dev/null /n/bootesdump/1991/0428/sys/src/9/port/portdat.h 0a typedef struct Alarm Alarm; typedef struct Block Block; typedef struct Blist Blist; typedef struct Chan Chan; typedef struct Dev Dev; typedef struct Dirtab Dirtab; typedef struct Env Env; typedef struct Envp Envp; typedef struct Envval Envval; typedef struct Etherpkt Etherpkt; typedef struct List List; typedef struct Mount Mount; typedef struct Mtab Mtab; typedef struct Note Note; typedef struct Orig Orig; typedef struct PTE PTE; typedef struct Page Page; typedef struct Pgrp Pgrp; typedef struct Proc Proc; typedef struct Qinfo Qinfo; typedef struct QLock QLock; typedef struct Queue Queue; typedef struct Ref Ref; typedef struct Rendez Rendez; typedef struct Seg Seg; typedef struct Stream Stream; typedef int Devgen(Chan*, Dirtab*, int, int, Dir*); struct List { void *next; }; struct Ref { Lock; int ref; }; struct Rendez { Lock; Proc *p; }; struct QLock { Proc *head; /* next process waiting for object */ Proc *tail; /* last process waiting for object */ Lock use; /* to use object */ Lock queue; /* to access list */ }; struct Alarm { List; Lock; int busy; long dt; /* may underflow in clock(); must be signed */ void (*f)(void*); void *arg; }; /* Block.flags */ #define S_DELIM 0x80 #define S_CLASS 0x07 /* Block.type */ #define M_DATA 0 #define M_CTL 1 #define M_HANGUP 2 struct Block { Block *next; uchar *rptr; /* first unconsumed byte */ uchar *wptr; /* first empty byte */ uchar *lim; /* 1 past the end of the buffer */ uchar *base; /* start of the buffer */ uchar flags; uchar type; }; struct Blist { Lock; Block *first; /* first data block */ Block *last; /* last data block */ long len; /* length of list in bytes */ int nb; /* number of blocks in list */ }; /* * Access types in namec */ enum { Aaccess, /* as in access, stat */ Atodir, /* as in chdir */ Aopen, /* for i/o */ Amount, /* to be mounted upon */ Acreate, /* file is to be created */ }; /* * Chan.flags */ #define COPEN 1 /* for i/o */ #define CMOUNT 2 /* is result of a mount/bind */ #define CCREATE 4 /* permits creation if CMOUNT */ #define CCEXEC 8 /* close on exec */ #define CFREE 16 /* not in use */ struct Chan { QLock rdl; /* read access */ QLock wrl; /* write access */ Ref; union{ Chan *next; /* allocation */ ulong offset; /* in file */ }; ushort type; ushort dev; ushort mode; /* read/write */ ushort flag; Qid qid; Mount *mnt; /* mount point that derived Chan */ ulong mountid; int fid; /* for devmnt */ union { Stream *stream; /* for stream channels */ void *aux; Qid pgrpid; /* for #p/notepg */ int mntindex; /* for devmnt */ }; Chan *mchan; /* channel to mounted server */ Qid mqid; /* qid of root of mount point */ }; struct Dev { void (*reset)(void); void (*init)(void); Chan *(*attach)(char*); Chan *(*clone)(Chan*, Chan*); int (*walk)(Chan*, char*); void (*stat)(Chan*, char*); Chan *(*open)(Chan*, int); void (*create)(Chan*, char*, int, ulong); void (*close)(Chan*); long (*read)(Chan*, void*, long, ulong); long (*write)(Chan*, void*, long, ulong); void (*remove)(Chan*); void (*wstat)(Chan*, char*); }; struct Dirtab { char name[NAMELEN]; Qid qid; long length; long perm; }; struct Env { Lock; Envval *val; char name[NAMELEN]; Env *next; /* in chain of Envs for a pgrp */ int pgref; /* # pgrps pointing here */ }; struct Envp { Env *env; int chref; /* # chans from pgrp pointing here */ }; /* * Ethernet packet buffers. */ struct Etherpkt { uchar d[6]; uchar s[6]; uchar type[2]; uchar data[1500]; uchar crc[4]; }; #define ETHERMINTU 60 /* minimum transmit size */ #define ETHERMAXTU 1514 /* maximum transmit size */ #define ETHERHDRSIZE 14 /* size of an ethernet header */ struct Mount { Ref; /* also used as a lock when playing lists */ short term; /* terminates list */ ulong mountid; Mount *next; Chan *c; /* channel replacing underlying channel */ }; struct Mtab { Chan *c; /* channel mounted upon */ Mount *mnt; /* what's mounted upon it */ }; enum{ NUser, /* note provided externally */ NExit, /* process should exit */ NDebug, /* process should hang */ }; struct Note { char msg[ERRLEN]; int flag; /* whether system posted it */ }; #define OWRPERM 0x01 /* write permission */ #define OPURE 0x02 /* original data mustn't be written */ #define OCACHED 0x04 /* cached; don't discard on exit */ struct Orig { Lock; Orig *next; /* for allocation */ ushort nproc; /* processes using it */ ushort npage; /* sum of refs of pages in it */ ushort flag; ulong va; /* va of 0th pte */ ulong npte; /* #pte's in list */ PTE *pte; Chan *chan; /* channel deriving segment (if open) */ ushort type; /* of channel (which could be non-open) */ Qid qid; Chan *mchan; Qid mqid; ulong minca; /* base of region in chan */ ulong maxca; /* end of region in chan */ }; struct Page { Orig *o; /* origin of segment owning page */ ulong va; /* virtual address */ ulong pa; /* physical address */ ushort ref; Page *next; Page *prev; }; struct Pgrp { Ref; /* also used as a lock when mounting */ Pgrp *next; int index; /* index in pgrp table */ ulong pgrpid; char user[NAMELEN]; int nmtab; /* highest active mount table entry, +1 */ int nenv; /* highest active env table entry, +1 */ QLock debug; /* single access via devproc.c */ Mtab *mtab; Envp *etab; }; /* * process memory segments */ #define SSEG 0 #define TSEG 1 #define DSEG 2 #define BSEG 3 #define ESEG 4 /* used by exec to build new stack */ struct Seg { Proc *proc; /* process owning this segment */ Orig *o; /* root list of pte's */ ulong minva; /* va of 0th pte (not necessarily Seg->o->va) */ ulong maxva; /* va of last pte */ PTE *mod; /* list of modified pte's */ ulong pad[3]; /**/ }; /* * Process states */ enum { Dead = 0, Moribund, Zombie, Ready, Scheding, Running, Queueing, MMUing, Exiting, Inwait, Wakeme, Broken, }; /* * Proc.time */ enum { TUser, TSys, TReal, TCUser, TCSys, TCReal, }; struct Proc { Label sched; Mach *mach; /* machine running this proc */ char text[NAMELEN]; Proc *rnext; /* next process in run queue */ Proc *qnext; /* next process on queue for a QLock */ QLock *qlock; /* address of qlock being queued for DEBUG */ int state; Page *upage; /* BUG: should be unlinked from page list */ Seg seg[NSEG]; ulong bssend; /* initial top of bss seg */ ulong pid; int nchild; QLock wait; /* exiting children to be waited for */ Waitmsg waitmsg; /* this is large but must be addressable */ Proc *child; Proc *parent; Pgrp *pgrp; ulong parentpid; ulong time[6]; /* User, Sys, Real; child U, S, R */ short exiting; short insyscall; int fpstate; Lock debug; /* to access debugging elements of User */ Rendez *r; /* rendezvous point slept on */ Rendez sleep; /* place for tsleep and syssleep */ int wokeup; /* whether sleep was interrupted */ ulong pc; /* DEBUG only */ int kp; /* true if a kernel process */ union { int pidonmach[MAXMACH]; /* !!Compatability with mips!! */ MMU *mmu; int nmmuseg; /* number of segments active in mmu */ }; }; struct PTE { Proc *proc; /* process owning this PTE (0 in Orig) */ PTE *nextmod; /* next at this va */ PTE *nextva; /* next in this proc at higher va */ Page *page; }; /* * operations available to a queue */ struct Qinfo { void (*iput)(Queue*, Block*); /* input routine */ void (*oput)(Queue*, Block*); /* output routine */ void (*open)(Queue*, Stream*); void (*close)(Queue*); char *name; void (*reset)(void); /* initialization */ Qinfo *next; }; /* * Queue.flag */ #define QHUNGUP 0x1 /* flag bit meaning the stream has been hung up */ #define QINUSE 0x2 #define QHIWAT 0x4 /* queue has gone past the high water mark */ #define QDEBUG 0x8 struct Queue { Blist; int flag; Qinfo *info; /* line discipline definition */ Queue *other; /* opposite direction, same line discipline */ Queue *next; /* next queue in the stream */ void (*put)(Queue*, Block*); QLock rlock; /* mutex for processes sleeping at r */ Rendez r; /* standard place to wait for flow control */ Rendez *rp; /* where flow control wakeups go to */ void *ptr; /* private info for the queue */ }; struct Stream { QLock; /* structure lock */ short inuse; /* number of processes in stream */ short opens; /* number of processes with stream open */ ushort hread; /* number of reads after hangup */ ushort type; /* correlation with Chan */ ushort dev; /* ... */ ushort id; /* ... */ QLock rdlock; /* read lock */ Queue *procq; /* write queue at process end */ Queue *devq; /* read queue at device end */ Block *err; /* error message from down stream */ }; /* * useful stream macros */ #define RD(q) ((q)->other < (q) ? (q->other) : q) #define WR(q) ((q)->other > (q) ? (q->other) : q) #define GLOBAL(a) (((ulong)(a)) & 0x80000000) #define STREAMTYPE(x) ((x)&0x1f) #define STREAMID(x) (((x)&~CHDIR)>>5) #define STREAMQID(i,t) (((i)<<5)|(t)) #define PUTNEXT(q,b) (*(q)->next->put)((q)->next, b) #define BLEN(b) ((b)->wptr - (b)->rptr) #define QFULL(q) ((q)->flag & QHIWAT) #define FLOWCTL(q) { if(QFULL(q->next)) flowctl(q); } /* * stream file qid's & high water mark */ enum { Shighqid = STREAMQID(1,0) - 1, Sdataqid = Shighqid, Sctlqid = Sdataqid-1, Slowqid = Sctlqid, Streamhi= (9*1024), /* byte count high water mark */ Streambhi= 32, /* block count high water mark */ }; #define PRINTSIZE 256 #define NUMSIZE 12 /* size of formatted number */ extern FPsave initfp; extern Conf conf; extern ulong initcode[]; extern Dev devtab[]; extern char devchar[]; extern char user[NAMELEN]; extern char *errstrtab[]; extern char *statename[]; #define CHDIR 0x80000000L #define CHAPPEND 0x40000000L #define CHEXCL 0x20000000L . ## diffname port/portdat.h 1991/0502 ## diff -e /n/bootesdump/1991/0428/sys/src/9/port/portdat.h /n/bootesdump/1991/0502/sys/src/9/port/portdat.h 411a int forcedelim; /* force a delimiter before the next message */ . ## diffname port/portdat.h 1991/0504 ## diff -e /n/bootesdump/1991/0502/sys/src/9/port/portdat.h /n/bootesdump/1991/0504/sys/src/9/port/portdat.h 350,351c /* * MMU goo. which of the fillowing fields gets used depends on the * processor. */ struct { int pidonmach[MAXMACH]; . ## diffname port/portdat.h 1991/0507 ## diff -e /n/bootesdump/1991/0504/sys/src/9/port/portdat.h /n/bootesdump/1991/0507/sys/src/9/port/portdat.h 354,358c PMMU; . 351,352c * machine specific MMU goo . ## diffname port/portdat.h 1991/0513 ## diff -e /n/bootesdump/1991/0507/sys/src/9/port/portdat.h /n/bootesdump/1991/0513/sys/src/9/port/portdat.h 349a Proc *palarm; /* Next alarm time */ ulong alarm; /* Time of call */ . 64a struct Alarms { QLock; Proc *head; }; . 1a typedef struct Alarms Alarms; . ## diffname port/portdat.h 1991/0514 ## diff -e /n/bootesdump/1991/0513/sys/src/9/port/portdat.h /n/bootesdump/1991/0514/sys/src/9/port/portdat.h 275a enum /* Argument to forkpgrp call */ { FPall = 0, /* Concession to back portablility */ FPnote = 1, FPnamespc = 2, FPenv = 4, FPclear = 8, }; . ## diffname port/portdat.h 1991/0605 ## diff -e /n/bootesdump/1991/0514/sys/src/9/port/portdat.h /n/bootesdump/1991/0605/sys/src/9/port/portdat.h 288,292c enum { SSEG, TSEG, DSEG, BSEG, ESEG, LSEG, NSEG }; . 286c * process memory segments - NSEG always last ! . ## diffname port/portdat.h 1991/0606 ## diff -e /n/bootesdump/1991/0605/sys/src/9/port/portdat.h /n/bootesdump/1991/0606/sys/src/9/port/portdat.h 346d 300c ulong endseg; /* segments end */ ulong pad[2]; /**/ . ## diffname port/portdat.h 1991/0607 ## diff -e /n/bootesdump/1991/0606/sys/src/9/port/portdat.h /n/bootesdump/1991/0607/sys/src/9/port/portdat.h 301d 249a void (*freepg)(Page*, int); /* how to free pages for this origin */ Page (*allocpg)(int, Orig*, ulong); . 231a #define OISMEM 0x08 /* origin contains real memory */ #define OSHARED 0x10 /* origin does not copy on ref/wr */ . 201a /* * character based IO (mouse, keyboard, console screen) */ #define NQ 4096 struct IOQ { Lock; uchar buf[NQ]; uchar *in; uchar *out; int state; Rendez r; union{ void (*puts)(IOQ*, void*, int); /* output */ int (*putc)(IOQ*, int); /* input */ }; void *ptr; }; struct KIOQ { QLock; IOQ; int repeat; int c; int count; }; extern IOQ lineq; extern IOQ printq; extern IOQ mouseq; extern KIOQ kbdq; . 11a typedef struct IOQ IOQ; typedef struct KIOQ KIOQ; . ## diffname port/portdat.h 1991/0614 ## diff -e /n/bootesdump/1991/0607/sys/src/9/port/portdat.h /n/bootesdump/1991/0614/sys/src/9/port/portdat.h 493a #define MAXSYSARG 6 /* for mount(fd, mpt, flag, arg, srv, authfd) */ . 402a int hasspin; . ## diffname port/portdat.h 1991/0705 ## diff -e /n/bootesdump/1991/0614/sys/src/9/port/portdat.h /n/bootesdump/1991/0705/sys/src/9/port/portdat.h 508,510c #define CHDIR 0x80000000L #define CHAPPEND 0x40000000L #define CHEXCL 0x20000000L . 506a extern Palloc palloc; extern Image swapimage; . 411,418d 403,404c int hasspin; /* I hold a spin lock */ int newtlb; /* Pager has touched my tables so I must flush */ int procctl; /* Control for /proc debugging */ . 389c Pgrp *pgrp; /* Process group for notes and namespace */ Egrp *egrp; /* Environment group */ Fgrp *fgrp; /* File descriptor group */ . 382c Segment *seg[NSEG]; . 359a * devproc requests */ enum { Proc_stopme = 1, Proc_exitme = 2, }; /* . 356a Stopped, . 330,339d 327c SSEG, TSEG, DSEG, BSEG, ESEG, LSEG, SEG1, SEG2, NSEG . 312a #define NFD 100 struct Fgrp { Ref; Fgrp *next; Chan *fd[NFD]; int maxfd; /* highest fd in use */ }; #define PGHSIZE 512 struct Palloc { Lock; ulong addr; int active; Page *page; /* base of Page structures, indexed by phys page number */ ulong minppn; /* index of first usable page */ Page *head; /* most recently used */ Page *tail; /* least recently used */ ulong freecount; /* how many pages on free list now */ ulong user; /* how many user pages */ Page *hash[PGHSIZE]; Lock hashlock; Rendez r; /* Sleep for free mem */ QLock pwait; /* Queue of procs waiting for memory */ int wanted; /* Do the wakeup at free */ }; . 309a }; struct Egrp { Ref; Egrp *next; int nenv; /* highest active env table entry, +1 */ . 307d 302c Pgrp *next; /* free list */ . 298a /* Segment types */ #define SG_TYPE 007 /* Mask type of segment */ #define SG_TEXT 000 #define SG_DATA 001 #define SG_BSS 002 #define SG_STACK 003 #define SG_SHARED 004 #define SG_PHYSICAL 005 /* Segment flags */ #define SG_RONLY 040 /* Segment is read only */ #define HIGHWATER ((conf.npage*5)/100) #define MAXHEADROOM HIGHWATER*2 /* Silly but OK for debug */ #define PG_ONSWAP 1 #define pagedout(s) (((ulong)s)==0 || (((ulong)s)&PG_ONSWAP)) #define swapaddr(s) (((ulong)s)&~PG_ONSWAP) #define onswap(s) (((ulong)s)&PG_ONSWAP) #define SEGMAXSIZE (SEGMAPSIZE*PTEMAPMEM) struct Segment { Ref; QLock lk; ushort steal; /* Page stealer lock */ Segment *next; /* free list pointers */ ushort type; /* segment type */ ulong base; /* virtual base */ ulong top; /* virtual top */ ulong size; /* size in pages */ ulong fstart; /* start address in file for demand load */ ulong flen; /* length of segment in file */ Image *image; /* image in file system attached to this segment */ Page *(*pgalloc)(ulong addr);/* SG_PHYSICAL page allocator */ void (*pgfree)(Page *); /* SG_PHYSICAL page free */ Pte *map[SEGMAPSIZE]; /* segment pte map */ }; . 291,296c union { Pte *next; /* Free list */ Page *pages[PTEPERTAB]; /* Page map for this chunk of pte */ }; . 289c struct Pte . 283,286c Chan *mchan; ushort type; /* Device type of owning channel */ Segment *s; /* TEXT segment for image if running, may be null */ Image *hash; /* Qid hash chains */ Image *next; /* Free list */ . 270,281c ulong pa; /* Physical address in memory */ ulong va; /* Virtual address for user */ ulong daddr; /* Disc address on swap */ ushort ref; /* Reference count */ char lock; /* Software lock */ char modref; /* Simulated modify/reference bits */ char cachectl[MAXMACH]; /* Cache flushing control for putmmu */ Image *image; /* Associated text or swap image */ Page *next; /* Lru free list */ Page *prev; Page *hash; /* Image hash chains */ }; struct Swapalloc { Lock; /* Free map lock */ int free; /* Number of currently free swap pages */ char *swmap; /* Base of swap map in memory */ char *alloc; /* Round robin allocator */ char *top; /* Top of swap map */ Rendez r; /* Pager kproc idle sleep */ }swapalloc; struct Image { Ref; Chan *c; /* Channel associated with running image */ Qid qid; /* Qid for page cache coherence checks */ . 268c struct Page . 262,266c /* Fields for cache control of pages */ #define PG_NOFLUSH 0 #define PG_TXTFLUSH 1 #define PG_DATFLUSH 2 /* Simulated modified and referenced bits */ #define PG_MOD 0x01 #define PG_REF 0x02 . 180c Env *next; /* in chain of Envs for a egrp */ . 28c typedef struct Segment Segment; . 22a typedef struct Pte Pte; . 20a typedef struct Palloc Palloc; . 18,19d 11a typedef struct Fgrp Fgrp; typedef struct Image Image; . 7a typedef struct Egrp Egrp; . ## diffname port/portdat.h 1991/0706 ## diff -e /n/bootesdump/1991/0705/sys/src/9/port/portdat.h /n/bootesdump/1991/0706/sys/src/9/port/portdat.h 350a int flushme; /* maintain consistent icache for this segment */ . ## diffname port/portdat.h 1991/0724 ## diff -e /n/bootesdump/1991/0706/sys/src/9/port/portdat.h /n/bootesdump/1991/0724/sys/src/9/port/portdat.h 603,605d 587c #define NUMSIZE 12 /* size of formatted number */ . 585c #define MAXSYSARG 6 /* for mount(fd, mpt, flag, arg, srv, authfd) */ . 581,582c Streamhi= (9*1024), /* byte count high water mark */ Streambhi= 32, /* block count high water mark */ . 545,556c QLock; /* structure lock */ short inuse; /* number of processes in stream */ short opens; /* number of processes with stream open */ ushort hread; /* number of reads after hangup */ ushort type; /* correlation with Chan */ ushort dev; /* ... */ ushort id; /* ... */ QLock rdlock; /* read lock */ Queue *procq; /* write queue at process end */ Queue *devq; /* read queue at device end */ Block *err; /* error message from down stream */ int forcedelim; /* force a delimiter before the next message */ . 538,541c QLock rlock; /* mutex for processes sleeping at r */ Rendez r; /* standard place to wait for flow control */ Rendez *rp; /* where flow control wakeups go to */ void *ptr; /* private info for the queue */ . 534,536c Qinfo *info; /* line discipline definition */ Queue *other; /* opposite direction, same line discipline */ Queue *next; /* next queue in the stream */ . 528c #define QHIWAT 0x4 /* queue has gone past the high water mark */ . 526c #define QHUNGUP 0x1 /* flag bit meaning the stream has been hung up */ . 401,403c Rendez r; /* Sleep for free mem */ QLock pwait; /* Queue of procs waiting for memory */ int wanted; /* Do the wakeup at free */ . 393,398c Page *page; /* base of Page structures */ ulong minppn; /* index of first usable page */ Page *head; /* most recently used */ Page *tail; /* least recently used */ ulong freecount; /* how many pages on free list now */ ulong user; /* how many user pages */ . 290,295c Lock; /* Free map lock */ int free; /* Number of currently free swap pages */ char *swmap; /* Base of swap map in memory */ char *alloc; /* Round robin allocator */ char *top; /* Top of swap map */ Rendez r; /* Pager kproc idle sleep */ . 203,205c #define ETHERMINTU 60 /* minimum transmit size */ #define ETHERMAXTU 1514 /* maximum transmit size */ #define ETHERHDRSIZE 14 /* size of an ethernet header */ . 120,124c #define COPEN 1 /* for i/o */ #define CMOUNT 2 /* is result of a mount/bind */ #define CCREATE 4 /* permits creation if CMOUNT */ #define CCEXEC 8 /* close on exec */ #define CFREE 16 /* not in use */ . 110,114c Aaccess, /* as in access, stat */ Atodir, /* as in chdir */ Aopen, /* for i/o */ Amount, /* to be mounted upon */ Acreate, /* file is to be created */ . 99,102c Block *first; /* first data block */ Block *last; /* last data block */ long len; /* length of list in bytes */ int nb; /* number of blocks in list */ . 89,92c uchar *rptr; /* first unconsumed byte */ uchar *wptr; /* first empty byte */ uchar *lim; /* 1 past the end of the buffer */ uchar *base; /* start of the buffer */ . 66c long dt; /* may underflow in clock(); must be signed */ . ## diffname port/portdat.h 1991/0727 ## diff -e /n/bootesdump/1991/0724/sys/src/9/port/portdat.h /n/bootesdump/1991/0727/sys/src/9/port/portdat.h 495c int notepending; /* note issued but not acted on */ . 73c Lock; . ## diffname port/portdat.h 1991/0731 ## diff -e /n/bootesdump/1991/0727/sys/src/9/port/portdat.h /n/bootesdump/1991/0731/sys/src/9/port/portdat.h 585c #define MAXSYSARG 6 /* for mount(fd, mpt, flag, arg, srv) */ . ## diffname port/portdat.h 1991/0802 ## diff -e /n/bootesdump/1991/0731/sys/src/9/port/portdat.h /n/bootesdump/1991/0802/sys/src/9/port/portdat.h 393,394d 391c ulong addr0; /* next available ialloc addr in bank 0 */ ulong addr1; /* next available ialloc addr in bank 1 */ . ## diffname port/portdat.h 1991/0806 ## diff -e /n/bootesdump/1991/0802/sys/src/9/port/portdat.h /n/bootesdump/1991/0806/sys/src/9/port/portdat.h 501a ulong rendtag; /* Tag for rendezvous */ ulong rendval; /* Value for rendezvous */ Proc *rendhash; /* Hash list for tag values */ . 439a Rendezvous, . 367a Proc *rendhash[RENDHASH]; /* Rendezvous tag hash */ . 357a #define RENDHASH 32 #define REND(p,s) ((p)->rendhash[(s)%RENDHASH]) . ## diffname port/portdat.h 1991/0807 ## diff -e /n/bootesdump/1991/0806/sys/src/9/port/portdat.h /n/bootesdump/1991/0807/sys/src/9/port/portdat.h 417a enum { Forkpg = 1, Forkeg = 2, Forkfd = 4, }; . ## diffname port/portdat.h 1991/0809 ## diff -e /n/bootesdump/1991/0807/sys/src/9/port/portdat.h /n/bootesdump/1991/0809/sys/src/9/port/portdat.h 571a int flushmsg; /* flush up till the next delimiter */ . ## diffname port/portdat.h 1991/0810 ## diff -e /n/bootesdump/1991/0809/sys/src/9/port/portdat.h /n/bootesdump/1991/0810/sys/src/9/port/portdat.h 222a union{ int (*gets)(IOQ*, void*, int); /* input */ int (*getc)(IOQ*); /* output */ }; . ## diffname port/portdat.h 1991/0830 ## diff -e /n/bootesdump/1991/0810/sys/src/9/port/portdat.h /n/bootesdump/1991/0830/sys/src/9/port/portdat.h 487a ulong qlockpc; /* pc of last call to qlock */ . ## diffname port/portdat.h 1991/0926 ## diff -e /n/bootesdump/1991/0830/sys/src/9/port/portdat.h /n/bootesdump/1991/0926/sys/src/9/port/portdat.h 576d 505d 493,496c Lock exl; /* Lock count and waitq */ Waitq *waitq; /* Exited processes wait children */ int nchild; /* Number of living children */ int nwait; /* Number of uncollected wait records */ Rendez waitr; /* Place to hang out in wait */ . 489a char *psstate; /* What /proc/???/status reports */ . 449,451d 444d 412a struct Waitq { Waitmsg w; Waitq *next; }; . 32a typedef struct Waitq Waitq; . ## diffname port/portdat.h 1991/1002 ## diff -e /n/bootesdump/1991/0926/sys/src/9/port/portdat.h /n/bootesdump/1991/1002/sys/src/9/port/portdat.h 58,59c int locked; /* flag */ . 55a Lock use; /* to use object */ . ## diffname port/portdat.h 1991/1011 ## diff -e /n/bootesdump/1991/1002/sys/src/9/port/portdat.h /n/bootesdump/1991/1011/sys/src/9/port/portdat.h 375c RWlock ns; /* Namespace many read/one write lock */ Mhead *mnthash[MNTHASH]; . 373d 364a #define MNTHASH 32 #define MOUNTH(p,s) ((p)->mnthash[(s)->qid.path%MNTHASH]) . 254,255c Chan *from; /* channel mounted upon */ Mount *mount; /* what's mounted upon it */ Mhead *hash; /* Hash chain */ . 252c struct Mhead . 249c Mhead *head; Chan *to; /* channel replacing underlying channel */ . 245,246d 122,123c #define CMSG 2 /* is the message channel for a mount */ #define CCREATE 4 /* permits creation if c->mnt */ . 61a struct RWlock { Lock; /* Lock modify lock */ QLock x; /* Mutual exclusion lock */ QLock k; /* Lock for waiting writers held for readers */ int readers; /* Count of readers in lock */ }; . 30a typedef struct RWlock RWlock; . 19c typedef struct Mhead Mhead; . ## diffname port/portdat.h 1991/1018 ## diff -e /n/bootesdump/1991/1011/sys/src/9/port/portdat.h /n/bootesdump/1991/1018/sys/src/9/port/portdat.h 395c QLock ev; /* for all of etab */ Env *etab; . 197,202d 192,194d 190c Envval *name; . 10d ## diffname port/portdat.h 1991/10302 ## diff -e /n/bootesdump/1991/1018/sys/src/9/port/portdat.h /n/bootesdump/1991/10302/sys/src/9/port/portdat.h 97a Block *list; /* chain of block lists */ . ## diffname port/portdat.h 1991/1101 ## diff -e /n/bootesdump/1991/10302/sys/src/9/port/portdat.h /n/bootesdump/1991/1101/sys/src/9/port/portdat.h 139a Lock offl; /* offset access */ . ## diffname port/portdat.h 1991/1102 ## diff -e /n/bootesdump/1991/1101/sys/src/9/port/portdat.h /n/bootesdump/1991/1102/sys/src/9/port/portdat.h 623a extern char *conffile; . ## diffname port/portdat.h 1991/1105 ## diff -e /n/bootesdump/1991/1102/sys/src/9/port/portdat.h /n/bootesdump/1991/1105/sys/src/9/port/portdat.h 491a char user[NAMELEN]; . 375d 261,262c NExit, /* deliver note quietly */ NDebug, /* print debug message */ . 56c Lock use; /* to access Qlock structure */ . ## diffname port/portdat.h 1991/1106 ## diff -e /n/bootesdump/1991/1105/sys/src/9/port/portdat.h /n/bootesdump/1991/1106/sys/src/9/port/portdat.h 612a /* * a multiplexed network */ struct Ifile { char *name; void (*fill)(Chan*, char*, int); }; struct Network { char *name; int nif; /* max # of interfaces */ int nconv; /* max # of conversations */ Qinfo *devp; /* device end line disc */ Qinfo *protop; /* protocol line disc */ int (*listen)(Chan*); int (*clone)(Chan*); void (*connect)(Chan*, char*); void (*announce)(Chan*, char*); int ninfo; Ifile info[5]; }; #define MAJOR(q) ((q) >> 8) #define MINOR(q) ((q) & 0xff) #define DEVICE(a,i) (((a)<<8) | (i)) . 18a typedef struct Network Network; . 12a typedef struct Ifile Ifile; . ## diffname port/portdat.h 1991/1107 ## diff -e /n/bootesdump/1991/1106/sys/src/9/port/portdat.h /n/bootesdump/1991/1107/sys/src/9/port/portdat.h 633,634d 627d ## diffname port/portdat.h 1991/1109 ## diff -e /n/bootesdump/1991/1107/sys/src/9/port/portdat.h /n/bootesdump/1991/1109/sys/src/9/port/portdat.h 653a extern char eve[]; . 648d 519a ulong procmode; /* proc device file mode */ . 518a . ## diffname port/portdat.h 1991/1110 ## diff -e /n/bootesdump/1991/1109/sys/src/9/port/portdat.h /n/bootesdump/1991/1110/sys/src/9/port/portdat.h 532d 526d 524c Rendez sleep; /* place for tsleep/syssleep/debug */ . 521a int hang; /* hang at next exec for debug */ int procctl; /* Control for /proc debugging */ ulong pc; /* DEBUG only */ . 520a Proc *pdbg; /* the debugging process */ . 472a Proc_traceme = 3, . ## diffname port/portdat.h 1991/1112 ## diff -e /n/bootesdump/1991/1110/sys/src/9/port/portdat.h /n/bootesdump/1991/1112/sys/src/9/port/portdat.h 659a extern int nrdy; . ## diffname port/portdat.h 1991/1115 ## diff -e /n/bootesdump/1991/1112/sys/src/9/port/portdat.h /n/bootesdump/1991/1115/sys/src/9/port/portdat.h 639c Netinf info[5]; Netprot *prot; /* protections */ . 631a Lock; . 626a ulong mode; char owner[NAMELEN]; }; struct Netinf { . 625c struct Netprot . 19a typedef struct Netinf Netinf; typedef struct Netprot Netprot; . 13d ## diffname port/portdat.h 1991/1122 ## diff -e /n/bootesdump/1991/1115/sys/src/9/port/portdat.h /n/bootesdump/1991/1122/sys/src/9/port/portdat.h 325a Page **first; /* First used entry */ Page **last; /* Last used entry */ . ## diffname port/portdat.h 1991/1127 ## diff -e /n/bootesdump/1991/1122/sys/src/9/port/portdat.h /n/bootesdump/1991/1127/sys/src/9/port/portdat.h 655c #define MAXSYSARG 6 /* for mount(fd, mpt, flag, arg, srv, crypt) */ . 379a Crypt *crypt; /* encryption key and challenge */ . 166a #define KEYLEN 7 struct Crypt { char key[KEYLEN]; /* des encryption key */ char chal[8]; /* challenge for setting user name */ }; . 5a typedef struct Crypt Crypt; . ## diffname port/portdat.h 1991/1207 ## diff -e /n/bootesdump/1991/1127/sys/src/9/port/portdat.h /n/bootesdump/1991/1207/sys/src/9/port/portdat.h 171c char key[DESKEYLEN]; /* des encryption key */ . 168d ## diffname port/portdat.h 1991/1216 ## diff -e /n/bootesdump/1991/1207/sys/src/9/port/portdat.h /n/bootesdump/1991/1216/sys/src/9/port/portdat.h 532c QLock debug; /* to access debugging elements of User */ . ## diffname port/portdat.h 1992/0111 ## diff -e /n/bootesdump/1991/1216/sys/src/9/port/portdat.h /n/bootesdump/1992/0111/sys/src/9/port/portdat.h 673d ## diffname port/portdat.h 1992/0128 ## diff -e /n/bootesdump/1992/0111/sys/src/9/port/portdat.h /n/bootesdump/1992/0128/sys/src/9/port/portdat.h 674a extern Pgrps pgrpalloc; . 429a struct Pgrps { Lock; Pgrp *arena; Pgrp *free; ulong pgrpid; ulong cryptbase; ulong crypttop; }; . 25a typedef struct Pgrps Pgrps; . ## diffname port/portdat.h 1992/0131 ## diff -e /n/bootesdump/1992/0128/sys/src/9/port/portdat.h /n/bootesdump/1992/0131/sys/src/9/port/portdat.h 330,335c Page *pages[PTEPERTAB]; /* Page map for this chunk of pte */ Page **first; /* First used entry */ Page **last; /* Last used entry */ Pte *next; /* Free list */ . ## diffname port/portdat.h 1992/0212 ## diff -e /n/bootesdump/1992/0131/sys/src/9/port/portdat.h /n/bootesdump/1992/0212/sys/src/9/port/portdat.h 672c #define MAXSYSARG 5 /* for mount(fd, mpt, flag, arg, srv) */ . ## diffname port/portdat.h 1992/0222 ## diff -e /n/bootesdump/1992/0212/sys/src/9/port/portdat.h /n/bootesdump/1992/0222/sys/src/9/port/portdat.h 109a ulong pc; /* pc of caller */ . ## diffname port/portdat.h 1992/0303 ## diff -e /n/bootesdump/1992/0222/sys/src/9/port/portdat.h /n/bootesdump/1992/0303/sys/src/9/port/portdat.h 348,349d 346c #define SG_RONLY 040 /* Segment is read only */ . 313a ulong highwater; /* Threshold beyond which we must page */ ulong headroom; /* Space pager attempts to clear below highwater */ . ## diffname port/portdat.h 1992/0305 ## diff -e /n/bootesdump/1992/0303/sys/src/9/port/portdat.h /n/bootesdump/1992/0305/sys/src/9/port/portdat.h 629c #define FLOWCTL(q,b) { if(QFULL(q->next)) flowctl(q,b); else PUTNEXT(q,b);} . ## diffname port/portdat.h 1992/0307 ## diff -e /n/bootesdump/1992/0305/sys/src/9/port/portdat.h /n/bootesdump/1992/0307/sys/src/9/port/portdat.h 655a . 650a . 340,346c #define SG_TYPE 07 /* Mask type of segment */ #define SG_TEXT 00 #define SG_DATA 01 #define SG_BSS 02 #define SG_STACK 03 #define SG_SHARED 04 #define SG_PHYSICAL 05 #define SG_SHDATA 06 . 271c enum { . 250a . 242a . 40,41d 38a typedef int Devgen(Chan*, Dirtab*, int, int, Dir*); . ## diffname port/portdat.h 1992/0309 ## diff -e /n/bootesdump/1992/0307/sys/src/9/port/portdat.h /n/bootesdump/1992/0309/sys/src/9/port/portdat.h 49c long ref; . ## diffname port/portdat.h 1992/0318 ## diff -e /n/bootesdump/1992/0309/sys/src/9/port/portdat.h /n/bootesdump/1992/0318/sys/src/9/port/portdat.h 698a /* * auth messages */ #define CHLEN 8 enum{ FScchal = 1, FSctick, RXschal = 0, RXstick = 1, }; . 687c extern char *devchar; . 626d 606c struct Stream { . 593c struct Queue { . 581a char nodelim; /* True if stream does not preserve delimiters */ . 160d 158a Stream *stream; /* for stream channels */ . ## diffname port/portdat.h 1992/0319 ## diff -e /n/bootesdump/1992/0318/sys/src/9/port/portdat.h /n/bootesdump/1992/0319/sys/src/9/port/portdat.h 605a Proc *pp; Proc *pg; . ## diffname port/portdat.h 1992/0321 ## diff -e /n/bootesdump/1992/0319/sys/src/9/port/portdat.h /n/bootesdump/1992/0321/sys/src/9/port/portdat.h 710a FSstick, FSerr, . 709a FSschal, FSok, . 698a extern char sysname[NAMELEN]; . ## diffname port/portdat.h 1992/0322 ## diff -e /n/bootesdump/1992/0321/sys/src/9/port/portdat.h /n/bootesdump/1992/0322/sys/src/9/port/portdat.h 708c #define AUTHLEN 8 . ## diffname port/portdat.h 1992/0325 ## diff -e /n/bootesdump/1992/0322/sys/src/9/port/portdat.h /n/bootesdump/1992/0325/sys/src/9/port/portdat.h 699a extern int cpuserver; . ## diffname port/portdat.h 1992/0326 ## diff -e /n/bootesdump/1992/0325/sys/src/9/port/portdat.h /n/bootesdump/1992/0326/sys/src/9/port/portdat.h 606,607d ## diffname port/portdat.h 1992/0409 ## diff -e /n/bootesdump/1992/0326/sys/src/9/port/portdat.h /n/bootesdump/1992/0409/sys/src/9/port/portdat.h 645,646c Streamhi= (32*1024), /* byte count high water mark */ Streambhi= 128, /* block count high water mark */ . ## diffname port/portdat.h 1992/0428 ## diff -e /n/bootesdump/1992/0409/sys/src/9/port/portdat.h /n/bootesdump/1992/0428/sys/src/9/port/portdat.h 698a extern Ref noteidalloc; . 528a ulong noteid; /* Equivalent of note group */ . 525c char *psstate; /* What /proc/#/status reports */ . 461,463c FORKNSG = (1<<0), FORKEVG = (1<<1), FORKFDG = (1<<2), FORKNTG = (1<<3), FORKPCS = (1<<4), FORKMEM = (1<<5), FORKCNSG = (1<<10), FORKCEVG = (1<<11), FORKCFDG = (1<<12) . ## diffname port/portdat.h 1992/0430 ## diff -e /n/bootesdump/1992/0428/sys/src/9/port/portdat.h /n/bootesdump/1992/0430/sys/src/9/port/portdat.h 466a FORKNOW = (1<<6), . 450,458d ## diffname port/portdat.h 1992/0501 ## diff -e /n/bootesdump/1992/0430/sys/src/9/port/portdat.h /n/bootesdump/1992/0501/sys/src/9/port/portdat.h 452,461c RFNAMEG = (1<<0), RFENVG = (1<<1), RFFDG = (1<<2), RFNOTEG = (1<<3), RFPROC = (1<<4), RFMEM = (1<<5), RFNOWAIT = (1<<6), RFCNAMEG = (1<<10), RFCENVG = (1<<11), RFCFDG = (1<<12) . ## diffname port/portdat.h 1992/0516 ## diff -e /n/bootesdump/1992/0501/sys/src/9/port/portdat.h /n/bootesdump/1992/0516/sys/src/9/port/portdat.h 86c QLock; . 79c ulong when; /* may underflow in clock(); must be signed */ . ## diffname port/portdat.h 1992/0602 ## diff -e /n/bootesdump/1992/0516/sys/src/9/port/portdat.h /n/bootesdump/1992/0602/sys/src/9/port/portdat.h 698a extern Talarm talarm; . 563a ulong twhen; Rendez *trend; Proc *tlink; . 553c Rendez sleep; /* place for syssleep/debug */ . 78,81c Proc *list; . 76d 74c struct Talarm . 37a typedef struct Talarm Talarm; . 1d ## diffname port/portdat.h 1992/0617 ## diff -e /n/bootesdump/1992/0602/sys/src/9/port/portdat.h /n/bootesdump/1992/0617/sys/src/9/port/portdat.h 563a int (*tfn)(void*); . ## diffname port/portdat.h 1992/0619 ## diff -e /n/bootesdump/1992/0617/sys/src/9/port/portdat.h /n/bootesdump/1992/0619/sys/src/9/port/portdat.h 416,418c ulong p0, p1; /* base of pages in bank 0/1 */ ulong np0, np1; /* number of pages in bank 0/1 */ . 407d 397d 40a #include "fcall.h" . ## diffname port/portdat.h 1992/0620 ## diff -e /n/bootesdump/1992/0619/sys/src/9/port/portdat.h /n/bootesdump/1992/0620/sys/src/9/port/portdat.h 610a Stream *next; . 161c Mnt *mntptr; /* for devmnt */ . 17a typedef struct Mnt Mnt; . ## diffname port/portdat.h 1992/0621 ## diff -e /n/bootesdump/1992/0620/sys/src/9/port/portdat.h /n/bootesdump/1992/0621/sys/src/9/port/portdat.h 642c enum { . 208c struct Etherpkt { . 111c struct Blist { . 44,48d ## diffname port/portdat.h 1992/0623 ## diff -e /n/bootesdump/1992/0621/sys/src/9/port/portdat.h /n/bootesdump/1992/0623/sys/src/9/port/portdat.h 675c Netprot *prot; /* linked list of protections */ . 653a int id; Netprot *next; /* linked list of protections */ . 401a struct Evalue { char *name; char *value; int len; ulong path; Evalue *link; }; . 397,399c QLock; Evalue *entries; ulong path; . 195,200d 9,10c typedef struct Evalue Evalue; . ## diffname port/portdat.h 1992/0625 ## diff -e /n/bootesdump/1992/0623/sys/src/9/port/portdat.h /n/bootesdump/1992/0625/sys/src/9/port/portdat.h 723a AUTHLEN = 8, . 713,714c enum { . 704a extern Palloc palloc; extern Pgrps pgrpalloc; . 702,703d 700a extern IOQ printq; extern char* statename[]; extern Image swapimage; . 699a extern ulong initcode[]; extern FPsave initfp; extern KIOQ kbdq; extern IOQ lineq; extern IOQ mouseq; extern Ref noteidalloc; . 693,698d 691c extern char* conffile; extern int cpuserver; extern char* devchar; . 689d 685d 681,683d 576,583c Streamput *iput; /* input routine */ Streamput *oput; /* output routine */ Streamopen *open; Streamclose *close; char *name; Streamreset *reset; /* initialization */ char nodelim; /* True if stream does not preserve delimiters */ Qinfo *next; . 494,499c TUser = 0, /* Proc.time */ . 484,492c Proc_stopme = 1, /* devproc requests */ Proc_exitme, Proc_traceme, . 482d 472c Dead = 0, /* Process states */ . 467,469d 340,341c SG_RONLY = 040, /* Segment is read only */ }; . 331,338c enum { SG_TYPE = 07, /* Mask type of segment */ SG_TEXT = 00, SG_DATA = 01, SG_BSS = 02, SG_STACK = 03, SG_SHARED = 04, SG_PHYSICAL = 05, SG_SHDATA = 06, . 283a Lock; . 274,280c enum { PG_NOFLUSH = 0, /* Fields for cache control of pages */ PG_TXTFLUSH = 1, PG_DATFLUSH = 2, PG_MOD = 0x01, /* Simulated modified and referenced bits */ PG_REF = 0x02, }; . 241,245d 82a #define MAXSYSARG 5 /* for mount(fd, mpt, flag, arg, srv) */ struct Sargs { ulong args[MAXSYSARG]; }; . 39a typedef void Streamput(Queue*, Block*); typedef void Streamopen(Queue*, Stream*); typedef void Streamclose(Queue*); typedef void Streamreset(void); . 34a typedef struct Sargs Sargs; . ## diffname port/portdat.h 1992/0725 ## diff -e /n/bootesdump/1992/0625/sys/src/9/port/portdat.h /n/bootesdump/1992/0725/sys/src/9/port/portdat.h 699a extern int cpuserver; . ## diffname port/portdat.h 1992/0726 ## diff -e /n/bootesdump/1992/0725/sys/src/9/port/portdat.h /n/bootesdump/1992/0726/sys/src/9/port/portdat.h 678a #define MB (1024*1024) . ## diffname port/portdat.h 1992/0805 ## diff -e /n/bootesdump/1992/0726/sys/src/9/port/portdat.h /n/bootesdump/1992/0805/sys/src/9/port/portdat.h 514c Page *upage; /* page from palloc */ . 356a #define pagedout(s) (((ulong)s)==0 || onswap(s)) #define swapaddr(s) (((ulong)s)&~PG_ONSWAP) . 354,355d ## diffname port/portdat.h 1992/0808 ## diff -e /n/bootesdump/1992/0805/sys/src/9/port/portdat.h /n/bootesdump/1992/0808/sys/src/9/port/portdat.h 219a /* * SCSI devices. */ enum { ScsiTestunit = 0x00, ScsiExtsens = 0x03, ScsiModesense = 0x1a, ScsiGetcap = 0x25, ScsiRead = 0x08, ScsiWrite = 0x0a, /* * data direction */ ScsiIn = 1, ScsiOut = 0, }; struct Scsibuf { void * virt; void * phys; Scsibuf *next; }; struct Scsidata { uchar * base; uchar * lim; uchar * ptr; }; struct Scsi { QLock; ulong pid; ushort target; ushort lun; ushort rflag; ushort status; Scsidata cmd; Scsidata data; Scsibuf *b; uchar *save; uchar cmdblk[16]; }; . 35a typedef struct Scsi Scsi; typedef struct Scsibuf Scsibuf; typedef struct Scsidata Scsidata; . ## diffname port/portdat.h 1992/0811 ## diff -e /n/bootesdump/1992/0808/sys/src/9/port/portdat.h /n/bootesdump/1992/0811/sys/src/9/port/portdat.h 147a #define CRCLOSE 32 /* remove on close */ . ## diffname port/portdat.h 1992/0824 ## diff -e /n/bootesdump/1992/0811/sys/src/9/port/portdat.h /n/bootesdump/1992/0824/sys/src/9/port/portdat.h 754,756c enum { CHDIR = 0x80000000L, CHAPPEND = 0x40000000L, CHEXCL = 0x20000000L, }; . 751d 728,730c enum { PRINTSIZE = 256, NUMSIZE = 12, /* size of formatted number */ MB = (1024*1024), }; . 689,694c Shighqid = STREAMQID(1,0) - 1, Sdataqid = Shighqid, Sctlqid = Sdataqid-1, Slowqid = Sctlqid, Streamhi = (32*1024), /* byte count high water mark */ Streambhi = 128, /* block count high water mark */ . 632,638c /* Queue.flag */ enum { QHUNGUP = 0x1, /* stream has been hung up */ QINUSE = 0x2, /* allocation check */ QHIWAT = 0x4, /* queue has gone past the high water mark */ QDEBUG = 0x8, }; . 612c * machine specific MMU . 490,499d 487a ulong cmembase; /* Key memory protected from read by devproc */ ulong cmemtop; . 473d 465d 439d 432d 430c enum { RENDHASH = 32, /* Hash to lookup rendezvous tags */ MNTHASH = 32, /* Hash to walk mount table */ NFD = 100, /* Number of per process file descriptors */ PGHSIZE = 512, /* Page hash for image lookup */ }; . 424c Image *image; /* text in file attached to this segment */ . 376c Segment *s; /* TEXT segment for image if running */ . 365c ulong headroom; /* Space pager keeps free under highwater */ . 271,273c /* character based IO (mouse, keyboard, console screen) */ . 260,269c ulong pid; ushort target; ushort lun; ushort rflag; ushort status; Scsidata cmd; Scsidata data; Scsibuf* b; uchar* save; uchar cmdblk[16]; . 252,254c uchar* base; uchar* lim; uchar* ptr; . 245,247c void* virt; void* phys; Scsibuf* next; . 236,238c /* data direction */ . 228a ETHERMINTU = 60, /* minimum transmit size */ ETHERMAXTU = 1514, /* maximum transmit size */ ETHERHDRSIZE = 14, /* size of an ethernet header */ }; /* SCSI devices. */ enum { . 224,226d 220,222d 214,218c uchar d[6]; uchar s[6]; uchar type[2]; uchar data[1500]; uchar crc[4]; . 186,198c void (*reset)(void); void (*init)(void); Chan* (*attach)(char*); Chan* (*clone)(Chan*, Chan*); int (*walk)(Chan*, char*); void (*stat)(Chan*, char*); Chan* (*open)(Chan*, int); void (*create)(Chan*, char*, int, ulong); void (*close)(Chan*); long (*read)(Chan*, void*, long, ulong); long (*write)(Chan*, void*, long, ulong); void (*remove)(Chan*); void (*wstat)(Chan*, char*); . 181a Crypt *next; . ## diffname port/portdat.h 1992/0825 ## diff -e /n/bootesdump/1992/0824/sys/src/9/port/portdat.h /n/bootesdump/1992/0825/sys/src/9/port/portdat.h 233a ScsiInquiry = 0x12, . 152,154d ## diffname port/portdat.h 1992/0826 ## diff -e /n/bootesdump/1992/0825/sys/src/9/port/portdat.h /n/bootesdump/1992/0826/sys/src/9/port/portdat.h 723a MAXCRYPT = 127, . ## diffname port/portdat.h 1992/0902 ## diff -e /n/bootesdump/1992/0826/sys/src/9/port/portdat.h /n/bootesdump/1992/0902/sys/src/9/port/portdat.h 735c extern uchar initcode[]; . ## diffname port/portdat.h 1992/0912 ## diff -e /n/bootesdump/1992/0902/sys/src/9/port/portdat.h /n/bootesdump/1992/0912/sys/src/9/port/portdat.h 358,360c uchar *swmap; /* Base of swap map in memory */ uchar *alloc; /* Round robin allocator */ uchar *last; /* Speed swap allocation */ uchar *top; /* Top of swap map */ . ## diffname port/portdat.h 1992/1009 ## diff -e /n/bootesdump/1992/0912/sys/src/9/port/portdat.h /n/bootesdump/1992/1009/sys/src/9/port/portdat.h 232a ScsiStartunit = 0x1B, ScsiStopunit = 0x1B, . ## diffname port/portdat.h 1992/1021 ## diff -e /n/bootesdump/1992/1009/sys/src/9/port/portdat.h /n/bootesdump/1992/1021/sys/src/9/port/portdat.h 776a /* * mouse types */ enum { Mouseother= 0, Mouseserial= 1, MousePS2= 2, }; extern int mouseshifted; extern int mousetype; . ## diffname port/portdat.h 1992/1209 ## diff -e /n/bootesdump/1992/1021/sys/src/9/port/portdat.h /n/bootesdump/1992/1209/sys/src/9/port/portdat.h 436c PGHLOG = 9, PGHSIZE = 1< #include . 36a typedef struct Session Session; . 5d ## diffname port/portdat.h 1993/0407 ## diff -e /n/bootesdump/1993/0330/sys/src/9/port/portdat.h /n/bootesdump/1993/0407/sys/src/9/port/portdat.h 233a ScsiExtread = 0x28, ScsiExtwrite = 0x2a, . ## diffname port/portdat.h 1993/0501 ## diff -e /n/bootesdump/1993/0407/sys/src/9/port/portdat.h /n/fornaxdump/1993/0501/sys/src/brazil/port/portdat.h 782a AUTHLEN = 8, . 758,759d 756a extern Pthash syspt; . 752a extern Palloc palloc; . 741a extern int cpuserver; . 612a FPsave fpsave; /* address of this is known by db */ int scallnr; /* sys call number - known by db */ Sargs s; /* address of this is known by db */ int nerrlab; Label errlab[NERR]; char error[ERRLEN]; char elem[NAMELEN]; /* last name element from namec */ Chan *slash; Chan *dot; Note note[NNOTE]; short nnote; short notified; /* sysnoted is due */ Note lastnote; int (*notify)(void*, char*); void *ureg; /* User registers for notes */ void *dbgreg; /* User registers for devproc */ ulong svstatus; ulong svr1; . 611a void (*kpfun)(void*); void *kparg; . 604,606c ulong rendtag; /* Tag for rendezvous */ ulong rendval; /* Value for rendezvous */ Proc *rendhash; /* Hash list for tag values */ . 595,602c Rendez *r; /* rendezvous point slept on */ Rendez sleep; /* place for syssleep/debug */ int notepending; /* note issued but not acted on */ int kp; /* true if a kernel process */ Proc *palarm; /* Next alarm time */ ulong alarm; /* Time of call */ int newtlb; /* Pager has changed my pte's so I must flush */ . 588,593c QLock debug; /* to access debugging elements of User */ Proc *pdbg; /* the debugging process */ ulong procmode; /* proc device file mode */ int hang; /* hang at next exec for debug */ int procctl; /* Control for /proc debugging */ ulong pc; /* DEBUG only */ . 584c ulong time[6]; /* User, Sys, Real; child U, S, R */ . 579,581c Pgrp *pgrp; /* Process group for namespace */ Egrp *egrp; /* Environment group */ Fgrp *fgrp; /* File descriptor group */ . 576c Rendez waitr; /* Place to hang out in wait */ . 571,574c Lock exl; /* Lock count and waitq */ Waitq *waitq; /* Exited processes wait children */ int nchild; /* Number of living children */ int nwait; /* Number of uncollected wait records */ . 569c ulong noteid; /* Equivalent of note group */ . 565,566c char *psstate; /* What /proc/#/status reports */ Page *upage; /* page from palloc */ . 560,563c Proc *rnext; /* next process in run queue */ Proc *qnext; /* next process on queue for a QLock */ QLock *qlock; /* addrof qlock being queued for DEBUG */ . 556,557c Label sched; /* known to l.s */ char *kstack; /* known to l.s */ Mach *mach; /* machine running this proc */ . 551a NERR = 15, NNOTE = 5, . 454c RWlock ns; /* Namespace n read/one write lock */ QLock nsh; . 441c NFD = 100, /* per process file descriptors */ . 434c Pte *map[SEGMAPSIZE]; . 431c int flushme; /* maintain icache for this segment */ . 369,370c Chan *c; /* channl to text file */ Qid qid; /* Qid for page cache coherence */ . 362,363c ulong highwater; /* Pager start threshold */ ulong headroom; /* Space pager frees under highwater */ . 356c int free; /* currently free swap pages */ . 344a char lock; /* Software lock */ . 331,335c PG_TXTFLUSH = 1<<1, /* flush icache */ PG_DATFLUSH = 1<<2, /* flush both i & d caches */ PG_DATINVALID = 1<<3, /* invalidate d cache */ PG_MOD = 0x01, /* software modified bit */ PG_REF = 0x02, /* software referenced bit */ . 315a struct Mnt { Ref; /* Count of attached channels */ Chan *c; /* Channel to file service */ Proc *rip; /* Reader in progress */ Mntrpc *queue; /* Queue of pending requests on this channel */ Mntrpc *recwait; /* List of rpc's with recovery pending */ ulong id; /* Multiplexor id for channel check */ Mnt *list; /* Free list */ char mux; /* Set if the device does the multiplexing */ char recov; /* Run recovery if channel is lost */ char recprog; /* Recovery in progress */ int blocksize; /* read/write block size */ ushort flushtag; /* Tag to send flush on */ ushort flushbase; /* Base tag of flush window for this buffer */ Pthash tree; /* Path names from this mount point */ }; . 306c Chan *to; /* channel replacing channel */ int flag; char spec[NAMELEN]; . 300a enum { NSMAX = 1000, NSLOG = 7, NSCACHE = (1<mnt */ CCEXEC = 0x0008, /* close on exec */ CFREE = 0x0010, /* not in use */ CRCLOSE = 0x0020, /* remove on close */ CRECOV = 0x0040, /* requires recovery */ . 131c * Access types in namec & channel flags . 40a typedef struct Session Session; . 36d 28a typedef struct Pthash Pthash; . 22a typedef struct Path Path; . 15a typedef struct Mntrpc Mntrpc; typedef struct Mntwalk Mntwalk; . 4a typedef struct Crypt Crypt; . ## diffname port/portdat.h 1993/0508 ## diff -e /n/fornaxdump/1993/0501/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0508/sys/src/brazil/port/portdat.h 810a void *ptr; . 804,807c int (*listen)(Netprot*); int (*open)(Netprot*, int); . 796c void (*fill)(Netprot*, char*, int); . 790a Network *net; . 217,235d 10d ## diffname port/portdat.h 1993/0511 ## diff -e /n/fornaxdump/1993/0508/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0511/sys/src/brazil/port/portdat.h 760a . 758,759d 744,751c #define BLEN(b) ((b)->wp - (b)->rp) . 739,740d 737c * Macros to manage Qid's used for multiplexed devices . 721,733c Qcsleep=1, /* consumer sleeping */ . 719c enum . 707,716c Lock; Block *first; Block *last; int nbytes; /* bytes in queue */ int limit; /* max bytes in queue */ int state; QLock rlock; /* mutex for readers */ QLock wlock; /* mutex for writers */ Rendez r; . 696,702c uchar *rp; /* first unconsumed byte */ uchar *wp; /* first empty byte */ uchar *lim; /* 1 past the end of the buffer */ uchar *base; /* start of the buffer */ . 686,694c Block *next; . 684c struct Block . 682c * IO queues . 175d 103,133d 49,52d 45d 33d 3d ## diffname port/portdat.h 1993/0512 ## diff -e /n/fornaxdump/1993/0511/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0512/sys/src/brazil/port/portdat.h 672c Qstarve=1, /* consumer starved */ . ## diffname port/portdat.h 1993/0513 ## diff -e /n/fornaxdump/1993/0512/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0513/sys/src/brazil/port/portdat.h 665,666c QLock wlock; /* mutex for r */ . 659,661c Block *rfirst; /* waiting readers */ Block *rlast; Block *bfirst; /* buffer */ Block *blast; int len; /* bytes in queue */ . 652a Rendez r; /* waiting reader */ . ## diffname port/portdat.h 1993/0522 ## diff -e /n/fornaxdump/1993/0513/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0522/sys/src/brazil/port/portdat.h 694d 689,692c Nhighqid = NETQID(1,0) - 1, Ndataqid = Nhighqid, Nctlqid = Ndataqid-1, Nlowqid = Nctlqid, . 683,686c #define NETTYPE(x) ((x)&0x1f) #define NETID(x) (((x)&~CHDIR)>>5) #define NETQID(i,t) (((i)<<5)|(t)) . 678a #define BLEN(b) ((b)->wp - (b)->rp) . 670a void (*kick)(void*); /* restart output */ void *arg; /* argument to kick */ . ## diffname port/portdat.h 1993/0525 ## diff -e /n/fornaxdump/1993/0522/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0525/sys/src/brazil/port/portdat.h 684,727d 680a Qmsg=1, /* message oriented */ . 19,21d ## diffname port/portdat.h 1993/0526 ## diff -e /n/fornaxdump/1993/0525/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0526/sys/src/brazil/port/portdat.h 671d 656a QLock rlock; /* mutex for reading processes */ QLock wlock; /* mutex for writing processes */ . ## diffname port/portdat.h 1993/0527 ## diff -e /n/fornaxdump/1993/0526/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0527/sys/src/brazil/port/portdat.h 681d 678,679c /* Block.flag */ Bfilled=1, /* block filled */ /* Queue.state */ Qstarve=1, /* consumer starved */ Qmsg=2, /* message stream */ . 652a #define BLEN(b) ((b)->wp - (b)->rp) . 649a uchar flag; . ## diffname port/portdat.h 1993/0528 ## diff -e /n/fornaxdump/1993/0527/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0528/sys/src/brazil/port/portdat.h 684,685c Qstarve= (1<<0), /* consumer starved */ Qmsg= (1<<1), /* message stream */ Qclosed= (1<<2), Qflow= (1<<3), . 675c QLock rlock; /* mutex for reading processes */ Rendez rr; /* process waiting to read */ QLock wlock; /* mutex for writing processes */ Rendez wr; /* process waiting to write */ . 662,664d 659,660d ## diffname port/portdat.h 1993/0530 ## diff -e /n/fornaxdump/1993/0528/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0530/sys/src/brazil/port/portdat.h 639,688d ## diffname port/portdat.h 1993/0601 ## diff -e /n/fornaxdump/1993/0530/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0601/sys/src/brazil/port/portdat.h 663c extern Queue *printq; . 657,659c extern Queue *kbdq; extern Queue *mouseq; . 221,250d ## diffname port/portdat.h 1993/0727 ## diff -e /n/fornaxdump/1993/0601/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0727/sys/src/brazil/port/portdat.h 602c int entpc; int entr31; . ## diffname port/portdat.h 1993/0728 ## diff -e /n/fornaxdump/1993/0727/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0728/sys/src/brazil/port/portdat.h 602,603c . ## diffname port/portdat.h 1993/0731 ## diff -e /n/fornaxdump/1993/0728/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0731/sys/src/brazil/port/portdat.h 308d ## diffname port/portdat.h 1993/0806 ## diff -e /n/fornaxdump/1993/0731/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0806/sys/src/brazil/port/portdat.h 568c int newtlb; /* Pager has changed my pte's, I must flush */ . 461c ulong cmembase; /* Key memory */ . 87c #define MAXSYSARG 5 /* for mount(fd, mpt, flag, arg, srv) */ . 71c QLock k; /* Lock for waiting writers */ . ## diffname port/portdat.h 1993/0811 ## diff -e /n/fornaxdump/1993/0806/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0811/sys/src/brazil/port/portdat.h 293,295c PG_NOFLUSH = 0, PG_TXTFLUSH = 1, /* flush icache */ PG_DATFLUSH = 2, /* flush both i & d caches */ . ## diffname port/portdat.h 1993/0816 ## diff -e /n/fornaxdump/1993/0811/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0816/sys/src/brazil/port/portdat.h 313a uchar *log; int lptr; . ## diffname port/portdat.h 1993/0817 ## diff -e /n/fornaxdump/1993/0816/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0817/sys/src/brazil/port/portdat.h 457c ulong freecount; ulong freecol[NCOLOR]; /* how many pages on free list now */ . 308a char color; /* Cache coloring */ . ## diffname port/portdat.h 1993/0818 ## diff -e /n/fornaxdump/1993/0817/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0818/sys/src/brazil/port/portdat.h 315,317d ## diffname port/portdat.h 1993/0906 ## diff -e /n/fornaxdump/1993/0818/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0906/sys/src/brazil/port/portdat.h 625a extern int hwcurs; . ## diffname port/portdat.h 1993/0910 ## diff -e /n/fornaxdump/1993/0906/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0910/sys/src/brazil/port/portdat.h 460,461c Rendez r[NCOLOR]; /* Sleep for free mem */ QLock pwait[NCOLOR]; /* Queue of procs waiting for memory */ . 455d ## diffname port/portdat.h 1993/0915 ## diff -e /n/fornaxdump/1993/0910/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/0915/sys/src/brazil/port/portdat.h 491c SSEG, TSEG, DSEG, BSEG, ESEG, LSEG, SEG1, SEG2, SEG3, SEG4, NSEG . ## diffname port/portdat.h 1993/1013 ## diff -e /n/fornaxdump/1993/0915/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1013/sys/src/brazil/port/portdat.h 600,601c Notsave; . 137a Mntcache *mcp; /* Mount cache pointer */ . 13a typedef struct Mntcache Mntcache; . ## diffname port/portdat.h 1993/1014 ## diff -e /n/fornaxdump/1993/1013/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1014/sys/src/brazil/port/portdat.h 272c int flags; /* recover/cache */ . ## diffname port/portdat.h 1993/1016 ## diff -e /n/fornaxdump/1993/1014/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1016/sys/src/brazil/port/portdat.h 111a CCACHE = 0x0080, /* client cache */ . ## diffname port/portdat.h 1993/1017 ## diff -e /n/fornaxdump/1993/1016/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1017/sys/src/brazil/port/portdat.h 112a CTEXT = 0x0100, /* text file */ . ## diffname port/portdat.h 1993/1018 ## diff -e /n/fornaxdump/1993/1017/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1018/sys/src/brazil/port/portdat.h 113d ## diffname port/portdat.h 1993/1120 ## diff -e /n/fornaxdump/1993/1018/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1120/sys/src/brazil/port/portdat.h 462,464c Rendez r; /* Sleep for free mem */ QLock pwait; /* Queue of procs waiting for memory */ . 458c ulong freecount; /* how many pages on free list now */ . ## diffname port/portdat.h 1993/1121 ## diff -e /n/fornaxdump/1993/1120/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1121/sys/src/brazil/port/portdat.h 278a char *partial; /* Outstanding read data */ int npart; /* Sizeof remains */ . ## diffname port/portdat.h 1993/1124 ## diff -e /n/fornaxdump/1993/1121/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1124/sys/src/brazil/port/portdat.h 175,221d 36,38d 12d ## diffname port/portdat.h 1993/1201 ## diff -e /n/fornaxdump/1993/1124/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1201/sys/src/brazil/port/portdat.h 553a /* statistics */ ulong counter[Pcounter]; /* specialized per process counters */ ulong syscall[NSYSCALL]; . 472a NSYSCALL = 37, /* MUST be equal to the real thing!!!! */ Pcounter = 6, /* per process counters */ CSCNTR = 0, /* sched counter */ FAULTCNTR = 1, /* fault counter */ TLBCNTR = 2, /* utlbmiss */ . 11d ## diffname port/portdat.h 1993/1204 ## diff -e /n/fornaxdump/1993/1201/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1204/sys/src/brazil/port/portdat.h 568a struct Schedq { Lock; Proc *head; Proc *tail; }; . 555a Mach *mp; /* machine this process is tied to */ . 33a typedef struct Schedq Schedq; . ## diffname port/portdat.h 1993/1212 ## diff -e /n/fornaxdump/1993/1204/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1212/sys/src/brazil/port/portdat.h 557c Mach *mp; /* machine this process last ran on */ ulong mpfault; /* page faults on that mach at sched time */ . 249a PG_NEWCOL = 3, /* page has been recolored */ . ## diffname port/portdat.h 1993/1214 ## diff -e /n/fornaxdump/1993/1212/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1214/sys/src/brazil/port/portdat.h 559c ulong affinity; /* affinity counter for that mach */ . ## diffname port/portdat.h 1993/1215 ## diff -e /n/fornaxdump/1993/1214/sys/src/brazil/port/portdat.h /n/fornaxdump/1993/1215/sys/src/brazil/port/portdat.h 579a int n; . ## diffname port/portdat.h 1994/0106 ## diff -e /n/fornaxdump/1993/1215/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0106/sys/src/brazil/port/portdat.h 318c SG_RONLY = 0040, /* Segment is read only */ SG_CEXEC = 0100, /* Detach at exec */ . ## diffname port/portdat.h 1994/0216 ## diff -e /n/fornaxdump/1994/0106/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0216/sys/src/brazil/port/portdat.h 652a extern int mouseswap; . ## diffname port/portdat.h 1994/0221 ## diff -e /n/fornaxdump/1994/0216/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0221/sys/src/brazil/port/portdat.h 639a }; /* Things scsi */ enum { STharderr =-1, /* Command status error returns */ STok = 0, STcheck = 2, STcondmet = 4, STbusy = 8, STintok = 16, STconflict = 18, STintcondmet = 20, STterminated = 22, STresconf = 24, STqfull = 28, SCSIread = 0, SCSIwrite, . 37a typedef struct Target Target; . ## diffname port/portdat.h 1994/0222 ## diff -e /n/fornaxdump/1994/0221/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0222/sys/src/brazil/port/portdat.h 659a SCSImaxxfer = 1024*1024, . ## diffname port/portdat.h 1994/0225 ## diff -e /n/fornaxdump/1994/0222/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0225/sys/src/brazil/port/portdat.h 208,210c Chan* from; /* channel mounted upon */ Mount* mount; /* what's mounted upon it */ Mhead* hash; /* Hash chain */ . 199,201c Mount* next; Mhead* head; Chan* to; /* channel replacing channel */ . 192,193c Mhead* mh; Mount* cm; . 189c struct Mntwalk /* state for /proc/#/ns */ . 185,186c Path* root; Path* hash[NSCACHE]; . 146c Session*session; . 144c Chan* mchan; /* channel to mounted server */ . 141c Mnt* mntptr; /* for devmnt */ . 139c void* aux; . 133,135c Path* path; Mount* mnt; /* mount point that derived Chan */ Mount* xmnt; /* Last mount point crossed */ . 124,125c Chan* next; /* allocation */ Chan* link; . 115,117c Path* hash; Path* parent; Pthash* pthash; . ## diffname port/portdat.h 1994/0306 ## diff -e /n/fornaxdump/1994/0225/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0306/sys/src/brazil/port/portdat.h 120a struct Block { Block *next; Block *list; uchar *rp; /* first unconsumed byte */ uchar *wp; /* first empty byte */ uchar *lim; /* 1 past the end of the buffer */ uchar *base; /* start of the buffer */ uchar flag; }; . ## diffname port/portdat.h 1994/0309 ## diff -e /n/fornaxdump/1994/0306/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0309/sys/src/brazil/port/portdat.h 131a #define BLEN(s) ((s)->wp - (s)->rp) . ## diffname port/portdat.h 1994/0321 ## diff -e /n/fornaxdump/1994/0309/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0321/sys/src/brazil/port/portdat.h 123,129c Block* next; Block* list; int size; /* power of 2 allocation list */ uchar* rp; /* first unconsumed byte */ uchar* wp; /* first empty byte */ uchar* lim; /* 1 past the end of the buffer */ uchar* base; /* start of the buffer */ . ## diffname port/portdat.h 1994/0322 ## diff -e /n/fornaxdump/1994/0321/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0322/sys/src/brazil/port/portdat.h 130a uchar intr; . 125d ## diffname port/portdat.h 1994/0325 ## diff -e /n/fornaxdump/1994/0322/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0325/sys/src/brazil/port/portdat.h 583c ulong qpc; . ## diffname port/portdat.h 1994/0331 ## diff -e /n/fornaxdump/1994/0325/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0331/sys/src/brazil/port/portdat.h 597a #define NCALLBACK 32 typedef struct Callbk Callbk; struct Callbk { void (*func)(void*); void* arg; }; . ## diffname port/portdat.h 1994/0406 ## diff -e /n/fornaxdump/1994/0331/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0406/sys/src/brazil/port/portdat.h 583c . 490c NSYSCALL = 39, /* MUST be equal to the real thing!!!! */ . ## diffname port/portdat.h 1994/0407 ## diff -e /n/fornaxdump/1994/0406/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0407/sys/src/brazil/port/portdat.h 696a extern int nsyscall; . 582c ulong *syscall; . 490d ## diffname port/portdat.h 1994/0507 ## diff -e /n/fornaxdump/1994/0407/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0507/sys/src/brazil/port/portdat.h 129,130c ulong flag; . 120a enum { BINTR = (1<<0), BFREE = (1<<1), }; . ## diffname port/portdat.h 1994/0508 ## diff -e /n/fornaxdump/1994/0507/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0508/sys/src/brazil/port/portdat.h 602,610d ## diffname port/portdat.h 1994/0612 ## diff -e /n/fornaxdump/1994/0508/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0612/sys/src/brazil/port/portdat.h 584,587d ## diffname port/portdat.h 1994/0613 ## diff -e /n/fornaxdump/1994/0612/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0613/sys/src/brazil/port/portdat.h 218a Mount* copy; Mount* order; . ## diffname port/portdat.h 1994/0725 ## diff -e /n/fornaxdump/1994/0613/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0725/sys/src/brazil/port/portdat.h 580a ulong movetime; /* ticks when proc was last reassigned */ . ## diffname port/portdat.h 1994/0727 ## diff -e /n/fornaxdump/1994/0725/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0727/sys/src/brazil/port/portdat.h 691a extern Physseg physseg[]; . 581a ulong priority; . ## diffname port/portdat.h 1994/0728 ## diff -e /n/fornaxdump/1994/0727/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0728/sys/src/brazil/port/portdat.h 580,581d ## diffname port/portdat.h 1994/0729 ## diff -e /n/fornaxdump/1994/0728/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0729/sys/src/brazil/port/portdat.h 580c ulong priority; /* priority level 0 is highest */ ulong movetime; /* last time process switched processors */ . ## diffname port/portdat.h 1994/0808 ## diff -e /n/fornaxdump/1994/0729/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0808/sys/src/brazil/port/portdat.h 580c ulong priority; /* priority level */ ulong basepri; /* base priority level */ . ## diffname port/portdat.h 1994/0810 ## diff -e /n/fornaxdump/1994/0808/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0810/sys/src/brazil/port/portdat.h 582a ulong readyticks; /* time process went ready */ . ## diffname port/portdat.h 1994/0812 ## diff -e /n/fornaxdump/1994/0810/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0812/sys/src/brazil/port/portdat.h 530a Rgrp *rgrp; /* Rendez group */ . 459c RFCFDG = (1<<12), RFREND = (1<<13), . 397a }; struct Rgrp { Ref; . 392d 31a typedef struct Rgrp Rgrp; . ## diffname port/portdat.h 1994/0814 ## diff -e /n/fornaxdump/1994/0812/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0814/sys/src/brazil/port/portdat.h 701a extern ulong crasharea; extern ulong crashend; . 699a . ## diffname port/portdat.h 1994/0816 ## diff -e /n/fornaxdump/1994/0814/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0816/sys/src/brazil/port/portdat.h 503,506c Nrq = 5, . ## diffname port/portdat.h 1994/0817 ## diff -e /n/fornaxdump/1994/0816/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0817/sys/src/brazil/port/portdat.h 503c Nrq = 20, PriNormal = 10, PriRoot = 5, . 317a int notext; /* no file associated */ . ## diffname port/portdat.h 1994/0908 ## diff -e /n/fornaxdump/1994/0817/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0908/sys/src/brazil/port/portdat.h 669a STtimeout =-3, STownid =-2, . ## diffname port/portdat.h 1994/0914 ## diff -e /n/fornaxdump/1994/0908/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0914/sys/src/brazil/port/portdat.h 600,607d 504,506c Nrq = 20, /* number of scheduler priority levels */ PriNormal = 10, /* base priority for normal processes */ PriRoot = 5, /* base priority for root processes */ . 35d ## diffname port/portdat.h 1994/0915 ## diff -e /n/fornaxdump/1994/0914/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0915/sys/src/brazil/port/portdat.h 505c PriRoot = 13, /* base priority for root processes */ . ## diffname port/portdat.h 1994/0917 ## diff -e /n/fornaxdump/1994/0915/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0917/sys/src/brazil/port/portdat.h 587a ulong rt; /* # ticks used since last blocked */ ulong art; /* avg # ticks used since last blocked */ . ## diffname port/portdat.h 1994/0918 ## diff -e /n/fornaxdump/1994/0917/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0918/sys/src/brazil/port/portdat.h 591c ulong readytime; /* time process went ready */ . ## diffname port/portdat.h 1994/0920 ## diff -e /n/fornaxdump/1994/0918/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/0920/sys/src/brazil/port/portdat.h 504a PriKproc = 13, /* base priority for kernel processes */ . ## diffname port/portdat.h 1994/1124 ## diff -e /n/fornaxdump/1994/0920/sys/src/brazil/port/portdat.h /n/fornaxdump/1994/1124/sys/src/brazil/port/portdat.h 146c ulong dev; . ## diffname port/portdat.h 1995/0101 ## diff -e /n/fornaxdump/1994/1124/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0101/sys/src/brazil/port/portdat.h 134a void (*free)(Block*); . ## diffname port/portdat.h 1995/0102 ## diff -e /n/fornaxdump/1995/0101/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0102/sys/src/brazil/port/portdat.h 587,593c Mach *wired; /* machine this process must run on */ int pri; /* scheduling priority - low is high priority */ int nice; /* time-passing algorithm - low is high priority */ . 504,507c NiceMax = 10, /* max nice */ NiceNormal = 5, /* base nice for normal processes */ NiceKproc = NiceNormal-2, /* nice for kernel processes */ NiceRoot = NiceNormal-2, /* nice for root processes */ . ## diffname port/portdat.h 1995/0106 ## diff -e /n/fornaxdump/1995/0102/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0106/sys/src/brazil/port/portdat.h 589c short nice; /* time-passing algorithm - low is high priority */ short yield; /* force one lap in the runq */ . ## diffname port/portdat.h 1995/0108 ## diff -e /n/fornaxdump/1995/0106/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0108/sys/src/brazil/port/portdat.h 590c char yield; /* force one lap in the runq */ char inlock; /* temp hi proirity ~= 2*num of locks set */ . 180a long (*bwrite)(Chan*, Block*, ulong); . 179a Block* (*bread)(Chan*, long, ulong); . ## diffname port/portdat.h 1995/0110 ## diff -e /n/fornaxdump/1995/0108/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0110/sys/src/brazil/port/portdat.h 589,593c Mach *wired; Mach *mp; /* machine this process last ran on */ ulong priority; /* priority level */ ulong basepri; /* base priority level */ ulong rt; /* # ticks used since last blocked */ ulong art; /* avg # ticks used since last blocked */ ulong movetime; /* last time process switched processors */ ulong readytime; /* time process went ready */ . 506,509c Nrq = 20, /* number of scheduler priority levels */ PriNormal = 10, /* base priority for normal processes */ PriKproc = 13, /* base priority for kernel processes */ PriRoot = 13, /* base priority for root processes */ . ## diffname port/portdat.h 1995/0215 ## diff -e /n/fornaxdump/1995/0110/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0215/sys/src/brazil/port/portdat.h 494a Proc_exitbig, . ## diffname port/portdat.h 1995/0319 ## diff -e /n/fornaxdump/1995/0215/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0319/sys/src/brazil/port/portdat.h 304a Rendez pause; . 300,303c uchar* swmap; /* Base of swap map in memory */ uchar* alloc; /* Round robin allocator */ uchar* last; /* Speed swap allocation */ uchar* top; /* Top of swap map */ . ## diffname port/portdat.h 1995/0910 ## diff -e /n/fornaxdump/1995/0319/sys/src/brazil/port/portdat.h /n/fornaxdump/1995/0910/sys/src/brazil/port/portdat.h 706a extern ulong randomcount; . ## diffname port/portdat.h 1996/0303 ## diff -e /n/fornaxdump/1995/0910/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/0303/sys/src/brazil/port/portdat.h 701a enum { LRESPROF = 3, }; . 379a ulong* profile; /* Tick profile area */ . ## diffname port/portdat.h 1996/0511 ## diff -e /n/fornaxdump/1996/0303/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/0511/sys/src/brazil/port/portdat.h 509a PriLock = 19, /* priority for processes holding locks */ . ## diffname port/portdat.h 1996/0516 ## diff -e /n/fornaxdump/1996/0511/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/0516/sys/src/brazil/port/portdat.h 600a ulong lockpri; /* priority of process holding lock we're trying for */ . ## diffname port/portdat.h 1996/0607 ## diff -e /n/fornaxdump/1996/0516/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/0607/sys/src/brazil/port/portdat.h 673,685c STnomem =-4, /* buffer allocation failed */ STtimeout =-3, /* bus timeout */ STownid =-2, /* playing with myself */ STharderr =-1, /* controller error of some kind */ STok = 0, /* good */ STcheck = 0x02, /* check condition */ STcondmet = 0x04, /* condition met/good */ STbusy = 0x08, /* busy */ STintok = 0x10, /* intermediate/good */ STintcondmet = 0x14, /* intermediate/condition met/good */ STresconf = 0x18, /* reservation conflict */ STterminated = 0x22, /* command terminated */ STqfull = 0x28, /* queue full */ . ## diffname port/portdat.h 1996/0712 ## diff -e /n/fornaxdump/1996/0607/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/0712/sys/src/brazil/port/portdat.h 690c SCSImaxxfer = 2048*1024, . ## diffname port/portdat.h 1996/1015 ## diff -e /n/fornaxdump/1996/0712/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/1015/sys/src/brazil/port/portdat.h 557a Lock rlock; /* synchronization for 'r' below */ . ## diffname port/portdat.h 1996/1016 ## diff -e /n/fornaxdump/1996/1015/sys/src/brazil/port/portdat.h /n/fornaxdump/1996/1016/sys/src/brazil/port/portdat.h 558c Lock rlock; /* sync sleep/wakeup with postnote */ . ## diffname port/portdat.h 1997/0220 ## diff -e /n/fornaxdump/1996/1016/sys/src/brazil/port/portdat.h /n/emeliedump/1997/0220/sys/src/brazil/port/portdat.h 53d ## diffname port/portdat.h 1997/0327 ## diff -e /n/emeliedump/1997/0220/sys/src/brazil/port/portdat.h /n/emeliedump/1997/0327/sys/src/brazil/port/portdat.h 713,715d 698,707d 693,695d 632,633c extern Queue* kbdq; . 629d 626c extern Dev* devtab[]; . 624d 244d ## diffname port/portdat.h 1997/0408 ## diff -e /n/emeliedump/1997/0327/sys/src/brazil/port/portdat.h /n/emeliedump/1997/0408/sys/src/brazil/port/portdat.h 623d 168a int dc; char* name; . ## diffname port/portdat.h 1997/0417 ## diff -e /n/emeliedump/1997/0408/sys/src/brazil/port/portdat.h /n/emeliedump/1997/0417/sys/src/brazil/port/portdat.h 620a READSTR = 1000, /* temporary buffer size for device reads */ . ## diffname port/portdat.h 1997/0516 ## diff -e /n/emeliedump/1997/0417/sys/src/brazil/port/portdat.h /n/emeliedump/1997/0516/sys/src/brazil/port/portdat.h 343a SG_MAP = 07, . ## diffname port/portdat.h 1997/0603 ## diff -e /n/emeliedump/1997/0516/sys/src/brazil/port/portdat.h /n/emeliedump/1997/0603/sys/src/brazil/port/portdat.h 434a }; enum { DELTAFD = 20 /* incremental increase in Fgrp.fd's */ . 433c Chan **fd; int nfd; /* number allocated */ . ## diffname port/portdat.h 1998/0306 ## diff -e /n/emeliedump/1997/0603/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0306/sys/src/brazil/port/portdat.h 160a char tag[4]; /* for iproute */ . ## diffname port/portdat.h 1998/0319 ## diff -e /n/emeliedump/1998/0306/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0319/sys/src/brazil/port/portdat.h 184c long (*write)(Chan*, void*, long, vlong); . 182c long (*read)(Chan*, void*, long, vlong); . 144c vlong offset; /* in file */ . ## diffname port/portdat.h 1998/0325 ## diff -e /n/emeliedump/1998/0319/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0325/sys/src/brazil/port/portdat.h 497a QueueingW, . 66,69c Lock use; Proc *head; /* list of waiting processes */ Proc *tail; int readers; /* number of readers */ int writer; /* number of writers */ . ## diffname port/portdat.h 1998/0326 ## diff -e /n/emeliedump/1998/0325/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0326/sys/src/brazil/port/portdat.h 708d ## diffname port/portdat.h 1998/0512 ## diff -e /n/emeliedump/1998/0326/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0512/sys/src/brazil/port/portdat.h 578c ulong rendtag; /* Tag for rendezvous */ . ## diffname port/portdat.h 1998/0516 ## diff -e /n/emeliedump/1998/0512/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0516/sys/src/brazil/port/portdat.h 613a int preempted; /* true if this process hasn't finished the interrupt * that last preempted it */ . ## diffname port/portdat.h 1998/0604 ## diff -e /n/emeliedump/1998/0516/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0604/sys/src/brazil/port/portdat.h 613d ## diffname port/portdat.h 1998/0605 ## diff -e /n/emeliedump/1998/0604/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0605/sys/src/brazil/port/portdat.h 603a int nlocks; /* Number of locks held */ . 539d ## diffname port/portdat.h 1998/0606 ## diff -e /n/emeliedump/1998/0605/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0606/sys/src/brazil/port/portdat.h 604c int lockwait; /* waiting for lock to be released */ . 521c PriLock = 0, /* priority for processes waiting on a lock */ . ## diffname port/portdat.h 1998/0617 ## diff -e /n/emeliedump/1998/0606/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0617/sys/src/brazil/port/portdat.h 195c Length; . ## diffname port/portdat.h 1998/0805 ## diff -e /n/emeliedump/1998/0617/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0805/sys/src/brazil/port/portdat.h 70a // int pidw; // int pidr[10]; . ## diffname port/portdat.h 1998/0806 ## diff -e /n/emeliedump/1998/0805/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0806/sys/src/brazil/port/portdat.h 500a QueueingR, . 71,72d ## diffname port/portdat.h 1998/0811 ## diff -e /n/emeliedump/1998/0806/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0811/sys/src/brazil/port/portdat.h 711a #pragma varargck argpos print 1 #pragma varargck argpos snprint 3 #pragma varargck argpos sprint 2 #pragma varargck argpos fprint 2 #pragma varargck type "lld" vlong #pragma varargck type "llx" vlong #pragma varargck type "lld" uvlong #pragma varargck type "llx" uvlong #pragma varargck type "lx" void* #pragma varargck type "ld" long #pragma varargck type "lx" long #pragma varargck type "ld" ulong #pragma varargck type "lx" ulong #pragma varargck type "d" int #pragma varargck type "x" int #pragma varargck type "c" int #pragma varargck type "C" int #pragma varargck type "d" uint #pragma varargck type "x" uint #pragma varargck type "c" uint #pragma varargck type "C" uint #pragma varargck type "f" double #pragma varargck type "e" double #pragma varargck type "g" double #pragma varargck type "s" char* #pragma varargck type "S" Rune* #pragma varargck type "r" void #pragma varargck type "%" void #pragma varargck type "I" uchar* #pragma varargck type "V" uchar* #pragma varargck type "E" uchar* #pragma varargck type "M" uchar* . ## diffname port/portdat.h 1998/0829 ## diff -e /n/emeliedump/1998/0811/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0829/sys/src/brazil/port/portdat.h 234a Ref; RWlock lock; . 153,154c Mhead* mh; /* mount point that derived Chan */ Mhead* xmh; /* Last mount point crossed */ int uri; /* union read index */ . ## diffname port/portdat.h 1998/0916 ## diff -e /n/emeliedump/1998/0829/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0916/sys/src/brazil/port/portdat.h 388c Pte **map; int mapsize; Pte *ssegmap[SSEGMAPSIZE]; . 377d ## diffname port/portdat.h 1998/0918 ## diff -e /n/emeliedump/1998/0916/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0918/sys/src/brazil/port/portdat.h 138a #define BALLOC(s) ((s)->lim - (s)->base); . ## diffname port/portdat.h 1998/0923 ## diff -e /n/emeliedump/1998/0918/sys/src/brazil/port/portdat.h /n/emeliedump/1998/0923/sys/src/brazil/port/portdat.h 139c #define BALLOC(s) ((s)->lim - (s)->base) . ## diffname port/portdat.h 1999/0108 ## diff -e /n/emeliedump/1998/0923/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0108/sys/src/brazil/port/portdat.h 545a QLock seglock; /* locked whenever seg[] changes */ . 328a QLock rdlock; /* mutex for reading from image */ . ## diffname port/portdat.h 1999/0110 ## diff -e /n/emeliedump/1999/0108/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0110/sys/src/brazil/port/portdat.h 624a ulong qpc; /* pc calling last blocking qlock */ . 329d ## diffname port/portdat.h 1999/0122 ## diff -e /n/emeliedump/1999/0110/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0122/sys/src/brazil/port/portdat.h 434a Qid qid; . 433d 425c ulong path; /* qid.path of next Evalue to be allocated */ ulong vers; /* of Egrp */ . ## diffname port/portdat.h 1999/0316 ## diff -e /n/emeliedump/1999/0122/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0316/sys/src/brazil/port/portdat.h 716a }; /* * action log */ struct Log { Lock; int opens; char* buf; char *end; char *rptr; int len; int logmask; /* mask of things to debug */ QLock readq; Rendez readr; }; struct Logflag { char* name; int mask; }; struct Cmdbuf { char buf[64]; char *f[16]; int nf; . 41a . 11a typedef struct Log Log; typedef struct Logflag Logflag; . 3a typedef struct Cmdbuf Cmdbuf; . ## diffname port/portdat.h 1999/0517 ## diff -e /n/emeliedump/1999/0316/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0517/sys/src/brazil/port/portdat.h 786a #pragma varargck type "p" void* . ## diffname port/portdat.h 1999/0618 ## diff -e /n/emeliedump/1999/0517/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0618/sys/src/brazil/port/portdat.h 747c char buf[256]; . ## diffname port/portdat.h 1999/0629 ## diff -e /n/emeliedump/1999/0618/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0629/sys/src/brazil/port/portdat.h 747c char buf[64]; . 262d 221a int cddone; . 212,219d 174a struct Cname { Ref; int alen; /* allocated length */ int len; /* strlen(s) */ char *s; }; . 172a Cname *name; . 157d 116,124d 23d 4a typedef struct Cname Cname; . ## diffname port/portdat.h 1999/0731 ## diff -e /n/emeliedump/1999/0629/sys/src/brazil/port/portdat.h /n/emeliedump/1999/0731/sys/src/brazil/port/portdat.h 738c char buf[256]; . ## diffname port/portdat.h 1999/1022 ## diff -e /n/emeliedump/1999/0731/sys/src/brazil/port/portdat.h /n/emeliedump/1999/1022/sys/src/brazil/port/portdat.h 315c Chan *c; /* channel to text file */ . ## diffname port/portdat.h 1999/1105 ## diff -e /n/emeliedump/1999/1022/sys/src/brazil/port/portdat.h /n/emeliedump/1999/1105/sys/src/9/port/portdat.h 249,250c int flags; /* cache */ . 246,247c ulong id; /* Multiplexer id for channel check */ . 112d ## diffname port/portdat.h 1999/1230 ## diff -e /n/emeliedump/1999/1105/sys/src/9/port/portdat.h /n/emeliedump/1999/1230/sys/src/9/port/portdat.h 741a #define DEVDOTDOT -1 . ## diffname port/portdat.h 2000/0104 ## diff -e /n/emeliedump/1999/1230/sys/src/9/port/portdat.h /n/emeliedump/2000/0104/sys/src/9/port/portdat.h 249,250d ## diffname port/portdat.h 2000/0107 ## diff -e /n/emeliedump/2000/0104/sys/src/9/port/portdat.h /n/emeliedump/2000/0107/sys/src/9/port/portdat.h 72a ulong wpc; /* pc of writer */ Proc *wproc; /* writing proc */ . ## diffname port/portdat.h 2000/0123 ## diff -e /n/emeliedump/2000/0107/sys/src/9/port/portdat.h /n/emeliedump/2000/0123/sys/src/9/port/portdat.h 271,272c PG_TXTFLUSH = 1, /* flush dcache and invalidate icache */ PG_DATFLUSH = 2, /* flush both i & d caches (UNUSED) */ . ## diffname port/portdat.h 2000/0322 ## diff -e /n/emeliedump/2000/0123/sys/src/9/port/portdat.h /n/emeliedump/2000/0322/sys/src/9/port/portdat.h 478a RFNOMNT = (1<<14), . 398a int noattach; . ## diffname port/portdat.h 2000/0506 ## diff -e /n/emeliedump/2000/0322/sys/src/9/port/portdat.h /n/emeliedump/2000/0506/sys/src/9/port/portdat.h 685,707d ## diffname port/portdat.h 2000/0919 ## diff -e /n/emeliedump/2000/0506/sys/src/9/port/portdat.h /n/emeliedump/2000/0919/sys/src/9/port/portdat.h 56a Lock; . ## diffname port/portdat.h 2000/1018 ## diff -e /n/emeliedump/2000/0919/sys/src/9/port/portdat.h /n/emeliedump/2000/1018/sys/src/9/port/portdat.h 700a int nlog; int minread; . ## diffname port/portdat.h 2000/1122 ## diff -e /n/emeliedump/2000/1018/sys/src/9/port/portdat.h /n/emeliedump/2000/1122/sys/src/9/port/portdat.h 195a void (*power)(int); /* power mgt: power(1) → on, power (0) → off */ . ## diffname port/portdat.h 2000/1205 ## diff -e /n/emeliedump/2000/1122/sys/src/9/port/portdat.h /n/emeliedump/2000/1205/sys/src/9/port/portdat.h 196a int (*config)(int, char*, DevConf*); . 11a typedef struct DevConf DevConf; . ## diffname port/portdat.h 2000/1215 ## diff -e /n/emeliedump/2000/1205/sys/src/9/port/portdat.h /n/emeliedump/2000/1215/sys/src/9/port/portdat.h 205c vlong length; . ## diffname port/portdat.h 2001/0127 ## diff -e /n/emeliedump/2000/1215/sys/src/9/port/portdat.h /n/emeliedump/2001/0127/sys/src/9/port/portdat.h 623a ulong kppc; /* kprof calling pc */ . ## diffname port/portdat.h 2001/0315 ## diff -e /n/emeliedump/2001/0127/sys/src/9/port/portdat.h /n/emeliedump/2001/0315/sys/src/9/port/portdat.h 615a uchar fixedpri; /* priority level deson't change */ . 43a typedef struct Watchdog Watchdog; . ## diffname port/portdat.h 2001/0405 ## diff -e /n/emeliedump/2001/0315/sys/src/9/port/portdat.h /n/emeliedump/2001/0405/sys/src/9/port/portdat.h 162d ## diffname port/portdat.h 2001/0424 ## diff -e /n/emeliedump/2001/0405/sys/src/9/port/portdat.h /n/emeliedump/2001/0424/sys/src/9/port/portdat.h 346d ## diffname port/portdat.h 2001/0425 ## diff -e /n/emeliedump/2001/0424/sys/src/9/port/portdat.h /n/emeliedump/2001/0425/sys/src/9/port/portdat.h 345d ## diffname port/portdat.h 2001/0510 ## diff -e /n/emeliedump/2001/0425/sys/src/9/port/portdat.h /n/emeliedump/2001/0510/sys/src/9/port/portdat.h 545a Proc *pidhash; /* next proc in pid hash */ . ## diffname port/portdat.h 2001/0511 ## diff -e /n/emeliedump/2001/0510/sys/src/9/port/portdat.h /n/emeliedump/2001/0511/sys/src/9/port/portdat.h 755a #pragma varargck type "q" char* . 536a char *args; int nargs; /* number of bytes of args */ . ## diffname port/portdat.h 2001/0527 ## diff -e /n/emeliedump/2001/0511/sys/src/9/port/portdat.h /n/emeliedump/2001/0527/sys/src/9/port/portdat.h 766a #pragma varargck type "q" char* . 758d 729a enum { Stagesize= 1024 }; /* * software UART */ struct Uart { void* regs; /* hardware stuff */ char* name; /* internal name */ ulong freq; /* clock frequency */ int bits; /* bits per character */ int stop; /* stop bits */ int parity; /* even, odd or no parity */ int baud; /* baud rate */ PhysUart*phys; int console; /* used as a serial console */ int special; /* internal kernel device */ Uart* next; /* list of allocated uarts */ QLock; int type; /* ?? */ int dev; int opens; int enabled; Uart *elist; /* next enabled interface */ int perr; /* parity errors */ int ferr; /* framing errors */ int oerr; /* rcvr overruns */ /* buffers */ int (*putc)(Queue*, int); Queue *iq; Queue *oq; uchar istage[Stagesize]; uchar *iw; uchar *ir; uchar *ie; Lock tlock; /* transmit */ uchar ostage[Stagesize]; uchar *op; uchar *oe; int modem; /* hardware flow control on */ int xonoff; /* software flow control on */ int blocked; int cts, dsr, dcd, dcdts; /* keep track of modem status */ int ctsbackoff; int hup_dsr, hup_dcd; /* send hangup upstream? */ int dohup; Rendez r; }; . 728c /* * routines to access UART hardware */ struct PhysUart { char* name; Uart* (*pnp)(void); void (*enable)(Uart*, int); void (*disable)(Uart*); void (*kick)(Uart*); void (*dobreak)(Uart*, int); int (*baud)(Uart*, int); int (*bits)(Uart*, int); int (*stop)(Uart*, int); int (*parity)(Uart*, int); void (*modemctl)(Uart*, int); void (*rts)(Uart*, int); void (*dtr)(Uart*, int); long (*status)(Uart*, void*, long, long); void (*fifo)(Uart*, int); }; . 668,693d 662c extern int nsyscall; extern char *sysname; . 659c extern Queue *serialoq; . 657d 655a extern Queue* kprintoq; . 651c extern char *eve; . 626d 600,601c char error[ERRMAX]; char genbuf[128]; /* buffer used e.g. for last name element from namec */ . 541c QLock *qlock; /* addr of qlock being queued for DEBUG */ . 535,536c char *text; char *user; . 395,396c #define REND(p,s) ((p)->rendhash[(s)&((1<mnthash[(qid).path&((1<mnt */ . 108,109c Amount, /* to be mounted or mounted upon */ Acreate, /* is to be created */ Aremove, /* will be removed by caller */ . 105c Aaccess, /* as in stat, wstat */ . 48d 44,45c typedef struct Walkqid Walkqid; typedef int Devgen(Chan*, char*, Dirtab*, int, int, Dir*); . 42a typedef struct Uart Uart; . 26a typedef struct PhysUart PhysUart; . 12d ## diffname port/portdat.h 2001/0529 ## diff -e /n/emeliedump/2001/0527/sys/src/9/port/portdat.h /n/emeliedump/2001/0529/sys/src/9/port/portdat.h 199a void (*power)(int); /* power mgt: power(1) → on, power (0) → off */ int (*config)(int, char*, DevConf*); . 11a typedef struct DevConf DevConf; . ## diffname port/portdat.h 2001/0602 ## diff -e /n/emeliedump/2001/0529/sys/src/9/port/portdat.h /n/emeliedump/2001/0602/sys/src/9/port/portdat.h 264a Queue *q; /* input queue */ . ## diffname port/portdat.h 2001/0619 ## diff -e /n/emeliedump/2001/0602/sys/src/9/port/portdat.h /n/emeliedump/2001/0619/sys/src/9/port/portdat.h 744a void* saveregs; /* place to put registers on power down */ . 732a void (*power)(Uart*, int); . ## diffname port/portdat.h 2001/0731 ## diff -e /n/emeliedump/2001/0619/sys/src/9/port/portdat.h /n/emeliedump/2001/0731/sys/src/9/port/portdat.h 95d ## diffname port/portdat.h 2001/0807 ## diff -e /n/emeliedump/2001/0731/sys/src/9/port/portdat.h /n/emeliedump/2001/0807/sys/src/9/port/portdat.h 200c void (*power)(int); /* power mgt: power(1) => on, power (0) => off */ . ## diffname port/portdat.h 2001/0819 ## diff -e /n/emeliedump/2001/0807/sys/src/9/port/portdat.h /n/emeliedump/2001/0819/sys/src/9/port/portdat.h 263a char *version; /* 9P version */ . 257c Lock; /* references are counted using c->ref; channels on this mount point incref(c->mchan) == Mnt.c */ . 169d 163d 159a Mnt *mux; /* Mnt for clients using me for messages */ . ## diffname port/portdat.h 2001/0820 ## diff -e /n/emeliedump/2001/0819/sys/src/9/port/portdat.h /n/emeliedump/2001/0820/sys/src/9/port/portdat.h 263a int msize; /* data + IOHDRSZ */ . ## diffname port/portdat.h 2001/0822 ## diff -e /n/emeliedump/2001/0820/sys/src/9/port/portdat.h /n/emeliedump/2001/0822/sys/src/9/port/portdat.h 612c char syserror[ERRMAX]; /* last error from a system call */ char error[ERRMAX]; /* reason we're unwinding the error stack */ . 157a int dri; /* devdirread index */ . ## diffname port/portdat.h 2001/0904 ## diff -e /n/emeliedump/2001/0822/sys/src/9/port/portdat.h /n/emeliedump/2001/0904/sys/src/9/port/portdat.h 678a extern uint qiomaxatomic; . ## diffname port/portdat.h 2001/0919 ## diff -e /n/emeliedump/2001/0904/sys/src/9/port/portdat.h /n/emeliedump/2001/0919/sys/src/9/port/portdat.h 105a Abind, /* for left-hand-side of bind */ . ## diffname port/portdat.h 2001/0924 ## diff -e /n/emeliedump/2001/0919/sys/src/9/port/portdat.h /n/emeliedump/2001/0924/sys/src/9/port/portdat.h 614,615c char *syserrstr; /* last error from a system call, errbuf0 or 1 */ char *errstr; /* reason we're unwinding the error stack, errbuf1 or 0 */ char errbuf0[ERRMAX]; char errbuf1[ERRMAX]; . ## diffname port/portdat.h 2001/1108 ## diff -e /n/emeliedump/2001/0924/sys/src/9/port/portdat.h /n/emeliedump/2001/1108/sys/src/9/port/portdat.h 715,716c char *buf; char **f; . ## diffname port/portdat.h 2001/1117 ## diff -e /n/emeliedump/2001/1108/sys/src/9/port/portdat.h /n/emeliedump/2001/1117/sys/src/9/port/portdat.h 710a }; enum { NCMDFIELD = 128 . 584a ulong privatemem; /* proc does not let anyone read mem */ . 473,474d ## diffname port/portdat.h 2001/1118 ## diff -e /n/emeliedump/2001/1117/sys/src/9/port/portdat.h /n/emeliedump/2001/1118/sys/src/9/port/portdat.h 721a }; struct Cmdtab { int index; /* used by client to switch on result */ char *cmd; /* command name */ int narg; /* expected #args; 0 ==> variadic */ . 4a typedef struct Cmdtab Cmdtab; . ## diffname port/portdat.h 2001/1122 ## diff -e /n/emeliedump/2001/1118/sys/src/9/port/portdat.h /n/emeliedump/2001/1122/sys/src/9/port/portdat.h 47c typedef struct Walkqid Walkqid; . 44d 7d ## diffname port/portdat.h 2002/0109 ## diff -e /n/emeliedump/2001/1122/sys/src/9/port/portdat.h /n/emeliedump/2002/0109/sys/src/9/port/portdat.h 187a void (*shutdown)(void); . ## diffname port/portdat.h 2002/0114 ## diff -e /n/emeliedump/2002/0109/sys/src/9/port/portdat.h /n/emeliedump/2002/0114/sys/src/9/port/portdat.h 819a #pragma varargck argpos panic 1 . ## diffname port/portdat.h 2002/0203 ## diff -e /n/emeliedump/2002/0114/sys/src/9/port/portdat.h /n/emeliedump/2002/0203/sys/src/9/port/portdat.h 419d ## diffname port/portdat.h 2002/0217 ## diff -e /n/emeliedump/2002/0203/sys/src/9/port/portdat.h /n/emeliedump/2002/0217/sys/src/9/port/portdat.h 838,840d ## diffname port/portdat.h 2002/0315 ## diff -e /n/emeliedump/2002/0217/sys/src/9/port/portdat.h /n/emeliedump/2002/0315/sys/src/9/port/portdat.h 639a Task *task; /* if non-null, real-time proc, task contains scheduling params */ . 626c Lock *lockwait; /* waiting for lock to be released */ . 540a typedef uvlong Ticks; struct Schedq { Lock; Proc* head; Proc* tail; int n; }; . 41a typedef struct Task Task; . 39a typedef struct Schedq Schedq; . ## diffname port/portdat.h 2002/0328 ## diff -e /n/emeliedump/2002/0315/sys/src/9/port/portdat.h /n/emeliedump/2002/0328/sys/src/9/port/portdat.h 641a ulong nlocks; /* number of locks held by proc */ . 638c Lock *lockwait; . ## diffname port/portdat.h 2002/0329 ## diff -e /n/emeliedump/2002/0328/sys/src/9/port/portdat.h /n/emeliedump/2002/0329/sys/src/9/port/portdat.h 642a ulong delaysched; . ## diffname port/portdat.h 2002/0331 ## diff -e /n/emeliedump/2002/0329/sys/src/9/port/portdat.h /n/emeliedump/2002/0331/sys/src/9/port/portdat.h 638a Lock *lastlock; /* debugging */ . ## diffname port/portdat.h 2002/0404 ## diff -e /n/emeliedump/2002/0331/sys/src/9/port/portdat.h /n/emeliedump/2002/0404/sys/src/9/port/portdat.h 643c ulong nlocks; /* number of locks held by proc */ . ## diffname port/portdat.h 2002/0405 ## diff -e /n/emeliedump/2002/0404/sys/src/9/port/portdat.h /n/emeliedump/2002/0405/sys/src/9/port/portdat.h 433c RWlock; . ## diffname port/portdat.h 2002/0410 ## diff -e /n/emeliedump/2002/0405/sys/src/9/port/portdat.h /n/emeliedump/2002/0410/sys/src/9/port/portdat.h 827a }; /* * fasttick timer interrupts (Dummy for now) */ struct Timer { uvlong when; /* fastticks when f should be called */ void (*f)(Ureg*, Timer*); void *a; Timer *next; ulong period; . 44a typedef struct Timer Timer; . ## diffname port/portdat.h 2002/0412 ## diff -e /n/emeliedump/2002/0410/sys/src/9/port/portdat.h /n/emeliedump/2002/0412/sys/src/9/port/portdat.h 829a extern Uart* consuart; . 768a int (*getc)(Uart*); /* polling versions, for iprint, rdb */ void (*putc)(Uart*, int); . ## diffname port/portdat.h 2002/0502 ## diff -e /n/emeliedump/2002/0412/sys/src/9/port/portdat.h /n/emeliedump/2002/0502/sys/src/9/port/portdat.h 625,628c char *syserrstr; /* last error from a system call, errbuf0 or 1 */ char *errstr; /* reason we're unwinding the error stack, errbuf1 or 0 */ char errbuf0[ERRMAX]; char errbuf1[ERRMAX]; . 607a int noswap; /* process is not swappable */ . ## diffname port/portdat.h 2002/0618 ## diff -e /n/emeliedump/2002/0502/sys/src/9/port/portdat.h /n/emeliedump/2002/0618/sys/src/9/port/portdat.h 205c int (*config)(int, char*, DevConf*); // returns nil on error . ## diffname port/portdat.h 2002/0626 ## diff -e /n/emeliedump/2002/0618/sys/src/9/port/portdat.h /n/emeliedump/2002/0626/sys/src/9/port/portdat.h 641a Lock *lastilock; /* debugging */ . ## diffname port/portdat.h 2002/0704 ## diff -e /n/emeliedump/2002/0626/sys/src/9/port/portdat.h /n/emeliedump/2002/0704/sys/src/9/port/portdat.h 847a struct Edfinterface { int (*isedf)(Proc*); void (*edfbury)(Proc*); int (*edfanyready)(void); void (*edfready)(Proc*); Proc* (*edfrunproc)(void); void (*edfblock)(Proc*); void (*edfinit)(void); void (*edfexpel)(Task *t); char * (*edfadmit)(Task *t); void (*edfdeadline)(Proc *p); }; extern Edfinterface *edf; . 8a typedef struct Edfinterface Edfinterface; . ## diffname port/portdat.h 2002/0711 ## diff -e /n/emeliedump/2002/0704/sys/src/9/port/portdat.h /n/emeliedump/2002/0711/sys/src/9/port/portdat.h 862a /* queue state bits, Qmsg, Qcoalesce, and Qkick can be set in qopen */ enum { /* Queue.state */ Qstarve = (1<<0), /* consumer starved */ Qmsg = (1<<1), /* message stream */ Qclosed = (1<<2), /* queue has been closed/hungup */ Qflow = (1<<3), /* producer flow controlled */ Qcoalesce = (1<<4), /* coallesce packets on read */ Qkick = (1<<5), /* always call the kick routine after qwrite */ }; . ## diffname port/portdat.h 2002/0731 ## diff -e /n/emeliedump/2002/0711/sys/src/9/port/portdat.h /n/emeliedump/2002/0731/sys/src/9/port/portdat.h 252a char fromname[32]; /* temporary for debugging */ . ## diffname port/portdat.h 2002/0801 ## diff -e /n/emeliedump/2002/0731/sys/src/9/port/portdat.h /n/emeliedump/2002/0801/sys/src/9/port/portdat.h 559c char *kstack; /* known to l.s */ . ## diffname port/portdat.h 2002/0821 ## diff -e /n/emeliedump/2002/0801/sys/src/9/port/portdat.h /n/emeliedump/2002/0821/sys/src/9/port/portdat.h 138c uchar* base; /* start of the buffer */ . ## diffname port/portdat.h 2002/0822 ## diff -e /n/emeliedump/2002/0821/sys/src/9/port/portdat.h /n/emeliedump/2002/0822/sys/src/9/port/portdat.h 861a }; /* * performance timers, all units in perfticks */ struct Perf { ulong intrts; /* time of last interrupt */ ulong inintr; /* time since last clock tick in interrupt handlers */ ulong avg_inintr; /* avg time per clock tick in interrupt handlers */ ulong inidle; /* time since last clock tick in idle loop */ ulong avg_inidle; /* avg time per clock tick in idle loop */ ulong last; /* value of perfticks() at last clock tick */ ulong period; /* perfticks() per clock tick */ . 26a typedef struct Perf Perf; . ## diffname port/portdat.h 2002/0824 ## diff -e /n/emeliedump/2002/0822/sys/src/9/port/portdat.h /n/emeliedump/2002/0824/sys/src/9/port/portdat.h 592c int insyscall; . ## diffname port/portdat.h 2002/0911 ## diff -e /n/emeliedump/2002/0824/sys/src/9/port/portdat.h /n/emeliedump/2002/0911/sys/src/9/port/portdat.h 254d ## diffname port/portdat.h 2002/0922 ## diff -e /n/emeliedump/2002/0911/sys/src/9/port/portdat.h /n/emeliedump/2002/0922/sys/src/9/port/portdat.h 859,861c void (*edfexpel)(Task*); char * (*edfadmit)(Task*); void (*edfdeadline)(Proc*); void (*edfacquire)(Task*, CSN*); void (*edfrelease)(Task*); . 2a typedef struct CSN CSN; . ## diffname port/portdat.h 2002/0924 ## diff -e /n/emeliedump/2002/0922/sys/src/9/port/portdat.h /n/emeliedump/2002/0924/sys/src/9/port/portdat.h 863,864c void (*resacquire)(Task*, CSN*); void (*resrelease)(Task*); . ## diffname port/portdat.h 2002/1024 ## diff -e /n/emeliedump/2002/0924/sys/src/9/port/portdat.h /n/emeliedump/2002/1024/sys/src/9/port/portdat.h 841c * fasttick timer interrupts . ## diffname port/portdat.h 2002/1105 ## diff -e /n/emeliedump/2002/1024/sys/src/9/port/portdat.h /n/emeliedump/2002/1105/sys/src/9/port/portdat.h 664a int setargs; . ## diffname port/portdat.h 2003/0121 ## diff -e /n/emeliedump/2002/1105/sys/src/9/port/portdat.h /n/emeliedump/2003/0121/sys/src/9/port/portdat.h 879c ulong last; /* value of perfticks() at last clock tick */ . 851d 847a ulong period; . ## diffname port/portdat.h 2003/0213 ## diff -e /n/emeliedump/2003/0121/sys/src/9/port/portdat.h /n/emeliedump/2003/0213/sys/src/9/port/portdat.h 142c ushort flag; ushort checksum; /* IP checksum of complete packet (minus media header) */ . 140c uchar* base; /* start of the buffer */ . 130a Bipck = (1<<2), /* ip checksum */ Budpck = (1<<3), /* udp checksum */ Btcpck = (1<<4), /* tcp checksum */ Bpktck = (1<<5), /* packet checksum */ . 126a /* flag values */ . ## diffname port/portdat.h 2003/0228 ## diff -e /n/emeliedump/2003/0213/sys/src/9/port/portdat.h /n/emeliedump/2003/0228/sys/src/9/port/portdat.h 663d 660,661c int quanta; /* quanta left */ ulong readytime; /* time process came ready */ . ## diffname port/portdat.h 2003/0314 ## diff -e /n/emeliedump/2003/0228/sys/src/9/port/portdat.h /n/emeliedump/2003/0314/sys/src/9/port/portdat.h 660a uchar yield; /* non-zero if the process just did a sleep(0) */ . ## diffname port/portdat.h 2003/0325 ## diff -e /n/emeliedump/2003/0314/sys/src/9/port/portdat.h /n/emeliedump/2003/0325/sys/src/9/port/portdat.h 444c Evalue **ent; int nent; int ment; . ## diffname port/portdat.h 2003/0326 ## diff -e /n/emeliedump/2003/0325/sys/src/9/port/portdat.h /n/emeliedump/2003/0326/sys/src/9/port/portdat.h 465a int exceed; /* debugging */ . ## diffname port/portdat.h 2003/0407 ## diff -e /n/emeliedump/2003/0326/sys/src/9/port/portdat.h /n/emeliedump/2003/0407/sys/src/9/port/portdat.h 332d ## diffname port/portdat.h 2003/0412 ## diff -e /n/emeliedump/2003/0407/sys/src/9/port/portdat.h /n/emeliedump/2003/0412/sys/src/9/port/portdat.h 872,874c void (*edfdeadline)(Proc*); void (*resacquire)(Task*, CSN*); void (*resrelease)(Task*); . 868,870c void (*edfblock)(Proc*); void (*edfinit)(void); void (*edfexpel)(Task*); . 863,866c int (*isedf)(Proc*); void (*edfbury)(Proc*); int (*edfanyready)(void); void (*edfready)(Proc*); . 669c Task *task; /* if non-null, real-time proc, task contains scheduling params */ . 651,653c Lock *lockwait; Lock *lastlock; /* debugging */ Lock *lastilock; /* debugging */ . 444,445c int nent; int ment; . 221c vlong length; . ## diffname port/portdat.h 2003/0509 ## diff -e /n/emeliedump/2003/0412/sys/src/9/port/portdat.h /n/emeliedump/2003/0509/sys/src/9/port/portdat.h 170a uchar* dirrock; /* directory entry rock for translations */ int nrock; int mrock; QLock rockqlock; int ismtpt; . 158c vlong offset; /* in fd */ vlong devoffset; /* in underlying device; see read */ .