/BIOS32ci/,/BIOS32ci;/d /^#define up/c #define up (machp[0]->externup) . v/typedef/ s!Lock;!Lock lk;!g /^struct PMMU/+2;/^}/-1c struct vxproc *vxproc; // Plan 9 VX struct vxmem vxmem; struct vxmmap vxmm; // Plan 9 VX Uspace *us; uchar *uzero; . g/mmufree/d g/mmuused/d g/lastkmap/d g/kmaptable/d g/nkmap/d / Mach \*m/s/m/m_/ /^struct Label/+2;/^}/-1c uint64 bp; // Plan 9 VX uint64 bx; uint64 si; uint64 di; uint64 sp; uint64 pc; uint64 r12; uint64 r13; uint64 r14; uint64 r15; . g/BIOS32ci/d 1i #include #include "libvx32/vx32.h" . / ulong\* pdb/d / Tss\* tss/d / Proc\* externup/d / ulong ticks/d / Lock alarmlock/d / void\* alarm/d / int inclockintr/d / int loopconst/d g/^ vlong mtrr/d / int stack\[1\]/i int spl; // Plan 9 VX void *sigstack; . /^extern Mach \*m/c #ifdef TLS extern __thread Mach *m; // Plan 9 VX extern __thread Proc *up; // Plan 9 VX # define thismach m # define setmach(x) (m = (x)) #else extern Mach *getmach(void); extern void setmach(Mach*); # define up getmach()->externup # ifdef WANT_M # define m getmach() # endif #endif . /^struct Mach/+1a #ifndef TLS Proc* externup; #endif int new; . /^struct PMMU/i typedef struct Uspace Uspace; . /^#define up/d $a // Plan 9 VX extern int traceprocs; extern int tracesyscalls; extern int doabort; /* Pthreads-based sleep and wakeup. */ typedef struct Psleep Psleep; typedef struct Pwaiter Pwaiter; struct Psleep { int init; pthread_mutex_t mutex; Pwaiter *waiter; }; struct Uspace { Proc *p; // proc currently mapped uchar *uzero; ulong lo; ulong hi; }; . g/^ u32int e..;$/d