| plan 9 kernel history: overview | file list | diff list |
2000/1027/bitsy/dat.h (diff list | history)
| 2000/0831/sys/src/9/bitsy/dat.h:34,39 – 2000/0902/sys/src/9/bitsy/dat.h:34,48 (short | long) | ||
| 2000/0831 | /* * no floating point, hence nothing to save */ | |
| 2000/0902 | /* * FPsave.status */ enum { FPinit, FPinactive, }; | |
| 2000/0831 | struct FPsave { int dummy; | |
| 2000/0902/sys/src/9/bitsy/dat.h:52,58 – 2000/0905/sys/src/9/bitsy/dat.h:52,57 (short | long) | ||
| 2000/0831 | { ulong nmach; /* processors */ ulong nproc; /* processes */ | |
| 2000/0902/sys/src/9/bitsy/dat.h:63,69 – 2000/0905/sys/src/9/bitsy/dat.h:62,69 | ||
| 2000/0831 | ulong base0; /* base of bank 0 */ ulong base1; /* base of bank 1 */ ulong copymode; /* 0 is copy on write, 1 is copy on reference */ | |
| 2000/0905 | int monitor; ulong ialloc; /* bytes available for interrupt time allocation */ | |
| 2000/0831 | ulong pipeqsize; /* size in bytes of pipe queues */ }; | |
| 2000/0905/sys/src/9/bitsy/dat.h:178,180 – 2000/0907/sys/src/9/bitsy/dat.h:178,185 (short | long) | ||
| 2000/0831 | extern Mach *m; #define up (((Mach*)MACHADDR)->externup) | |
| 2000/0907 | enum { OneMeg= 1024*1024, }; | |
| 2000/0907/sys/src/9/bitsy/dat.h:167,176 – 2000/0929/sys/src/9/bitsy/dat.h:167,176 (short | long) | ||
| 2000/0831 | }active; /* | |
| 2000/0929 | * Each processor sees its own Mach structure at address MACHADDR. * However, the Mach structures must also be available via the per-processor * MMU information array machp, mainly for disambiguation and access to * the clock which is only maintained by the bootstrap processor (0). | |
| 2000/0831 | */ Mach* machp[MAXMACH]; | |
| 2000/0907/sys/src/9/bitsy/dat.h:183,185 – 2000/0929/sys/src/9/bitsy/dat.h:183,186 | ||
| 2000/0907 | { OneMeg= 1024*1024, }; | |
| 2000/0929 | ||
| 2000/0929/sys/src/9/bitsy/dat.h:10,15 – 2000/1007/sys/src/9/bitsy/dat.h:10,17 (short | long) | ||
| 2000/0831 | typedef struct Proc Proc; typedef struct Ureg Ureg; typedef struct Vctl Vctl; | |
| 2000/1007 | typedef struct PhysUart PhysUart; typedef struct Uart Uart; | |
| 2000/0831 | /* * parameters for sysproc.c | |
| 2000/0929/sys/src/9/bitsy/dat.h:133,138 – 2000/1007/sys/src/9/bitsy/dat.h:135,146 | ||
| 2000/0831 | vlong mtrrdef; vlong mtrrfix[11]; vlong mtrrvar[32]; /* 256 max. */ | |
| 2000/1007 | /* save areas for exceptions */ ulong sfiq[5]; ulong sirq[5]; ulong sund[5]; ulong sabt[5]; | |
| 2000/0831 | int stack[1]; }; | |
| 2000/1007/sys/src/9/bitsy/dat.h:72,81 – 2000/1011/sys/src/9/bitsy/dat.h:72,87 (short | long) | ||
| 2000/0831 | /* * MMU stuff in proc */ | |
| 2000/1011 | enum { NCOLOR= 1, /* 1 level cache, don't worry about VCE's */ Nmeg= 32, /* maximum size of user space */ }; | |
| 2000/0831 | struct PMMU { | |
| 2000/1011 | ulong pid; /* current pid (0 if none) */ Page *l1[Nmeg]; /* this's process' level 1 entries */ | |
| 2000/0831 | }; /* | |
| 2000/1007/sys/src/9/bitsy/dat.h:159,169 – 2000/1011/sys/src/9/bitsy/dat.h:165,175 | ||
| 2000/0831 | }; /* | |
| 2000/1011 | * Fake kmap since we direct map dram | |
| 2000/0831 | */ typedef void KMap; #define VA(k) ((ulong)(k)) | |
| 2000/1011 | #define kmap(p) (KMap*)((p)->pa) | |
| 2000/0831 | #define kunmap(k) struct | |
| 2000/1011/sys/src/9/bitsy/dat.h:80,86 – 2000/1012/sys/src/9/bitsy/dat.h:80,86 (short | long) | ||
| 2000/1011 | ||
| 2000/0831 | struct PMMU { | |
| 2000/1011 |
| |
| 2000/1012 | ulong tlbpid; /* current pid (0 if none) */ | |
| 2000/1011 | Page *l1[Nmeg]; /* this's process' level 1 entries */ | |
| 2000/0831 | }; | |
| 2000/1011/sys/src/9/bitsy/dat.h:114,119 – 2000/1012/sys/src/9/bitsy/dat.h:114,120 | ||
| 2000/0831 | ulong fairness; /* for runproc */ | |
| 2000/1012 | /* stats */ | |
| 2000/0831 | int tlbfault; int tlbpurge; int pfault; | |
| 2000/1011/sys/src/9/bitsy/dat.h:123,147 – 2000/1012/sys/src/9/bitsy/dat.h:124,139 | ||
| 2000/0831 | int intr; vlong fastclock; /* last sampled value */ vlong intrts; /* time stamp of last interrupt */ | |
| 2000/1012 | int flushmmu; /* make current proc flush it's mmu state */ Proc *pid2proc[31]; /* what proc holds what pid */ int lastpid; /* highest assigned pid slot */ | |
| 2000/0831 |
| |
| 2000/1012 | int cpumhz; /* speed of cpu */ int cpuhz; /* ... * | |
| 2000/0831 |
| |
| 2000/1007 |
| |
| 2000/1011/sys/src/9/bitsy/dat.h:197,200 – 2000/1012/sys/src/9/bitsy/dat.h:189,191 | ||
| 2000/0907 | { OneMeg= 1024*1024, }; | |
| 2000/0929 | ||
| 2000/1012/sys/src/9/bitsy/dat.h:80,87 – 2000/1013/sys/src/9/bitsy/dat.h:80,87 (short | long) | ||
| 2000/1011 | ||
| 2000/0831 | struct PMMU { | |
| 2000/1012 |
| |
| 2000/1011 |
| |
| 2000/1013 | Page *l1page[Nmeg]; /* this's process' level 1 entries */ ulong l1table[Nmeg]; /* ... */ | |
| 2000/0831 | }; /* | |
| 2000/1013/sys/src/9/bitsy/dat.h:99,112 – 2000/1014/sys/src/9/bitsy/dat.h:99,107 (short | long) | ||
| 2000/0831 | int machno; /* physical id of processor */ ulong splpc; /* pc of last caller to splhi */ | |
| 2000/1013/sys/src/9/bitsy/dat.h:172,186 – 2000/1014/sys/src/9/bitsy/dat.h:167,173 | ||
| 2000/0831 | int ispanic; /* shutdown in response to a panic */ }active; | |
| 2000/0929 |
| |
| 2000/0831 |
| |
| 2000/1014 | #define MACHP(n) ((Mach*)MACHADDR) | |
| 2000/0831 | extern Mach *m; #define up (((Mach*)MACHADDR)->externup) | |
| 2000/1014/sys/src/9/bitsy/dat.h:16,22 – 2000/1015/sys/src/9/bitsy/dat.h:16,22 (short | long) | ||
| 2000/0831 | /* * parameters for sysproc.c */ | |
| 2000/1015 | #define AOUT_MAGIC (E_MAGIC) | |
| 2000/0831 | struct Lock { | |
| 2000/1014/sys/src/9/bitsy/dat.h:82,87 – 2000/1015/sys/src/9/bitsy/dat.h:82,88 | ||
| 2000/0831 | { | |
| 2000/1013 | Page *l1page[Nmeg]; /* this's process' level 1 entries */ ulong l1table[Nmeg]; /* ... */ | |
| 2000/1015 | Page *mmufree; /* free mmu pages */ | |
| 2000/0831 | }; /* | |
| 2000/1014/sys/src/9/bitsy/dat.h:167,173 – 2000/1015/sys/src/9/bitsy/dat.h:168,174 | ||
| 2000/0831 | int ispanic; /* shutdown in response to a panic */ }active; | |
| 2000/1014 |
| |
| 2000/1015 | #define MACHP(n) ((Mach *)(MACHADDR+(n)*BY2PG)) | |
| 2000/0831 | extern Mach *m; #define up (((Mach*)MACHADDR)->externup) | |
| 2000/1015/sys/src/9/bitsy/dat.h:100,107 – 2000/1016/sys/src/9/bitsy/dat.h:100,107 (short | long) | ||
| 2000/0831 | int machno; /* physical id of processor */ ulong splpc; /* pc of last caller to splhi */ | |
| 2000/1016 | Proc *proc; /* current process */ ulong mmupid; /* process id currently in mmu & cache */ | |
| 2000/0831 | ulong ticks; /* of the clock since boot time */ Label sched; /* scheduler wakeup */ | |
| 2000/1015/sys/src/9/bitsy/dat.h:171,177 – 2000/1016/sys/src/9/bitsy/dat.h:171,177 | ||
| 2000/1015 | #define MACHP(n) ((Mach *)(MACHADDR+(n)*BY2PG)) | |
| 2000/0831 | extern Mach *m; | |
| 2000/1016 | extern Proc *up; | |
| 2000/0907 | enum { | |
| 2000/1016/sys/src/9/bitsy/dat.h:1,4 – 2000/1026/sys/src/9/bitsy/dat.h:1,6 (short | long) | ||
| 2000/0831 | typedef struct Conf Conf; | |
| 2000/1026 | typedef struct FPU FPU; typedef struct FPenv FPenv; | |
| 2000/0831 | typedef struct FPsave FPsave; typedef struct Label Label; typedef struct Lock Lock; | |
| 2000/1016/sys/src/9/bitsy/dat.h:34,53 – 2000/1026/sys/src/9/bitsy/dat.h:36,54 | ||
| 2000/0831 | }; /* | |
| 2000/0902 |
| |
| 2000/1026 | FPINIT, FPACTIVE, FPINACTIVE, | |
| 2000/0902 | }; | |
| 2000/0831 | struct FPsave { | |
| 2000/1026 | ulong status; ulong control; ulong regs[8][3]; /* emulated fp */ | |
| 2000/0831 | }; struct Conf | |
| 2000/1026/sys/src/9/bitsy/dat.h:40,48 – 2000/1027/sys/src/9/bitsy/dat.h:40,48 (short | long) | ||
| 2000/0902 | */ enum { | |
| 2000/1026 |
| |
| 2000/1027 | FPinit, FPactive, FPinactive, | |
| 2000/0902 | }; | |
| 2000/0831 | struct FPsave { | |
| 2000/1027/sys/src/9/bitsy/dat.h:108,113 – 2000/1106/sys/src/9/bitsy/dat.h:108,114 (short | long) | ||
| 2000/0831 | Label sched; /* scheduler wakeup */ Lock alarmlock; /* access to alarm list */ void* alarm; /* alarms bound to this clock */ | |
| 2000/1106 | int inclockintr; | |
| 2000/0831 | ulong fairness; /* for runproc */ | |
| 2000/1106/sys/src/9/bitsy/dat.h:1,19 – 2000/1121/sys/src/9/bitsy/dat.h:1,25 (short | long) | ||
| 2000/0831 |
| |
| 2000/1026 |
| |
| 2000/0831 |
| |
| 2000/1007 |
| |
| 2000/1121 | typedef struct Cisdat Cisdat; typedef struct Conf Conf; typedef struct Cycintr Cycintr; typedef struct FPU FPU; typedef struct FPenv FPenv; typedef struct FPsave FPsave; typedef struct Label Label; typedef struct Lock Lock; typedef struct MMU MMU; typedef struct Mach Mach; typedef struct Notsave Notsave; typedef struct Page Page; typedef struct PCMmap PCMmap; typedef struct PCMslot PCMslot; typedef struct PCMconftab PCMconftab; typedef struct PhysUart PhysUart; typedef struct PMMU PMMU; typedef struct Proc Proc; typedef struct Uart Uart; typedef struct Ureg Ureg; typedef struct Vctl Vctl; typedef struct Uart Uart; | |
| 2000/0831 | /* * parameters for sysproc.c | |
| 2000/1106/sys/src/9/bitsy/dat.h:68,73 – 2000/1121/sys/src/9/bitsy/dat.h:74,81 | ||
| 2000/0905 | int monitor; ulong ialloc; /* bytes available for interrupt time allocation */ | |
| 2000/0831 | ulong pipeqsize; /* size in bytes of pipe queues */ | |
| 2000/1121 | ulong hz; /* processor cycle freq */ ulong mhz; | |
| 2000/0831 | }; /* | |
| 2000/1106/sys/src/9/bitsy/dat.h:141,148 – 2000/1121/sys/src/9/bitsy/dat.h:149,154 | ||
| 2000/0831 | int stack[1]; }; | |
| 2000/1106/sys/src/9/bitsy/dat.h:178,181 – 2000/1121/sys/src/9/bitsy/dat.h:184,353 | ||
| 2000/0907 | enum { OneMeg= 1024*1024, | |
| 2000/1121 | }; /* * routines to access UART hardware */ struct PhysUart { void (*enable)(Uart*, int); void (*disable)(Uart*); void (*kick)(Uart*); void (*intr)(Ureg*, void*); void (*dobreak)(Uart*, int); void (*baud)(Uart*, int); void (*bits)(Uart*, int); void (*stop)(Uart*, int); void (*parity)(Uart*, int); void (*modemctl)(Uart*, int); void (*rts)(Uart*, int); void (*dtr)(Uart*, int); long (*status)(Uart*, void*, long, long); }; enum { Stagesize= 1024 }; /* * software UART */ struct Uart { QLock; int type; int dev; int opens; void *regs; PhysUart *phys; int enabled; Uart *elist; /* next enabled interface */ char name[NAMELEN]; uchar sticky[4]; /* sticky write register values */ ulong freq; /* clock frequency */ uchar mask; /* bits/char */ int baud; /* baud rate */ int parity; /* parity errors */ int frame; /* framing errors */ int overrun; /* 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; int kinuse; /* device in use by kernel */ Rendez r; }; /* * PCMCIA structures known by both port/cis.c and the pcmcia driver */ /* * Map between ISA memory space and PCMCIA card memory space. */ struct PCMmap { ulong ca; /* card address */ ulong cea; /* card end address */ ulong isa; /* local virtual address */ int len; /* length of the ISA area */ int attr; /* attribute memory */ }; /* * a PCMCIA configuration entry */ struct PCMconftab { int index; ushort irqs; /* legal irqs */ uchar irqtype; uchar bit16; /* true for 16 bit access */ struct { ulong start; ulong len; } io[16]; int nio; uchar vpp1; uchar vpp2; uchar memwait; ulong maxwait; ulong readywait; ulong otherwait; }; /* * For walking a PCMCIA card's information structure */ struct Cisdat { uchar *cisbase; int cispos; int cisskip; int cislen; }; /* * PCMCIA card slot */ struct PCMslot { Ref; long memlen; /* memory length */ uchar slotno; /* slot number */ void *regs; /* i/o registers */ void *mem; /* memory */ void *attr; /* attribute memory */ /* status */ uchar special; /* in use for a special device */ uchar already; /* already inited */ uchar occupied; uchar battery; uchar wrprot; uchar powered; uchar configed; uchar enabled; uchar busy; /* cis info */ ulong msec; /* time of last slotinfo call */ char verstr[512]; /* version string */ uchar cpresent; /* config registers present */ ulong caddr; /* relative address of config registers */ int nctab; /* number of config table entries */ PCMconftab ctab[8]; PCMconftab *def; /* default conftab */ /* for walking through cis */ Cisdat; /* maps are fixed */ PCMmap memmap; PCMmap attrmap; | |
| 2000/0907 | }; | |
| 2000/1121/sys/src/9/bitsy/dat.h:316,322 – 2000/1122/sys/src/9/bitsy/dat.h:316,322 (short | long) | ||
| 2000/1121 | */ struct PCMslot { | |
| 2000/1122 | Ref ref; | |
| 2000/1121 | long memlen; /* memory length */ uchar slotno; /* slot number */ | |
| 2000/1122/sys/src/9/bitsy/dat.h:336,341 – 2000/1128/sys/src/9/bitsy/dat.h:336,342 (short | long) | ||
| 2000/1121 | uchar busy; /* cis info */ | |
| 2000/1128 | int cisread; /* set when the cis has been read */ | |
| 2000/1121 | ulong msec; /* time of last slotinfo call */ char verstr[512]; /* version string */ uchar cpresent; /* config registers present */ | |
| 2000/1128/sys/src/9/bitsy/dat.h:4,9 – 2000/1205/sys/src/9/bitsy/dat.h:4,10 (short | long) | ||
| 2000/1121 | typedef struct FPU FPU; typedef struct FPenv FPenv; typedef struct FPsave FPsave; | |
| 2000/1205 | typedef struct DevConf DevConf; | |
| 2000/1121 | typedef struct Label Label; typedef struct Lock Lock; typedef struct MMU MMU; | |
| 2000/1128/sys/src/9/bitsy/dat.h:21,26 – 2000/1205/sys/src/9/bitsy/dat.h:22,29 | ||
| 2000/1121 | typedef struct Vctl Vctl; typedef struct Uart Uart; | |
| 2000/0831 | ||
| 2000/1205 | typedef void IntrHandler(Ureg*, void*); | |
| 2000/0831 | /* * parameters for sysproc.c */ | |
| 2000/1128/sys/src/9/bitsy/dat.h:316,321 – 2000/1205/sys/src/9/bitsy/dat.h:319,326 | ||
| 2000/1121 | */ struct PCMslot { | |
| 2000/1205 | RWlock; | |
| 2000/1122 | Ref ref; | |
| 2000/1121 | long memlen; /* memory length */ | |
| 2000/1128/sys/src/9/bitsy/dat.h:325,343 – 2000/1205/sys/src/9/bitsy/dat.h:330,340 | ||
| 2000/1121 | void *attr; /* attribute memory */ /* status */ | |
| 2000/1205 | uchar occupied; /* card in the slot */ uchar configed; /* card configured */ | |
| 2000/1121 | /* cis info */ | |
| 2000/1128 | int cisread; /* set when the cis has been read */ | |
| 2000/1121 |
| |
| 2000/1128/sys/src/9/bitsy/dat.h:351,354 – 2000/1205/sys/src/9/bitsy/dat.h:348,364 | ||
| 2000/1121 | /* maps are fixed */ PCMmap memmap; PCMmap attrmap; | |
| 2000/1205 | }; /* * hardware info about a device */ struct DevConf { ulong mem; /* mapped memory address */ ulong port; /* mapped i/o regs */ int size; /* access size */ int itype; /* type of interrupt */ ulong interrupt; /* interrupt number */ char type[NAMELEN]; /* card type */ | |
| 2000/0907 | }; | |
| 2000/1205/sys/src/9/bitsy/dat.h:189,194 – 2001/0529/sys/src/9/bitsy/dat.h:189,195 (short | long) | ||
| 2000/0907 | OneMeg= 1024*1024, | |
| 2000/1121 | }; | |
| 2001/0529 | #ifdef NDEF | |
| 2000/1121 | /* * routines to access UART hardware */ | |
| 2000/1205/sys/src/9/bitsy/dat.h:265,270 – 2001/0529/sys/src/9/bitsy/dat.h:266,272 | ||
| 2000/1121 | Rendez r; }; | |
| 2001/0529 | #endif | |
| 2000/1121 | /* * PCMCIA structures known by both port/cis.c and the pcmcia driver | |
| 2000/1205/sys/src/9/bitsy/dat.h:360,364 – 2001/0529/sys/src/9/bitsy/dat.h:362,366 | ||
| 2000/1205 | int size; /* access size */ int itype; /* type of interrupt */ ulong interrupt; /* interrupt number */ | |
| 2001/0529 | char *type; /* card type, mallocated */ | |
| 2000/0907 | }; | |
| 2001/0529/sys/src/9/bitsy/dat.h:189,274 – 2001/0616/sys/src/9/bitsy/dat.h:189,195 (short | long) | ||
| 2000/0907 | OneMeg= 1024*1024, | |
| 2000/1121 | }; | |
| 2001/0529 |
| |
| 2000/1121 | /* | |
| 2001/0529 |
| |
| 2000/1121 |
| |
| 2001/0529/sys/src/9/bitsy/dat.h:357,366 – 2001/0616/sys/src/9/bitsy/dat.h:278,287 | ||
| 2000/1205 | */ struct DevConf { | |
| 2001/0616 | ulong mem; /* mapped memory address */ | |
| 2000/1205 | ulong port; /* mapped i/o regs */ | |
| 2001/0616 | int size; /* access size */ int itype; /* type of interrupt */ | |
| 2000/1205 | ulong interrupt; /* interrupt number */ | |
| 2001/0529 |
| |
| 2001/0616 | char *type; /* card type, mallocated */ | |
| 2000/0907 | }; | |
| 2001/0616/sys/src/9/bitsy/dat.h:227,243 – 2001/0619/sys/src/9/bitsy/dat.h:227,232 (short | long) | ||
| 2000/1121 | }; /* | |
| 2001/0616/sys/src/9/bitsy/dat.h:264,272 – 2001/0619/sys/src/9/bitsy/dat.h:253,258 | ||
| 2000/1121 | int nctab; /* number of config table entries */ PCMconftab ctab[8]; PCMconftab *def; /* default conftab */ | |
| 2001/0619/sys/src/9/bitsy/dat.h:24,29 – 2001/0731/sys/src/9/bitsy/dat.h:24,31 (short | long) | ||
| 2000/0831 | ||
| 2000/1205 | typedef void IntrHandler(Ureg*, void*); | |
| 2001/0731 | #define MAXSYSARG 5 /* for mount(fd, mpt, flag, arg, srv) */ | |
| 2000/0831 | /* * parameters for sysproc.c */ | |
| 2001/0731/sys/src/9/bitsy/dat.h:143,149 – 2002/0222/sys/src/9/bitsy/dat.h:143,149 (short | long) | ||
| 2000/1012 | int lastpid; /* highest assigned pid slot */ | |
| 2000/0831 | ||
| 2000/1012 | int cpumhz; /* speed of cpu */ | |
| 2002/0222 | vlong cpuhz; /* ... */ | |
| 2000/0831 | ||
| 2000/1007 | /* save areas for exceptions */ ulong sfiq[5]; | |
| 2002/0222/sys/src/9/bitsy/dat.h:1,6 – 2002/0405/sys/src/9/bitsy/dat.h:1,5 (short | long) | ||
| 2000/1121 | typedef struct Cisdat Cisdat; typedef struct Conf Conf; | |
| 2002/0222/sys/src/9/bitsy/dat.h:17,22 – 2002/0405/sys/src/9/bitsy/dat.h:16,22 | ||
| 2000/1121 | typedef struct PhysUart PhysUart; typedef struct PMMU PMMU; typedef struct Proc Proc; | |
| 2002/0405 | typedef struct Timer Timer; | |
| 2000/1121 | typedef struct Uart Uart; typedef struct Ureg Ureg; typedef struct Vctl Vctl; | |
| 2002/0222/sys/src/9/bitsy/dat.h:155,171 – 2002/0405/sys/src/9/bitsy/dat.h:155,160 | ||
| 2000/0831 | }; /* | |
| 2000/1011 | * Fake kmap since we direct map dram | |
| 2000/0831 | */ typedef void KMap; | |
| 2002/0222/sys/src/9/bitsy/dat.h:272,275 – 2002/0405/sys/src/9/bitsy/dat.h:261,276 | ||
| 2001/0616 | int itype; /* type of interrupt */ | |
| 2000/1205 | ulong interrupt; /* interrupt number */ | |
| 2001/0616 | char *type; /* card type, mallocated */ | |
| 2002/0405 | }; /* * Timer interrupts */ struct Timer { vlong when; /* fastticks when f should be called */ vlong period; /* non-zero for recurring periodic timers */ void (*f)(Ureg*, Timer*); /* function to call */ void *a; /* User parameter */ Timer *next; | |
| 2000/0907 | }; | |
| 2002/0405/sys/src/9/bitsy/dat.h:268,275 – 2002/0406/sys/src/9/bitsy/dat.h:268,275 (short | long) | ||
| 2002/0405 | */ struct Timer { | |
| 2002/0406 | uvlong when; /* fastticks when f should be called */ ulong period; /* non-zero for recurring periodic timers */ | |
| 2002/0405 | void (*f)(Ureg*, Timer*); /* function to call */ void *a; /* User parameter */ Timer *next; | |
| Too many diffs (26 > 25). Stopping. | ||