Re: stat(1) -x option shows no setuid/setgid - patch
On Tue, Oct 05, 2010 at 14:46:42 -0700, Philip Guenther wrote: > On Sat, 2 Oct 2010, LEVAI Daniel wrote: [...] > > Mode: (104555/-r-sr-xr-x) > >^^^ > > Hmm, that doesn't match the Linux/GNU stat behavior, which doesn't show > the file-type bits, bits which no sane program looks at except via the > macros in . Might I suggest instead this diff? [...] > $ obj/stat -x /usr/bin/passwd ./foo /dev/null > File: "/usr/bin/passwd" > Size: 26280FileType: Regular File > Mode: (4555/-r-sr-xr-x) Uid: (0/root) Gid: (7/ bin) [...] That makes more sense, indeed! Daniel -- LIVAI Daniel PGP key ID = 0x83B63A8F Key fingerprint = DBEC C66B A47A DFA2 792D 650C C69B BE4C 83B6 3A8F
Re: A tiny feature for mg(1): beginning-of-line
Would this be OK with anyone? (With a tweak to start the new sentece on a new line). I've sent this to three usual mg developers, but none bothered to answer. On Sun, Sep 12, 2010 at 08:28:43PM -0700, Chris Palmer wrote: > I have found this feature useful in other text editors. Maybe you will too? > > > --- mg.1.orig Sun Sep 12 20:23:21 2010 > +++ mg.1 Sun Sep 12 20:24:36 2010 > @@ -320,7 +320,8 @@ Move cursor backwards by the specified number of words > .It beginning-of-buffer > Move cursor to the top of the buffer. > .It beginning-of-line > -Move cursor to the beginning of the line. > +Move cursor to the beginning of the line. Calling this function again moves > +the cursor to the first non-whitespace character of the line. > .It blink-and-insert > Self-insert a character, then search backwards and blink its > matching delimeter. > > > --- basic.c.orig Sun Sep 12 20:01:41 2010 > +++ basic.c Sun Sep 12 20:18:56 2010 > @@ -22,7 +22,21 @@ > int > gotobol(int f, int n) > { > - curwp->w_doto = 0; > + if (0 != curwp->w_doto) > + curwp->w_doto = 0; > + else { > + char * ln = curwp->w_dotp->l_text; > + int i = 0; > + > + if (ln) > + while (*ln && isspace(*ln)) { > + i++; > + ln++; > + } > + > + curwp->w_doto = i; > + } > + > return (TRUE); > } > > > -- > http://noncombatant.org/ > -- Cheers, Jasper Stay Hungry. Stay Foolish.
Re: A tiny feature for mg(1): beginning-of-line
Jasper Lievisse Adriaanse wrote: > Would this be OK with anyone? > > -Move cursor to the beginning of the line. > > +Move cursor to the beginning of the line. Calling this function again moves > > +the cursor to the first non-whitespace character of the line. That's not the way emacs behaves and mg is supposed to be finger-compatible with emacs. -- Christian "naddy" Weisgerber na...@mips.inka.de
Re: A tiny feature for mg(1): beginning-of-line
On Wed, Oct 06, 2010 at 11:37:39AM +, Christian Weisgerber wrote: > Jasper Lievisse Adriaanse wrote: > > > Would this be OK with anyone? > > > > -Move cursor to the beginning of the line. > > > +Move cursor to the beginning of the line. Calling this function again > > > moves > > > +the cursor to the first non-whitespace character of the line. > > That's not the way emacs behaves and mg is supposed to be > finger-compatible with emacs. > > -- > Christian "naddy" Weisgerber na...@mips.inka.de Actually, Ingo forwarded me some mails from Kjell about this and that it subtly breaks c-mode.. So it can't go in as is. -- Cheers, Jasper Stay Hungry. Stay Foolish.
Re: OpenCVS - new RCS parser
On 1 October 2010 at 14:20, Tobias Stoeckmann wrote: > [...] > I have successfully parsed the whole OpenBSD repository, comparing the > resulting data structures with current OpenCVS; it works fine for us. I've successfully parsed a cvs repo of about 196000 files and obtained the same (good) result with old opencvs, patched opencvs and gnu cvs > Please don't hesitate to give me feedback, as a user or as a developer. here it is :-) Thanks for your great work on opencvs. If you need a help I would like to collaborate in development. Let me know :-) bye
Todo Sony - Filmadoras
Sony CM5 USD 249 JVC MG-750 USD 409 Sony SR68 USD 285 Sony XR150 USD 762,14 Sony XR350 USD 989 Precios finales impuestos incluĂdos, facturados A o B
Re: OpenCVS - new RCS parser
On 1 October 2010 at 14:20, Tobias Stoeckmann wrote: > [...] > I have successfully parsed the whole OpenBSD repository, comparing the > resulting data structures with current OpenCVS; it works fine for us. I've successfully parsed a cvs repo of about 196000 files and obtained the same (good) result with old opencvs, patched opencvs and gnu cvs > Please don't hesitate to give me feedback, as a user or as a developer. here it is :-) Thanks for your great work on opencvs. If you need a help I would like to collaborate in development. Let me know :-) bye
Slow I/O usb sticks
Hi guys, I have a slow I/O in usb sticks with big files, I use -current with the last weekend cvs code. If I cp a big file in the usb stick take several minutes (~10 minutes of 175M in a msdos stick, 2 minutes in a ffs stick), the usb stick have msdos fs, this not happend with a ffs usb stick. I have the same issue in my dell vostro 1510. Regards OpenBSD 4.8-current (GENERIC.MP) #12: Sat Oct 2 15:49:43 ART 2010 r...@r0nin.sepp0.com.ar:/usr/src/sys/arch/i386/compile/GENERIC.MP cpu0: Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz ("GenuineIntel" 686-class) 2 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM real mem = 1046761472 (998MB) avail mem = 1019613184 (972MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 04/18/08, BIOS32 rev. 0 @ 0xfdc80, SMBIOS rev. 2.4 @ 0xe0010 (63 entries) bios0: vendor LENOVO version "7NETB2WW (2.12 )" date 04/18/2008 bios0: LENOVO 767474Y acpi0 at bios0: rev 2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SSDT ECDT TCPA APIC MCFG HPET SLIC BOOT ASF! SSDT SSDT SSDT SSDT acpi0: wakeup devices LID_(S3) SLPB(S3) DURT(S3) IGBE(S4) EXP0(S4) EXP1(S4) EXP2(S4) EXP3(S4) EXP4(S4) PCI1(S4) USB0(S3) USB1(S3) USB2(S3) USB3(S3) USB4(S3) EHC0(S3) EHC1(S3) HDEF(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpiec0 at acpi0 acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: apic clock running at 199MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz ("GenuineIntel" 686-class) 2 GHz cpu1: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM ioapic0 at mainbus0: apid 1 pa 0xfec0, version 20, 24 pins ioapic0: misconfigured as apic 2, remapped to apid 1 acpihpet0 at acpi0: 14318179 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (AGP_) acpiprt2 at acpi0: bus 2 (EXP0) acpiprt3 at acpi0: bus 3 (EXP1) acpiprt4 at acpi0: bus -1 (EXP2) acpiprt5 at acpi0: bus -1 (EXP3) acpiprt6 at acpi0: bus -1 (EXP4) acpiprt7 at acpi0: bus 5 (PCI1) acpicpu0 at acpi0: C3, C2, C1, PSS acpicpu1 at acpi0: C3, C2, C1, PSS acpipwrres0 at acpi0: PUBS acpitz0 at acpi0: critical temperature 127 degC acpitz1 at acpi0: critical temperature 99 degC acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: SLPB acpibat0 at acpi0: BAT0 model "42T4568" serial 6706 type LION oem "SONY" acpibat1 at acpi0: BAT1 not present acpibat2 at acpi0: BAT2 not present acpiac0 at acpi0: AC unit online acpithinkpad0 at acpi0 acpidock0 at acpi0: GDCK not docked (0) bios0: ROM list: 0xc/0x1! 0xe/0x1! cpu0: Enhanced SpeedStep 1996 MHz: speeds: 2001, 2000, 1600, 1200, 800 MHz pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 "Intel GM965 Host" rev 0x0c vga1 at pci0 dev 2 function 0 "Intel GM965 Video" rev 0x0c wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) intagp0 at vga1 agp0 at intagp0: aperture at 0xe000, size 0x1000 inteldrm0 at vga1: apic 1 int 16 (irq 10) drm0 at inteldrm0 "Intel GM965 Video" rev 0x0c at pci0 dev 2 function 1 not configured em0 at pci0 dev 25 function 0 "Intel ICH8 IGP M AMT" rev 0x03: apic 1 int 20 (irq 11), address 00:1d:72:92:6c:8f uhci0 at pci0 dev 26 function 0 "Intel 82801H USB" rev 0x03: apic 1 int 20 (irq 11) uhci1 at pci0 dev 26 function 1 "Intel 82801H USB" rev 0x03: apic 1 int 21 (irq 11) ehci0 at pci0 dev 26 function 7 "Intel 82801H USB" rev 0x03: apic 1 int 22 (irq 11) usb0 at ehci0: USB revision 2.0 uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 azalia0 at pci0 dev 27 function 0 "Intel 82801H HD Audio" rev 0x03: apic 1 int 17 (irq 11) azalia0: codecs: Analog Devices AD1984, Conexant/0x2bfa, using Analog Devices AD1984 audio0 at azalia0 ppb0 at pci0 dev 28 function 0 "Intel 82801H PCIE" rev 0x03: apic 1 int 20 (irq 11) pci1 at ppb0 bus 2 ppb1 at pci0 dev 28 function 1 "Intel 82801H PCIE" rev 0x03: apic 1 int 21 (irq 11) pci2 at ppb1 bus 3 iwn0 at pci2 dev 0 function 0 "Intel Wireless WiFi Link 4965" rev 0x61: apic 1 int 17 (irq 11), MIMO 2T3R, MoW1, address 00:1f:3b:a0:f8:55 uhci2 at pci0 dev 29 function 0 "Intel 82801H USB" rev 0x03: apic 1 int 16 (irq 10) uhci3 at pci0 dev 29 function 1 "Intel 82801H USB" rev 0x03: apic 1 int 17 (irq 11) ehci1 at pci0 dev 29 function 7 "Intel 82801H USB" rev 0x03: apic 1 int 19 (irq 11) usb1 at ehci1: USB revision 2.0 uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1 ppb2 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xf3 pci3 at ppb2 bus 5 cbb0 at pci3 dev 0 function 0 "Ricoh 5C476 CardBus" rev 0xba: apic 1 int 16 (irq 10) "Ricoh 5C832 Firewire" rev 0x04 at pci3 dev 0 function 1 not configured sdhc0 at pci3 dev 0 function 2 "Ricoh 5C822 SD/MMC" r
Re: Slow I/O usb sticks
On Wed, Oct 06, 2010 at 04:06:47PM -0300, Gonzalo L. R. wrote: > Hi guys, > > I have a slow I/O in usb sticks with big files, I use -current with the > last weekend cvs code. > > If I cp a big file in the usb stick take several minutes (~10 minutes of > 175M in a msdos stick, 2 minutes in a ffs stick), the usb stick have > msdos fs, this not happend with a ffs usb stick. > > I have the same issue in my dell vostro 1510. > Our MSDOS-FS code blows chunks, thats why. Since this isn't a bug report, not much else I can say. You can play around with profiling and read the code, it's in sys/msdosfs and it sure can use some lovin. Have fun! > > Regards > OpenBSD 4.8-current (GENERIC.MP) #12: Sat Oct 2 15:49:43 ART 2010 > r...@r0nin.sepp0.com.ar:/usr/src/sys/arch/i386/compile/GENERIC.MP > cpu0: Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz ("GenuineIntel" 686-class) 2 > GHz > cpu0: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM > real mem = 1046761472 (998MB) > avail mem = 1019613184 (972MB) > mainbus0 at root > bios0 at mainbus0: AT/286+ BIOS, date 04/18/08, BIOS32 rev. 0 @ 0xfdc80, > SMBIOS rev. 2.4 @ 0xe0010 (63 entries) > bios0: vendor LENOVO version "7NETB2WW (2.12 )" date 04/18/2008 > bios0: LENOVO 767474Y > acpi0 at bios0: rev 2 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP SSDT ECDT TCPA APIC MCFG HPET SLIC BOOT ASF! SSDT > SSDT SSDT SSDT > acpi0: wakeup devices LID_(S3) SLPB(S3) DURT(S3) IGBE(S4) EXP0(S4) EXP1(S4) > EXP2(S4) EXP3(S4) EXP4(S4) PCI1(S4) USB0(S3) USB1(S3) USB2(S3) USB3(S3) > USB4(S3) EHC0(S3) EHC1(S3) HDEF(S4) > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpiec0 at acpi0 > acpimadt0 at acpi0 addr 0xfee0: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: apic clock running at 199MHz > cpu1 at mainbus0: apid 1 (application processor) > cpu1: Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz ("GenuineIntel" 686-class) 2 > GHz > cpu1: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM > ioapic0 at mainbus0: apid 1 pa 0xfec0, version 20, 24 pins > ioapic0: misconfigured as apic 2, remapped to apid 1 > acpihpet0 at acpi0: 14318179 Hz > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (AGP_) > acpiprt2 at acpi0: bus 2 (EXP0) > acpiprt3 at acpi0: bus 3 (EXP1) > acpiprt4 at acpi0: bus -1 (EXP2) > acpiprt5 at acpi0: bus -1 (EXP3) > acpiprt6 at acpi0: bus -1 (EXP4) > acpiprt7 at acpi0: bus 5 (PCI1) > acpicpu0 at acpi0: C3, C2, C1, PSS > acpicpu1 at acpi0: C3, C2, C1, PSS > acpipwrres0 at acpi0: PUBS > acpitz0 at acpi0: critical temperature 127 degC > acpitz1 at acpi0: critical temperature 99 degC > acpibtn0 at acpi0: LID_ > acpibtn1 at acpi0: SLPB > acpibat0 at acpi0: BAT0 model "42T4568" serial 6706 type LION oem "SONY" > acpibat1 at acpi0: BAT1 not present > acpibat2 at acpi0: BAT2 not present > acpiac0 at acpi0: AC unit online > acpithinkpad0 at acpi0 > acpidock0 at acpi0: GDCK not docked (0) > bios0: ROM list: 0xc/0x1! 0xe/0x1! > cpu0: Enhanced SpeedStep 1996 MHz: speeds: 2001, 2000, 1600, 1200, 800 MHz > pci0 at mainbus0 bus 0: configuration mode 1 (bios) > pchb0 at pci0 dev 0 function 0 "Intel GM965 Host" rev 0x0c > vga1 at pci0 dev 2 function 0 "Intel GM965 Video" rev 0x0c > wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) > wsdisplay0: screen 1-5 added (80x25, vt100 emulation) > intagp0 at vga1 > agp0 at intagp0: aperture at 0xe000, size 0x1000 > inteldrm0 at vga1: apic 1 int 16 (irq 10) > drm0 at inteldrm0 > "Intel GM965 Video" rev 0x0c at pci0 dev 2 function 1 not configured > em0 at pci0 dev 25 function 0 "Intel ICH8 IGP M AMT" rev 0x03: apic 1 int 20 > (irq 11), address 00:1d:72:92:6c:8f > uhci0 at pci0 dev 26 function 0 "Intel 82801H USB" rev 0x03: apic 1 int 20 > (irq 11) > uhci1 at pci0 dev 26 function 1 "Intel 82801H USB" rev 0x03: apic 1 int 21 > (irq 11) > ehci0 at pci0 dev 26 function 7 "Intel 82801H USB" rev 0x03: apic 1 int 22 > (irq 11) > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 > azalia0 at pci0 dev 27 function 0 "Intel 82801H HD Audio" rev 0x03: apic 1 > int 17 (irq 11) > azalia0: codecs: Analog Devices AD1984, Conexant/0x2bfa, using Analog Devices > AD1984 > audio0 at azalia0 > ppb0 at pci0 dev 28 function 0 "Intel 82801H PCIE" rev 0x03: apic 1 int 20 > (irq 11) > pci1 at ppb0 bus 2 > ppb1 at pci0 dev 28 function 1 "Intel 82801H PCIE" rev 0x03: apic 1 int 21 > (irq 11) > pci2 at ppb1 bus 3 > iwn0 at pci2 dev 0 function 0 "Intel Wireless WiFi Link 4965" rev 0x61: apic > 1 int 17 (irq 11), MIMO 2T3R, MoW1, address 00:1f:3b:a0:f8:55 > uhci2 at pci0 dev 29 function 0 "Intel 82801H USB" rev 0x03: apic 1 int 16 > (irq 10) > uhci3 at pci0 dev 29 function 1 "Intel 82801H USB" rev 0x03: apic 1
Re: more assertwaitok() love
On Thu, Sep 30, 2010 at 12:29:54AM +, Thordur Bjornsson wrote: > Hi. > > Try to catch more places where we sleep and are not allowed. > > One thing of note, msleep() is missing in this diff, but there > it is needed to call to sleep_setup routines with the mutex > held, and after we release it we _will_ sleep so a sleep there > with another mutex held will be caught by the assertwaitok() > in mi_switch(). > > Also, define assertwaitok() out for !DIAGNOSTIC kernels. Noone wants to OK/comment on this besides matthew@ ? > > Comments/OKs? > Index: kern/kern_rwlock.c > === > RCS file: /home/cvs/src/sys/kern/kern_rwlock.c,v > retrieving revision 1.16 > diff -u -p -r1.16 kern_rwlock.c > --- kern/kern_rwlock.c24 Sep 2010 13:21:30 - 1.16 > +++ kern/kern_rwlock.c30 Sep 2010 00:12:12 - > @@ -87,6 +87,8 @@ rw_enter_read(struct rwlock *rwl) > { > unsigned long owner = rwl->rwl_owner; > > + assertwaitok(); > + > if (__predict_false((owner & RWLOCK_WRLOCK) || > rw_cas(&rwl->rwl_owner, owner, owner + RWLOCK_READ_INCR))) > rw_enter(rwl, RW_READ); > @@ -97,6 +99,8 @@ rw_enter_write(struct rwlock *rwl) > { > struct proc *p = curproc; > > + assertwaitok(); > + > if (__predict_false(rw_cas(&rwl->rwl_owner, 0, > RW_PROC(p) | RWLOCK_WRLOCK))) > rw_enter(rwl, RW_WRITE); > @@ -190,6 +194,9 @@ rw_enter(struct rwlock *rwl, int flags) > struct sleep_state sls; > unsigned long inc, o; > int error; > + > + if (!(flags & RW_NOSLEEP)) > + assertwaitok(); > > op = &rw_ops[flags & RW_OPMASK]; > > Index: kern/kern_synch.c > === > RCS file: /home/cvs/src/sys/kern/kern_synch.c,v > retrieving revision 1.95 > diff -u -p -r1.95 kern_synch.c > --- kern/kern_synch.c 29 Jun 2010 00:28:14 - 1.95 > +++ kern/kern_synch.c 29 Sep 2010 21:55:58 - > @@ -121,6 +121,8 @@ tsleep(const volatile void *ident, int p > return (0); > } > > + assertwaitok(); > + > sleep_setup(&sls, ident, priority, wmesg); > sleep_setup_timeout(&sls, timo); > sleep_setup_signal(&sls, priority); > Index: kern/subr_pool.c > === > RCS file: /home/cvs/src/sys/kern/subr_pool.c,v > retrieving revision 1.98 > diff -u -p -r1.98 subr_pool.c > --- kern/subr_pool.c 26 Sep 2010 21:03:57 - 1.98 > +++ kern/subr_pool.c 30 Sep 2010 00:03:15 - > @@ -455,10 +455,8 @@ pool_get(struct pool *pp, int flags) > > KASSERT(flags & (PR_WAITOK | PR_NOWAIT)); > > -#ifdef DIAGNOSTIC > if ((flags & PR_WAITOK) != 0) > assertwaitok(); > -#endif /* DIAGNOSTIC */ > > mtx_enter(&pp->pr_mtx); > v = pool_do_get(pp, flags); > Index: kern/subr_xxx.c > === > RCS file: /home/cvs/src/sys/kern/subr_xxx.c,v > retrieving revision 1.12 > diff -u -p -r1.12 subr_xxx.c > --- kern/subr_xxx.c 28 Sep 2010 20:27:56 - 1.12 > +++ kern/subr_xxx.c 29 Sep 2010 21:55:03 - > @@ -156,13 +156,15 @@ blktochr(dev_t dev) > /* > * Check that we're in a context where it's okay to sleep. > */ > + > +#ifdef DIAGNOSTIC > void > assertwaitok(void) > { > splassert(IPL_NONE); > -#ifdef DIAGNOSTIC > + > if (curcpu()->ci_mutex_level != 0) > panic("assertwaitok: non-zero mutex count: %d", > curcpu()->ci_mutex_level); > -#endif > } > +#endif > Index: sys/systm.h > === > RCS file: /home/cvs/src/sys/sys/systm.h,v > retrieving revision 1.86 > diff -u -p -r1.86 systm.h > --- sys/systm.h 21 Sep 2010 01:09:10 - 1.86 > +++ sys/systm.h 30 Sep 2010 00:02:51 - > @@ -179,7 +179,11 @@ void ttyprintf(struct tty *, const char > void splassert_fail(int, int, const char *); > extern int splassert_ctl; > > +#ifdef DIAGNOSTIC > void assertwaitok(void); > +#else > +#define assertwaitok() do { /* nothing */ } while (0) > +#endif > > void tablefull(const char *);