Split DIAGNOSTIC -> DIAGNOSTIC, INVARIANTS, and INVARIANT_SUPPORT as
discussed on -hackers. Introduce 'KASSERT(assertion, ("panic message", args))' for simple check + panic. Reviewed by: msmith
This commit is contained in:
parent
95ddc5daa5
commit
5526d2d920
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=42408
@ -2,7 +2,7 @@
|
||||
# LINT -- config file for checking all the sources, tries to pull in
|
||||
# as much of the source tree as it can.
|
||||
#
|
||||
# $Id: LINT,v 1.526 1999/01/01 08:09:57 peter Exp $
|
||||
# $Id: LINT,v 1.527 1999/01/08 16:04:18 eivind Exp $
|
||||
#
|
||||
# NB: You probably don't want to try running a kernel built from this
|
||||
# file. Instead, you should start from GENERIC, and add options from
|
||||
@ -291,12 +291,29 @@ options GDB_REMOTE_CHAT
|
||||
options KTRACE #kernel tracing
|
||||
|
||||
#
|
||||
# The DIAGNOSTIC option is used in a number of source files to enable
|
||||
# The INVARIANTS option is used in a number of source files to enable
|
||||
# extra sanity checking of internal structures. This support is not
|
||||
# enabled by default because of the extra time it would take to check
|
||||
# for these conditions, which can only occur as a result of
|
||||
# programming errors.
|
||||
#
|
||||
options INVARIANTS
|
||||
|
||||
#
|
||||
# The INVARIANT_SUPPORT option makes us compile in support for
|
||||
# verifying some of the internal structures. It is a prerequisite for
|
||||
# 'INVARIANTS', as enabling 'INVARIANTS' will make these functions be
|
||||
# called. The intent is that you can set 'INVARIANTS' for single
|
||||
# source files (by changing the source file or specifying it on the
|
||||
# command line) if you have 'INVARIANT_SUPPORT' enabled.
|
||||
#
|
||||
options INVARIANT_SUPPORT
|
||||
|
||||
#
|
||||
# The DIAGNOSTIC option is used to enable extra debugging information
|
||||
# from some parts of the kernel. As this makes everything more noisy,
|
||||
# it is disabled by default.
|
||||
#
|
||||
options DIAGNOSTIC
|
||||
|
||||
#
|
||||
@ -1867,6 +1884,7 @@ options SHMSEG=9
|
||||
options SI_DEBUG
|
||||
options SIMPLELOCK_DEBUG
|
||||
options SPX_HACK
|
||||
options VFS_BIO_DEBUG
|
||||
|
||||
# The 'dpt' driver provides support for DPT controllers (http://www.dpt.com/).
|
||||
# These have hardware RAID-{0,1,5} support, and do multi-initiator I/O.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: options,v 1.112 1998/12/19 23:07:16 msmith Exp $
|
||||
# $Id: options,v 1.113 1998/12/28 16:31:26 peter Exp $
|
||||
#
|
||||
# On the handling of kernel options
|
||||
#
|
||||
@ -249,9 +249,13 @@ SI_DEBUG opt_debug_si.h
|
||||
|
||||
# These cause changes all over the kernel
|
||||
DEBUG opt_global.h
|
||||
DEBUG_VFS_LOCKS opt_global.h
|
||||
DIAGNOSTIC opt_global.h
|
||||
SIMPLELOCK_DEBUG opt_global.h
|
||||
ENABLE_VFS_IOOPT opt_global.h
|
||||
INVARIANT_SUPPORT opt_global.h
|
||||
INVARIANTS opt_global.h
|
||||
SIMPLELOCK_DEBUG opt_global.h
|
||||
VFS_BIO_DEBUG opt_global.h
|
||||
|
||||
# These are VM related options
|
||||
VM_KMEM_SIZE opt_vm.h
|
||||
|
@ -135,10 +135,8 @@ snpread(dev, uio, flag)
|
||||
caddr_t from;
|
||||
char *nbuf;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if ((snp->snp_len + snp->snp_base) > snp->snp_blen)
|
||||
panic("snoop buffer error");
|
||||
#endif
|
||||
KASSERT(snp->snp_len + snp->snp_base <= snp->snp_blen,
|
||||
("snoop buffer error"));
|
||||
|
||||
if (snp->snp_tty == NULL)
|
||||
return (EIO);
|
||||
@ -212,10 +210,9 @@ snpin(snp, buf, n)
|
||||
if (n == 0)
|
||||
return 0;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (n < 0)
|
||||
panic("bad snoop char count");
|
||||
KASSERT(n > 0, ("negative snoop char count"));
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (!(snp->snp_flags & SNOOP_OPEN)) {
|
||||
printf("Snoop: data coming to closed device.\n");
|
||||
return 0;
|
||||
|
@ -2,7 +2,7 @@
|
||||
# LINT -- config file for checking all the sources, tries to pull in
|
||||
# as much of the source tree as it can.
|
||||
#
|
||||
# $Id: LINT,v 1.526 1999/01/01 08:09:57 peter Exp $
|
||||
# $Id: LINT,v 1.527 1999/01/08 16:04:18 eivind Exp $
|
||||
#
|
||||
# NB: You probably don't want to try running a kernel built from this
|
||||
# file. Instead, you should start from GENERIC, and add options from
|
||||
@ -291,12 +291,29 @@ options GDB_REMOTE_CHAT
|
||||
options KTRACE #kernel tracing
|
||||
|
||||
#
|
||||
# The DIAGNOSTIC option is used in a number of source files to enable
|
||||
# The INVARIANTS option is used in a number of source files to enable
|
||||
# extra sanity checking of internal structures. This support is not
|
||||
# enabled by default because of the extra time it would take to check
|
||||
# for these conditions, which can only occur as a result of
|
||||
# programming errors.
|
||||
#
|
||||
options INVARIANTS
|
||||
|
||||
#
|
||||
# The INVARIANT_SUPPORT option makes us compile in support for
|
||||
# verifying some of the internal structures. It is a prerequisite for
|
||||
# 'INVARIANTS', as enabling 'INVARIANTS' will make these functions be
|
||||
# called. The intent is that you can set 'INVARIANTS' for single
|
||||
# source files (by changing the source file or specifying it on the
|
||||
# command line) if you have 'INVARIANT_SUPPORT' enabled.
|
||||
#
|
||||
options INVARIANT_SUPPORT
|
||||
|
||||
#
|
||||
# The DIAGNOSTIC option is used to enable extra debugging information
|
||||
# from some parts of the kernel. As this makes everything more noisy,
|
||||
# it is disabled by default.
|
||||
#
|
||||
options DIAGNOSTIC
|
||||
|
||||
#
|
||||
@ -1867,6 +1884,7 @@ options SHMSEG=9
|
||||
options SI_DEBUG
|
||||
options SIMPLELOCK_DEBUG
|
||||
options SPX_HACK
|
||||
options VFS_BIO_DEBUG
|
||||
|
||||
# The 'dpt' driver provides support for DPT controllers (http://www.dpt.com/).
|
||||
# These have hardware RAID-{0,1,5} support, and do multi-initiator I/O.
|
||||
|
@ -2,7 +2,7 @@
|
||||
# LINT -- config file for checking all the sources, tries to pull in
|
||||
# as much of the source tree as it can.
|
||||
#
|
||||
# $Id: LINT,v 1.526 1999/01/01 08:09:57 peter Exp $
|
||||
# $Id: LINT,v 1.527 1999/01/08 16:04:18 eivind Exp $
|
||||
#
|
||||
# NB: You probably don't want to try running a kernel built from this
|
||||
# file. Instead, you should start from GENERIC, and add options from
|
||||
@ -291,12 +291,29 @@ options GDB_REMOTE_CHAT
|
||||
options KTRACE #kernel tracing
|
||||
|
||||
#
|
||||
# The DIAGNOSTIC option is used in a number of source files to enable
|
||||
# The INVARIANTS option is used in a number of source files to enable
|
||||
# extra sanity checking of internal structures. This support is not
|
||||
# enabled by default because of the extra time it would take to check
|
||||
# for these conditions, which can only occur as a result of
|
||||
# programming errors.
|
||||
#
|
||||
options INVARIANTS
|
||||
|
||||
#
|
||||
# The INVARIANT_SUPPORT option makes us compile in support for
|
||||
# verifying some of the internal structures. It is a prerequisite for
|
||||
# 'INVARIANTS', as enabling 'INVARIANTS' will make these functions be
|
||||
# called. The intent is that you can set 'INVARIANTS' for single
|
||||
# source files (by changing the source file or specifying it on the
|
||||
# command line) if you have 'INVARIANT_SUPPORT' enabled.
|
||||
#
|
||||
options INVARIANT_SUPPORT
|
||||
|
||||
#
|
||||
# The DIAGNOSTIC option is used to enable extra debugging information
|
||||
# from some parts of the kernel. As this makes everything more noisy,
|
||||
# it is disabled by default.
|
||||
#
|
||||
options DIAGNOSTIC
|
||||
|
||||
#
|
||||
@ -1867,6 +1884,7 @@ options SHMSEG=9
|
||||
options SI_DEBUG
|
||||
options SIMPLELOCK_DEBUG
|
||||
options SPX_HACK
|
||||
options VFS_BIO_DEBUG
|
||||
|
||||
# The 'dpt' driver provides support for DPT controllers (http://www.dpt.com/).
|
||||
# These have hardware RAID-{0,1,5} support, and do multi-initiator I/O.
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94
|
||||
* $Id: kern_descrip.c,v 1.56 1998/11/11 10:03:54 truckman Exp $
|
||||
* $Id: kern_descrip.c,v 1.57 1998/11/11 10:55:56 truckman Exp $
|
||||
*/
|
||||
|
||||
#include "opt_compat.h"
|
||||
@ -845,7 +845,7 @@ ffree(fp)
|
||||
{
|
||||
LIST_REMOVE(fp, f_list);
|
||||
crfree(fp->f_cred);
|
||||
#ifdef DIAGNOSTIC
|
||||
#if defined(DIAGNOSTIC) || defined(INVARIANTS)
|
||||
fp->f_count = 0;
|
||||
#endif
|
||||
nfiles--;
|
||||
|
@ -38,7 +38,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_lock.c 8.18 (Berkeley) 5/21/95
|
||||
* $Id: kern_lock.c,v 1.19 1998/04/17 04:53:44 bde Exp $
|
||||
* $Id: kern_lock.c,v 1.20 1998/11/26 18:50:23 eivind Exp $
|
||||
*/
|
||||
|
||||
#include "opt_lint.h"
|
||||
@ -83,14 +83,7 @@ sharelock(struct lock *lkp, int incr) {
|
||||
|
||||
static LOCK_INLINE void
|
||||
shareunlock(struct lock *lkp, int decr) {
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (lkp->lk_sharecount < decr)
|
||||
#if defined(DDB)
|
||||
Debugger("shareunlock: count < decr");
|
||||
#else
|
||||
panic("shareunlock: count < decr");
|
||||
#endif
|
||||
#endif
|
||||
KASSERT(lkp->lk_sharecount >= decr, ("shareunlock: count < decr"));
|
||||
|
||||
if (lkp->lk_sharecount == decr) {
|
||||
lkp->lk_flags &= ~LK_SHARE_NONZERO;
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_malloc.c 8.3 (Berkeley) 1/4/94
|
||||
* $Id: kern_malloc.c,v 1.48 1998/10/25 17:44:51 phk Exp $
|
||||
* $Id: kern_malloc.c,v 1.49 1998/11/10 08:46:24 peter Exp $
|
||||
*/
|
||||
|
||||
#include "opt_vm.h"
|
||||
@ -64,7 +64,7 @@ static char *kmembase;
|
||||
static char *kmemlimit;
|
||||
static int vm_kmem_size;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
#if defined(INVARIANTS)
|
||||
/*
|
||||
* This structure provides a set of masks to catch unaligned frees.
|
||||
*/
|
||||
@ -94,11 +94,11 @@ struct freelist {
|
||||
long spare1;
|
||||
caddr_t next;
|
||||
};
|
||||
#else /* !DIAGNOSTIC */
|
||||
#else /* !INVARIANTS */
|
||||
struct freelist {
|
||||
caddr_t next;
|
||||
};
|
||||
#endif /* DIAGNOSTIC */
|
||||
#endif /* INVARIANTS */
|
||||
|
||||
/*
|
||||
* Allocate a block of memory
|
||||
@ -115,7 +115,7 @@ malloc(size, type, flags)
|
||||
long indx, npg, allocsize;
|
||||
int s;
|
||||
caddr_t va, cp, savedlist;
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
long *end, *lp;
|
||||
int copysize;
|
||||
char *savedtype;
|
||||
@ -138,7 +138,7 @@ malloc(size, type, flags)
|
||||
tsleep((caddr_t)ksp, PSWP+2, type->ks_shortdesc, 0);
|
||||
}
|
||||
ksp->ks_size |= 1 << indx;
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
copysize = 1 << indx < MAX_COPY ? 1 << indx : MAX_COPY;
|
||||
#endif
|
||||
if (kbp->kb_next == NULL) {
|
||||
@ -174,7 +174,7 @@ malloc(size, type, flags)
|
||||
kbp->kb_next = cp = va + (npg * PAGE_SIZE) - allocsize;
|
||||
for (;;) {
|
||||
freep = (struct freelist *)cp;
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
/*
|
||||
* Copy in known text to detect modification
|
||||
* after freeing.
|
||||
@ -183,7 +183,7 @@ malloc(size, type, flags)
|
||||
for (lp = (long *)cp; lp < end; lp++)
|
||||
*lp = WEIRD_ADDR;
|
||||
freep->type = M_FREE;
|
||||
#endif /* DIAGNOSTIC */
|
||||
#endif /* INVARIANTS */
|
||||
if (cp <= va)
|
||||
break;
|
||||
cp -= allocsize;
|
||||
@ -195,7 +195,7 @@ malloc(size, type, flags)
|
||||
}
|
||||
va = kbp->kb_next;
|
||||
kbp->kb_next = ((struct freelist *)va)->next;
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
freep = (struct freelist *)va;
|
||||
savedtype = (char *) type->ks_shortdesc;
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
@ -219,7 +219,7 @@ malloc(size, type, flags)
|
||||
break;
|
||||
}
|
||||
freep->spare0 = 0;
|
||||
#endif /* DIAGNOSTIC */
|
||||
#endif /* INVARIANTS */
|
||||
kup = btokup(va);
|
||||
if (kup->ku_indx != indx)
|
||||
panic("malloc: wrong bucket");
|
||||
@ -251,7 +251,7 @@ free(addr, type)
|
||||
register struct freelist *freep;
|
||||
long size;
|
||||
int s;
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
struct freelist *fp;
|
||||
long *end, *lp, alloc, copysize;
|
||||
#endif
|
||||
@ -260,16 +260,13 @@ free(addr, type)
|
||||
if (!type->ks_next)
|
||||
panic("freeing with unknown type (%s)", type->ks_shortdesc);
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if ((char *)addr < kmembase || (char *)addr >= kmemlimit) {
|
||||
panic("free: address %p out of range", (void *)addr);
|
||||
}
|
||||
#endif
|
||||
KASSERT(kmembase <= (char *)addr && (char *)addr < kmemlimit,
|
||||
("free: address %p out of range", (void *)addr));
|
||||
kup = btokup(addr);
|
||||
size = 1 << kup->ku_indx;
|
||||
kbp = &bucket[kup->ku_indx];
|
||||
s = splmem();
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
/*
|
||||
* Check for returns of data that do not point to the
|
||||
* beginning of the allocation.
|
||||
@ -281,7 +278,7 @@ free(addr, type)
|
||||
if (((uintptr_t)(void *)addr & alloc) != 0)
|
||||
panic("free: unaligned addr %p, size %ld, type %s, mask %ld",
|
||||
(void *)addr, size, type->ks_shortdesc, alloc);
|
||||
#endif /* DIAGNOSTIC */
|
||||
#endif /* INVARIANTS */
|
||||
if (size > MAXALLOCSAVE) {
|
||||
kmem_free(kmem_map, (vm_offset_t)addr, ctob(kup->ku_pagecnt));
|
||||
size = kup->ku_pagecnt << PAGE_SHIFT;
|
||||
@ -297,7 +294,7 @@ free(addr, type)
|
||||
return;
|
||||
}
|
||||
freep = (struct freelist *)addr;
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
/*
|
||||
* Check for multiple frees. Use a quick check to see if
|
||||
* it looks free before laboriously searching the freelist.
|
||||
@ -306,11 +303,9 @@ free(addr, type)
|
||||
fp = (struct freelist *)kbp->kb_next;
|
||||
while (fp) {
|
||||
if (fp->spare0 != WEIRD_ADDR) {
|
||||
printf("trashed free item %p\n", fp);
|
||||
panic("free: free item modified");
|
||||
panic("free: free item %p modified", fp);
|
||||
} else if (addr == (caddr_t)fp) {
|
||||
printf("multiple freed item %p\n", addr);
|
||||
panic("free: multiple free");
|
||||
panic("free: multiple freed item %p", addr);
|
||||
}
|
||||
fp = (struct freelist *)fp->next;
|
||||
}
|
||||
@ -326,7 +321,7 @@ free(addr, type)
|
||||
for (lp = (long *)addr; lp < end; lp++)
|
||||
*lp = WEIRD_ADDR;
|
||||
freep->type = type;
|
||||
#endif /* DIAGNOSTIC */
|
||||
#endif /* INVARIANTS */
|
||||
kup->ku_freecnt++;
|
||||
if (kup->ku_freecnt >= kbp->kb_elmpercl)
|
||||
if (kup->ku_freecnt > kbp->kb_elmpercl)
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_proc.c 8.7 (Berkeley) 2/14/95
|
||||
* $Id: kern_proc.c,v 1.39 1998/11/11 10:03:55 truckman Exp $
|
||||
* $Id: kern_proc.c,v 1.40 1998/11/11 10:55:56 truckman Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -195,22 +195,18 @@ enterpgrp(p, pgid, mksess)
|
||||
{
|
||||
register struct pgrp *pgrp = pgfind(pgid);
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (pgrp != NULL && mksess) /* firewalls */
|
||||
panic("enterpgrp: setsid into non-empty pgrp");
|
||||
if (SESS_LEADER(p))
|
||||
panic("enterpgrp: session leader attempted setpgrp");
|
||||
#endif
|
||||
KASSERT(pgrp == NULL || !mksess,
|
||||
("enterpgrp: setsid into non-empty pgrp"));
|
||||
KASSERT(!SESS_LEADER(p),
|
||||
("enterpgrp: session leader attempted setpgrp"));
|
||||
if (pgrp == NULL) {
|
||||
pid_t savepid = p->p_pid;
|
||||
struct proc *np;
|
||||
/*
|
||||
* new process group
|
||||
*/
|
||||
#ifdef DIAGNOSTIC
|
||||
if (p->p_pid != pgid)
|
||||
panic("enterpgrp: new pgrp and pid != pgid");
|
||||
#endif
|
||||
KASSERT(p->p_pid == pgid,
|
||||
("enterpgrp: new pgrp and pid != pgid"));
|
||||
MALLOC(pgrp, struct pgrp *, sizeof(struct pgrp), M_PGRP,
|
||||
M_WAITOK);
|
||||
if ((np = pfind(savepid)) == NULL || np != p)
|
||||
@ -232,10 +228,8 @@ enterpgrp(p, pgid, mksess)
|
||||
sizeof(sess->s_login));
|
||||
p->p_flag &= ~P_CONTROLT;
|
||||
pgrp->pg_session = sess;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (p != curproc)
|
||||
panic("enterpgrp: mksession and p != curproc");
|
||||
#endif
|
||||
KASSERT(p == curproc,
|
||||
("enterpgrp: mksession and p != curproc"));
|
||||
} else {
|
||||
pgrp->pg_session = p->p_session;
|
||||
pgrp->pg_session->s_count++;
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_sig.c 8.7 (Berkeley) 4/18/94
|
||||
* $Id: kern_sig.c,v 1.50 1998/12/02 01:53:48 eivind Exp $
|
||||
* $Id: kern_sig.c,v 1.51 1998/12/19 02:55:33 julian Exp $
|
||||
*/
|
||||
|
||||
#include "opt_compat.h"
|
||||
@ -1183,10 +1183,8 @@ postsig(signum)
|
||||
register sig_t action;
|
||||
int code, mask, returnmask;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (signum == 0)
|
||||
panic("postsig");
|
||||
#endif
|
||||
KASSERT(signum != 0, ("postsig"));
|
||||
|
||||
mask = sigmask(signum);
|
||||
p->p_siglist &= ~mask;
|
||||
action = ps->ps_sigact[signum];
|
||||
@ -1214,10 +1212,8 @@ postsig(signum)
|
||||
/*
|
||||
* If we get here, the signal must be caught.
|
||||
*/
|
||||
#ifdef DIAGNOSTIC
|
||||
if (action == SIG_IGN || (p->p_sigmask & mask))
|
||||
panic("postsig action");
|
||||
#endif
|
||||
KASSERT(action != SIG_IGN && (p->p_sigmask & mask) == 0,
|
||||
("postsig action"));
|
||||
/*
|
||||
* Set the new mask value and also defer further
|
||||
* occurences of this signal.
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_subr.c 8.3 (Berkeley) 1/21/94
|
||||
* $Id: kern_subr.c,v 1.21 1998/07/15 02:32:10 bde Exp $
|
||||
* $Id: kern_subr.c,v 1.22 1998/08/04 09:21:04 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -61,12 +61,11 @@ uiomove(cp, n, uio)
|
||||
u_int cnt;
|
||||
int error;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (uio->uio_rw != UIO_READ && uio->uio_rw != UIO_WRITE)
|
||||
panic("uiomove: mode");
|
||||
if (uio->uio_segflg == UIO_USERSPACE && uio->uio_procp != curproc)
|
||||
panic("uiomove proc");
|
||||
#endif
|
||||
KASSERT(uio->uio_rw == UIO_READ || uio->uio_rw == UIO_WRITE,
|
||||
("uiomove: mode"));
|
||||
KASSERT(uio->uio_segflg != UIO_USERSPACE || uio->uio_procp == curproc,
|
||||
("uiomove proc"));
|
||||
|
||||
while (n > 0 && uio->uio_resid) {
|
||||
iov = uio->uio_iov;
|
||||
cnt = iov->iov_len;
|
||||
@ -120,12 +119,11 @@ uiomoveco(cp, n, uio, obj)
|
||||
u_int cnt;
|
||||
int error;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (uio->uio_rw != UIO_READ && uio->uio_rw != UIO_WRITE)
|
||||
panic("uiomove: mode");
|
||||
if (uio->uio_segflg == UIO_USERSPACE && uio->uio_procp != curproc)
|
||||
panic("uiomove proc");
|
||||
#endif
|
||||
KASSERT(uio->uio_rw == UIO_READ || uio->uio_rw == UIO_WRITE,
|
||||
("uiomoveco: mode"));
|
||||
KASSERT(uio->uio_segflg != UIO_USERSPACE || uio->uio_procp == curproc,
|
||||
("uiomoveco proc"));
|
||||
|
||||
while (n > 0 && uio->uio_resid) {
|
||||
iov = uio->uio_iov;
|
||||
cnt = iov->iov_len;
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)kern_synch.c 8.9 (Berkeley) 5/19/95
|
||||
* $Id: kern_synch.c,v 1.69 1998/11/27 11:44:22 dg Exp $
|
||||
* $Id: kern_synch.c,v 1.70 1998/12/21 07:41:51 dillon Exp $
|
||||
*/
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
@ -401,20 +401,11 @@ tsleep(ident, priority, wmesg, timo)
|
||||
splx(s);
|
||||
return (0);
|
||||
}
|
||||
#ifdef DIAGNOSTIC
|
||||
if(p == NULL)
|
||||
panic("tsleep1");
|
||||
if (ident == NULL || p->p_stat != SRUN)
|
||||
panic("tsleep");
|
||||
/* XXX This is not exhaustive, just the most common case */
|
||||
#ifdef NOTDEF
|
||||
/*
|
||||
* This can happen legitimately now with asleep()/await()
|
||||
*/
|
||||
if ((p->p_procq.tqe_prev != NULL) && (*p->p_procq.tqe_prev == p))
|
||||
panic("sleeping process already on another queue");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
KASSERT(p != NULL, ("tsleep1"));
|
||||
KASSERT(ident != NULL && p->p_stat == SRUN,
|
||||
("tsleep"));
|
||||
|
||||
/*
|
||||
* Process may be sitting on a slpque if asleep() was called, remove
|
||||
* it before re-adding.
|
||||
@ -706,16 +697,6 @@ wakeup(ident)
|
||||
qp = &slpque[LOOKUP(ident)];
|
||||
restart:
|
||||
for (p = qp->tqh_first; p != NULL; p = p->p_procq.tqe_next) {
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef NOTDEF
|
||||
/*
|
||||
* The process can legitimately be running now with
|
||||
* asleep()/await().
|
||||
*/
|
||||
if (p->p_stat != SSLEEP && p->p_stat != SSTOP)
|
||||
panic("wakeup");
|
||||
#endif
|
||||
#endif
|
||||
if (p->p_wchan == ident) {
|
||||
TAILQ_REMOVE(qp, p, p_procq);
|
||||
p->p_wchan = 0;
|
||||
@ -757,16 +738,6 @@ wakeup_one(ident)
|
||||
qp = &slpque[LOOKUP(ident)];
|
||||
|
||||
for (p = qp->tqh_first; p != NULL; p = p->p_procq.tqe_next) {
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef NOTDEF
|
||||
/*
|
||||
* The process can legitimately be running now with
|
||||
* asleep()/await().
|
||||
*/
|
||||
if (p->p_stat != SSLEEP && p->p_stat != SSTOP)
|
||||
panic("wakeup_one");
|
||||
#endif
|
||||
#endif
|
||||
if (p->p_wchan == ident) {
|
||||
TAILQ_REMOVE(qp, p, p_procq);
|
||||
p->p_wchan = 0;
|
||||
|
@ -41,7 +41,7 @@
|
||||
*
|
||||
* @(#)subr_autoconf.c 8.1 (Berkeley) 6/10/93
|
||||
*
|
||||
* $Id: subr_autoconf.c,v 1.6 1997/11/18 12:43:41 bde Exp $
|
||||
* $Id: subr_autoconf.c,v 1.7 1998/12/04 22:54:51 archie Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -334,10 +334,8 @@ evcnt_attach(dev, name, ev)
|
||||
{
|
||||
static struct evcnt **nextp = &allevents;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (strlen(name) >= sizeof(ev->ev_name))
|
||||
panic("evcnt_attach");
|
||||
#endif
|
||||
KASSERT(strlen(name) < sizeof(ev->ev_name), ("evcnt_attach"));
|
||||
|
||||
/* ev->ev_next = NULL; */
|
||||
ev->ev_dev = dev;
|
||||
/* ev->ev_count = 0; */
|
||||
|
@ -54,7 +54,7 @@
|
||||
* functioning of this software, nor does the author assume any responsibility
|
||||
* for damages incurred with its use.
|
||||
*
|
||||
* $Id: subr_rlist.c,v 1.26 1998/04/15 17:46:25 bde Exp $
|
||||
* $Id: subr_rlist.c,v 1.27 1998/08/05 14:06:04 dg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -137,16 +137,14 @@ rlist_free(rlh, start, end)
|
||||
while (cur_rlp != NULL) {
|
||||
if (start < cur_rlp->rl_start)
|
||||
break;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (prev_rlp) {
|
||||
if (prev_rlp->rl_end + 1 == cur_rlp->rl_start)
|
||||
panic("rlist_free: missed coalesce opportunity");
|
||||
if (prev_rlp->rl_end == cur_rlp->rl_start)
|
||||
panic("rlist_free: entries overlap");
|
||||
if (prev_rlp->rl_end > cur_rlp->rl_start)
|
||||
panic("entries out of order");
|
||||
KASSERT(prev_rlp->rl_end + 1 != cur_rlp->rl_start,
|
||||
("rlist_free: missed coalesce opportunity"));
|
||||
KASSERT(prev_rlp->rl_end != cur_rlp->rl_start,
|
||||
("rlist_free: entries overlap"));
|
||||
KASSERT(prev_rlp->rl_end <= cur_rlp->rl_start,
|
||||
("entries out of order"));
|
||||
}
|
||||
#endif
|
||||
prev_rlp = cur_rlp;
|
||||
cur_rlp = cur_rlp->rl_next;
|
||||
}
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)tty.c 8.8 (Berkeley) 1/21/94
|
||||
* $Id: tty.c,v 1.109 1998/12/07 07:59:20 ache Exp $
|
||||
* $Id: tty.c,v 1.110 1998/12/08 10:22:07 bde Exp $
|
||||
*/
|
||||
|
||||
/*-
|
||||
@ -1310,10 +1310,8 @@ ttrstrt(tp_arg)
|
||||
struct tty *tp;
|
||||
int s;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (tp_arg == NULL)
|
||||
panic("ttrstrt");
|
||||
#endif
|
||||
KASSERT(tp_arg != NULL, ("ttrstrt"));
|
||||
|
||||
tp = tp_arg;
|
||||
s = spltty();
|
||||
|
||||
|
@ -135,10 +135,8 @@ snpread(dev, uio, flag)
|
||||
caddr_t from;
|
||||
char *nbuf;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if ((snp->snp_len + snp->snp_base) > snp->snp_blen)
|
||||
panic("snoop buffer error");
|
||||
#endif
|
||||
KASSERT(snp->snp_len + snp->snp_base <= snp->snp_blen,
|
||||
("snoop buffer error"));
|
||||
|
||||
if (snp->snp_tty == NULL)
|
||||
return (EIO);
|
||||
@ -212,10 +210,9 @@ snpin(snp, buf, n)
|
||||
if (n == 0)
|
||||
return 0;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (n < 0)
|
||||
panic("bad snoop char count");
|
||||
KASSERT(n > 0, ("negative snoop char count"));
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (!(snp->snp_flags & SNOOP_OPEN)) {
|
||||
printf("Snoop: data coming to closed device.\n");
|
||||
return 0;
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)uipc_socket.c 8.3 (Berkeley) 4/15/94
|
||||
* $Id: uipc_socket.c,v 1.46 1998/11/11 10:03:56 truckman Exp $
|
||||
* $Id: uipc_socket.c,v 1.47 1998/12/07 21:58:29 archie Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -637,10 +637,7 @@ soreceive(so, psa, uio, mp0, controlp, flagsp)
|
||||
(so->so_rcv.sb_cc < so->so_rcv.sb_lowat ||
|
||||
((flags & MSG_WAITALL) && uio->uio_resid <= so->so_rcv.sb_hiwat)) &&
|
||||
m->m_nextpkt == 0 && (pr->pr_flags & PR_ATOMIC) == 0)) {
|
||||
#ifdef DIAGNOSTIC
|
||||
if (m == 0 && so->so_rcv.sb_cc)
|
||||
panic("receive 1");
|
||||
#endif
|
||||
KASSERT(m != 0 || !so->so_rcv.sb_cc, ("receive 1"));
|
||||
if (so->so_error) {
|
||||
if (m)
|
||||
goto dontblock;
|
||||
@ -683,10 +680,7 @@ soreceive(so, psa, uio, mp0, controlp, flagsp)
|
||||
uio->uio_procp->p_stats->p_ru.ru_msgrcv++;
|
||||
nextrecord = m->m_nextpkt;
|
||||
if (pr->pr_flags & PR_ADDR) {
|
||||
#ifdef DIAGNOSTIC
|
||||
if (m->m_type != MT_SONAME)
|
||||
panic("receive 1a");
|
||||
#endif
|
||||
KASSERT(m->m_type == MT_SONAME, ("receive 1a"));
|
||||
orig_resid = 0;
|
||||
if (psa)
|
||||
*psa = dup_sockaddr(mtod(m, struct sockaddr *),
|
||||
@ -740,10 +734,9 @@ soreceive(so, psa, uio, mp0, controlp, flagsp)
|
||||
break;
|
||||
} else if (type == MT_OOBDATA)
|
||||
break;
|
||||
#ifdef DIAGNOSTIC
|
||||
else if (m->m_type != MT_DATA && m->m_type != MT_HEADER)
|
||||
panic("receive 3");
|
||||
#endif
|
||||
else
|
||||
KASSERT(m->m_type == MT_DATA || m->m_type == MT_HEADER,
|
||||
("receive 3"));
|
||||
so->so_state &= ~SS_RCVATMARK;
|
||||
len = uio->uio_resid;
|
||||
if (so->so_oobmark && len > so->so_oobmark - offset)
|
||||
|
@ -11,7 +11,7 @@
|
||||
* 2. Absolutely no warranty of function or purpose is made by the author
|
||||
* John S. Dyson.
|
||||
*
|
||||
* $Id: vfs_bio.c,v 1.188 1998/12/22 14:43:58 luoqi Exp $
|
||||
* $Id: vfs_bio.c,v 1.189 1998/12/22 18:57:30 dillon Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -692,10 +692,7 @@ brelse(struct buf * bp)
|
||||
int poffset = foff & PAGE_MASK;
|
||||
int presid = resid > (PAGE_SIZE - poffset) ?
|
||||
(PAGE_SIZE - poffset) : resid;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (presid < 0)
|
||||
panic("brelse: extra page");
|
||||
#endif
|
||||
KASSERT(presid >= 0, ("brelse: extra page"));
|
||||
vm_page_set_invalid(m, poffset, presid);
|
||||
}
|
||||
resid -= PAGE_SIZE - (foff & PAGE_MASK);
|
||||
@ -1002,11 +999,8 @@ getnewbuf(struct vnode *vp, daddr_t blkno,
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_flags & B_BUSY) {
|
||||
panic("getnewbuf: busy buffer on free list\n");
|
||||
}
|
||||
#endif
|
||||
KASSERT(!(bp->b_flags & B_BUSY),
|
||||
("getnewbuf: busy buffer on free list\n"));
|
||||
|
||||
/*
|
||||
* We are fairly aggressive about freeing VMIO buffers, but since
|
||||
@ -1460,10 +1454,8 @@ getblk(struct vnode * vp, daddr_t blkno, int size, int slpflag, int slptimeo)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("getblk: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("getblk: no buffer offset"));
|
||||
|
||||
/*
|
||||
* Check that the constituted buffer really deserves for the
|
||||
@ -1711,10 +1703,8 @@ allocbuf(struct buf * bp, int size)
|
||||
* is the responsibility of vnode_pager_setsize
|
||||
*/
|
||||
m = bp->b_pages[i];
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (m == bogus_page)
|
||||
panic("allocbuf: bogus page found");
|
||||
#endif
|
||||
KASSERT(m != bogus_page,
|
||||
("allocbuf: bogus page found"));
|
||||
vm_page_sleep(m, "biodep", &m->busy);
|
||||
|
||||
bp->b_pages[i] = NULL;
|
||||
@ -1747,10 +1737,8 @@ allocbuf(struct buf * bp, int size)
|
||||
tinc = PAGE_SIZE;
|
||||
|
||||
off = bp->b_offset;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("allocbuf: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("allocbuf: no buffer offset"));
|
||||
|
||||
curbpnpages = bp->b_npages;
|
||||
doretry:
|
||||
@ -1938,10 +1926,8 @@ biodone(register struct buf * bp)
|
||||
#endif
|
||||
|
||||
foff = bp->b_offset;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("biodone: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("biodone: no buffer offset"));
|
||||
|
||||
#if !defined(MAX_PERF)
|
||||
if (!obj) {
|
||||
@ -2213,10 +2199,8 @@ vfs_busy_pages(struct buf * bp, int clear_modify)
|
||||
vm_ooffset_t foff;
|
||||
|
||||
foff = bp->b_offset;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("vfs_busy_pages: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("vfs_busy_pages: no buffer offset"));
|
||||
|
||||
vfs_setdirty(bp);
|
||||
|
||||
@ -2266,10 +2250,8 @@ vfs_clean_pages(struct buf * bp)
|
||||
vm_ooffset_t foff;
|
||||
foff = bp->b_offset;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("vfs_clean_pages: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("vfs_clean_pages: no buffer offset"));
|
||||
|
||||
for (i = 0; i < bp->b_npages; i++) {
|
||||
vm_page_t m = bp->b_pages[i];
|
||||
|
@ -33,7 +33,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vfs_cluster.c 8.7 (Berkeley) 2/13/94
|
||||
* $Id: vfs_cluster.c,v 1.74 1998/11/17 00:31:12 mckusick Exp $
|
||||
* $Id: vfs_cluster.c,v 1.75 1998/12/05 06:12:14 mckusick Exp $
|
||||
*/
|
||||
|
||||
#include "opt_debug_cluster.h"
|
||||
@ -168,10 +168,8 @@ cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp)
|
||||
} else {
|
||||
off_t firstread;
|
||||
firstread = bp->b_offset;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("cluster_read: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("cluster_read: no buffer offset"));
|
||||
if (firstread + totread > filesize)
|
||||
totread = filesize - firstread;
|
||||
if (totread > size) {
|
||||
@ -312,11 +310,9 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp)
|
||||
daddr_t bn;
|
||||
int i, inc, j;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (size != vp->v_mount->mnt_stat.f_iosize)
|
||||
panic("cluster_rbuild: size %ld != filesize %ld\n",
|
||||
size, vp->v_mount->mnt_stat.f_iosize);
|
||||
#endif
|
||||
KASSERT(size == vp->v_mount->mnt_stat.f_iosize,
|
||||
("cluster_rbuild: size %ld != filesize %ld\n",
|
||||
size, vp->v_mount->mnt_stat.f_iosize));
|
||||
/*
|
||||
* avoid a division
|
||||
*/
|
||||
@ -350,10 +346,8 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp)
|
||||
bp->b_blkno = blkno;
|
||||
bp->b_lblkno = lbn;
|
||||
bp->b_offset = tbp->b_offset;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("cluster_rbuild: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET,
|
||||
("cluster_rbuild: no buffer offset"));
|
||||
pbgetvp(vp, bp);
|
||||
|
||||
TAILQ_INIT(&bp->b_cluster.cluster_head);
|
||||
@ -517,10 +511,7 @@ cluster_write(bp, filesize)
|
||||
}
|
||||
lbn = bp->b_lblkno;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (bp->b_offset == NOOFFSET)
|
||||
panic("cluster_write: no buffer offset");
|
||||
#endif
|
||||
KASSERT(bp->b_offset != NOOFFSET, ("cluster_write: no buffer offset"));
|
||||
|
||||
/* Initialize vnode to beginning of file. */
|
||||
if (lbn == 0)
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
|
||||
* $Id: vfs_subr.c,v 1.179 1999/01/05 18:12:29 eivind Exp $
|
||||
* $Id: vfs_subr.c,v 1.180 1999/01/05 18:49:53 eivind Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -466,7 +466,7 @@ getnewvnode(tag, mp, vops, vpp)
|
||||
simple_unlock(&vp->v_interlock);
|
||||
}
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
{
|
||||
int s;
|
||||
|
||||
@ -796,10 +796,7 @@ bgetvp(vp, bp)
|
||||
{
|
||||
int s;
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp)
|
||||
panic("bgetvp: not free");
|
||||
#endif
|
||||
KASSERT(bp->b_vp == NULL, ("bgetvp: not free"));
|
||||
vhold(vp);
|
||||
bp->b_vp = vp;
|
||||
if (vp->v_type == VBLK || vp->v_type == VCHR)
|
||||
@ -827,10 +824,7 @@ brelvp(bp)
|
||||
struct buflists *listheadp;
|
||||
int s;
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp == (struct vnode *) 0)
|
||||
panic("brelvp: NULL");
|
||||
#endif
|
||||
KASSERT(bp->b_vp != NULL, ("brelvp: NULL"));
|
||||
|
||||
/*
|
||||
* Delete from old vnode list, if on one.
|
||||
@ -996,10 +990,8 @@ pbgetvp(vp, bp)
|
||||
register struct vnode *vp;
|
||||
register struct buf *bp;
|
||||
{
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp)
|
||||
panic("pbgetvp: not free");
|
||||
#endif
|
||||
KASSERT(bp->b_vp == NULL, ("pbgetvp: not free"));
|
||||
|
||||
bp->b_vp = vp;
|
||||
if (vp->v_type == VBLK || vp->v_type == VCHR)
|
||||
bp->b_dev = vp->v_rdev;
|
||||
@ -1015,10 +1007,7 @@ pbrelvp(bp)
|
||||
register struct buf *bp;
|
||||
{
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp == (struct vnode *) 0)
|
||||
panic("pbrelvp: NULL");
|
||||
#endif
|
||||
KASSERT(bp->b_vp != NULL, ("pbrelvp: NULL"));
|
||||
|
||||
bp->b_vp = (struct vnode *) 0;
|
||||
}
|
||||
@ -1313,10 +1302,8 @@ vrele(vp)
|
||||
{
|
||||
struct proc *p = curproc; /* XXX */
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (vp == NULL)
|
||||
panic("vrele: null vp");
|
||||
#endif
|
||||
KASSERT(vp, ("vrele: null vp"));
|
||||
|
||||
simple_lock(&vp->v_interlock);
|
||||
|
||||
if (vp->v_usecount > 1) {
|
||||
@ -1356,10 +1343,7 @@ vput(vp)
|
||||
{
|
||||
struct proc *p = curproc; /* XXX */
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (vp == NULL)
|
||||
panic("vput: null vp");
|
||||
#endif
|
||||
KASSERT(vp != NULL, ("vput: null vp"));
|
||||
|
||||
simple_lock(&vp->v_interlock);
|
||||
|
||||
@ -1646,10 +1630,7 @@ vop_revoke(ap)
|
||||
struct vnode *vp, *vq;
|
||||
struct proc *p = curproc; /* XXX */
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if ((ap->a_flags & REVOKEALL) == 0)
|
||||
panic("vop_revoke");
|
||||
#endif
|
||||
KASSERT((ap->a_flags & REVOKEALL) != 0, ("vop_revoke"));
|
||||
|
||||
vp = ap->a_vp;
|
||||
simple_lock(&vp->v_interlock);
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vfs_lookup.c 8.4 (Berkeley) 2/16/94
|
||||
* $Id: vfs_lookup.c,v 1.28 1998/06/07 17:11:45 dfr Exp $
|
||||
* $Id: vfs_lookup.c,v 1.29 1999/01/05 18:49:52 eivind Exp $
|
||||
*/
|
||||
|
||||
#include "opt_ktrace.h"
|
||||
@ -89,14 +89,11 @@ namei(ndp)
|
||||
struct proc *p = cnp->cn_proc;
|
||||
|
||||
ndp->ni_cnd.cn_cred = ndp->ni_cnd.cn_proc->p_ucred;
|
||||
#ifdef DIAGNOSTIC
|
||||
if (!cnp->cn_cred || !cnp->cn_proc)
|
||||
panic ("namei: bad cred/proc");
|
||||
if (cnp->cn_nameiop & (~OPMASK))
|
||||
panic ("namei: nameiop contaminated with flags");
|
||||
if (cnp->cn_flags & OPMASK)
|
||||
panic ("namei: flags contaminated with nameiops");
|
||||
#endif
|
||||
KASSERT(cnp->cn_cred && cnp->cn_proc, ("namei: bad cred/proc"));
|
||||
KASSERT((cnp->cn_nameiop & (~OPMASK)) == 0,
|
||||
("namei: nameiop contaminated with flags"));
|
||||
KASSERT((cnp->cn_flags & OPMASK) == 0,
|
||||
("namei: flags contaminated with nameiops"));
|
||||
fdp = cnp->cn_proc->p_fd;
|
||||
|
||||
/*
|
||||
@ -418,10 +415,7 @@ lookup(ndp)
|
||||
ndp->ni_vp = NULL;
|
||||
ASSERT_VOP_LOCKED(dp, "lookup");
|
||||
if (error = VOP_LOOKUP(dp, &ndp->ni_vp, cnp)) {
|
||||
#ifdef DIAGNOSTIC
|
||||
if (ndp->ni_vp != NULL)
|
||||
panic("leaf should be empty");
|
||||
#endif
|
||||
KASSERT(ndp->ni_vp == NULL, ("leaf should be empty"));
|
||||
#ifdef NAMEI_DIAGNOSTIC
|
||||
printf("not found\n");
|
||||
#endif
|
||||
@ -649,10 +643,7 @@ relookup(dvp, vpp, cnp)
|
||||
* We now have a segment name to search for, and a directory to search.
|
||||
*/
|
||||
if (error = VOP_LOOKUP(dp, vpp, cnp)) {
|
||||
#ifdef DIAGNOSTIC
|
||||
if (*vpp != NULL)
|
||||
panic("leaf should be empty");
|
||||
#endif
|
||||
KASSERT(*vpp == NULL, ("leaf should be empty"));
|
||||
if (error != EJUSTRETURN)
|
||||
goto bad;
|
||||
/*
|
||||
@ -675,13 +666,11 @@ relookup(dvp, vpp, cnp)
|
||||
}
|
||||
dp = *vpp;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
/*
|
||||
* Check for symbolic link
|
||||
*/
|
||||
if (dp->v_type == VLNK && (cnp->cn_flags & FOLLOW))
|
||||
panic ("relookup: symlink found.\n");
|
||||
#endif
|
||||
KASSERT(dp->v_type != VLNK || !(cnp->cn_flags & FOLLOW),
|
||||
("relookup: symlink found.\n"));
|
||||
|
||||
/*
|
||||
* Disallow directory write attempts on read-only file systems.
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
|
||||
* $Id: vfs_subr.c,v 1.179 1999/01/05 18:12:29 eivind Exp $
|
||||
* $Id: vfs_subr.c,v 1.180 1999/01/05 18:49:53 eivind Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -466,7 +466,7 @@ getnewvnode(tag, mp, vops, vpp)
|
||||
simple_unlock(&vp->v_interlock);
|
||||
}
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
#ifdef INVARIANTS
|
||||
{
|
||||
int s;
|
||||
|
||||
@ -796,10 +796,7 @@ bgetvp(vp, bp)
|
||||
{
|
||||
int s;
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp)
|
||||
panic("bgetvp: not free");
|
||||
#endif
|
||||
KASSERT(bp->b_vp == NULL, ("bgetvp: not free"));
|
||||
vhold(vp);
|
||||
bp->b_vp = vp;
|
||||
if (vp->v_type == VBLK || vp->v_type == VCHR)
|
||||
@ -827,10 +824,7 @@ brelvp(bp)
|
||||
struct buflists *listheadp;
|
||||
int s;
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp == (struct vnode *) 0)
|
||||
panic("brelvp: NULL");
|
||||
#endif
|
||||
KASSERT(bp->b_vp != NULL, ("brelvp: NULL"));
|
||||
|
||||
/*
|
||||
* Delete from old vnode list, if on one.
|
||||
@ -996,10 +990,8 @@ pbgetvp(vp, bp)
|
||||
register struct vnode *vp;
|
||||
register struct buf *bp;
|
||||
{
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp)
|
||||
panic("pbgetvp: not free");
|
||||
#endif
|
||||
KASSERT(bp->b_vp == NULL, ("pbgetvp: not free"));
|
||||
|
||||
bp->b_vp = vp;
|
||||
if (vp->v_type == VBLK || vp->v_type == VCHR)
|
||||
bp->b_dev = vp->v_rdev;
|
||||
@ -1015,10 +1007,7 @@ pbrelvp(bp)
|
||||
register struct buf *bp;
|
||||
{
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (bp->b_vp == (struct vnode *) 0)
|
||||
panic("pbrelvp: NULL");
|
||||
#endif
|
||||
KASSERT(bp->b_vp != NULL, ("pbrelvp: NULL"));
|
||||
|
||||
bp->b_vp = (struct vnode *) 0;
|
||||
}
|
||||
@ -1313,10 +1302,8 @@ vrele(vp)
|
||||
{
|
||||
struct proc *p = curproc; /* XXX */
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (vp == NULL)
|
||||
panic("vrele: null vp");
|
||||
#endif
|
||||
KASSERT(vp, ("vrele: null vp"));
|
||||
|
||||
simple_lock(&vp->v_interlock);
|
||||
|
||||
if (vp->v_usecount > 1) {
|
||||
@ -1356,10 +1343,7 @@ vput(vp)
|
||||
{
|
||||
struct proc *p = curproc; /* XXX */
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if (vp == NULL)
|
||||
panic("vput: null vp");
|
||||
#endif
|
||||
KASSERT(vp != NULL, ("vput: null vp"));
|
||||
|
||||
simple_lock(&vp->v_interlock);
|
||||
|
||||
@ -1646,10 +1630,7 @@ vop_revoke(ap)
|
||||
struct vnode *vp, *vq;
|
||||
struct proc *p = curproc; /* XXX */
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
if ((ap->a_flags & REVOKEALL) == 0)
|
||||
panic("vop_revoke");
|
||||
#endif
|
||||
KASSERT((ap->a_flags & REVOKEALL) != 0, ("vop_revoke"));
|
||||
|
||||
vp = ap->a_vp;
|
||||
simple_lock(&vp->v_interlock);
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)systm.h 8.7 (Berkeley) 3/29/95
|
||||
* $Id: systm.h,v 1.79 1998/12/03 04:45:57 archie Exp $
|
||||
* $Id: systm.h,v 1.80 1998/12/21 07:41:50 dillon Exp $
|
||||
*/
|
||||
|
||||
#ifndef _SYS_SYSTM_H_
|
||||
@ -76,6 +76,12 @@ extern struct vnode *swapdev_vp;/* vnode for swap device */
|
||||
extern int boothowto; /* reboot flags, from console subsystem */
|
||||
extern int bootverbose; /* nonzero to print verbose messages */
|
||||
|
||||
#ifdef INVARIANTS /* The option is always available */
|
||||
#define KASSERT(exp,msg) do { if (!(exp)) panic msg; } while(0)
|
||||
#else
|
||||
#define KASSERT(exp,msg)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* General function declarations.
|
||||
*/
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)device_pager.c 8.1 (Berkeley) 6/11/93
|
||||
* $Id: device_pager.c,v 1.35 1998/11/08 12:39:07 dfr Exp $
|
||||
* $Id: device_pager.c,v 1.36 1998/12/07 21:58:50 archie Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -208,10 +208,7 @@ dev_pager_getpages(object, m, count, reqpage)
|
||||
panic("dev_pager_getpage: no map function");
|
||||
|
||||
paddr = pmap_phys_address((*mapfunc) ((dev_t) dev, (vm_offset_t) offset << PAGE_SHIFT, prot));
|
||||
#ifdef DIAGNOSTIC
|
||||
if (paddr == -1)
|
||||
panic("dev_pager_getpage: map function returns error");
|
||||
#endif
|
||||
KASSERT(paddr != -1,("dev_pager_getpage: map function returns error"));
|
||||
/*
|
||||
* Replace the passed in reqpage page with our own fake page and free up the
|
||||
* all of the original pages.
|
||||
|
@ -39,7 +39,7 @@
|
||||
* from: Utah $Hdr: swap_pager.c 1.4 91/04/30$
|
||||
*
|
||||
* @(#)swap_pager.c 8.9 (Berkeley) 3/21/94
|
||||
* $Id: swap_pager.c,v 1.104 1998/11/19 06:20:42 bde Exp $
|
||||
* $Id: swap_pager.c,v 1.105 1998/12/29 22:53:51 dt Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -1297,7 +1297,7 @@ swap_pager_putpages(object, m, count, sync, rtvals)
|
||||
swb[i]->swb_locked--;
|
||||
}
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
for (i = firstidx; i < lastidx; i++) {
|
||||
if (reqaddr[i] == SWB_EMPTY) {
|
||||
printf("I/O to empty block???? -- pindex: %d, i: %d\n",
|
||||
@ -1348,11 +1348,9 @@ swap_pager_putpages(object, m, count, sync, rtvals)
|
||||
}
|
||||
|
||||
spc = TAILQ_FIRST(&swap_pager_free);
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (spc == NULL)
|
||||
panic("swap_pager_putpages: free queue is empty, %d expected\n",
|
||||
swap_pager_free_count);
|
||||
#endif
|
||||
KASSERT(spc,
|
||||
("swap_pager_putpages: free queue is empty, %d expected\n",
|
||||
swap_pager_free_count));
|
||||
TAILQ_REMOVE(&swap_pager_free, spc, spc_list);
|
||||
swap_pager_free_count--;
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
||||
* any improvements or extensions that they make and grant Carnegie the
|
||||
* rights to redistribute these changes.
|
||||
*
|
||||
* $Id: vm_fault.c,v 1.90 1998/10/28 13:37:02 dg Exp $
|
||||
* $Id: vm_fault.c,v 1.91 1998/11/25 07:40:49 dg Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -528,10 +528,8 @@ RetryFault:;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if ((fs.m->flags & PG_BUSY) == 0)
|
||||
panic("vm_fault: not busy after main loop");
|
||||
#endif
|
||||
KASSERT((fs.m->flags & PG_BUSY) != 0,
|
||||
("vm_fault: not busy after main loop"));
|
||||
|
||||
/*
|
||||
* PAGE HAS BEEN FOUND. [Loop invariant still holds -- the object lock
|
||||
|
@ -61,7 +61,7 @@
|
||||
* any improvements or extensions that they make and grant Carnegie the
|
||||
* rights to redistribute these changes.
|
||||
*
|
||||
* $Id: vm_object.c,v 1.135 1998/11/05 14:28:26 dg Exp $
|
||||
* $Id: vm_object.c,v 1.136 1999/01/02 11:34:57 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -242,10 +242,8 @@ vm_object_reference(object)
|
||||
if (object == NULL)
|
||||
return;
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (object->flags & OBJ_DEAD)
|
||||
panic("vm_object_reference: attempting to reference dead obj");
|
||||
#endif
|
||||
KASSERT(!(object->flags & OBJ_DEAD),
|
||||
("vm_object_reference: attempting to reference dead obj"));
|
||||
|
||||
object->ref_count++;
|
||||
if (object->type == OBJT_VNODE) {
|
||||
@ -262,11 +260,10 @@ vm_object_vndeallocate(object)
|
||||
vm_object_t object;
|
||||
{
|
||||
struct vnode *vp = (struct vnode *) object->handle;
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (object->type != OBJT_VNODE)
|
||||
panic("vm_object_vndeallocate: not a vnode object");
|
||||
if (vp == NULL)
|
||||
panic("vm_object_vndeallocate: missing vp");
|
||||
KASSERT(object->type == OBJT_VNODE,
|
||||
("vm_object_vndeallocate: not a vnode object"));
|
||||
KASSERT(vp, ("vm_object_vndeallocate: missing vp"));
|
||||
#if defined(INVARIANTS)
|
||||
if (object->ref_count == 0) {
|
||||
vprint("vm_object_vndeallocate", vp);
|
||||
panic("vm_object_vndeallocate: bad object reference count");
|
||||
@ -328,12 +325,11 @@ vm_object_deallocate(object)
|
||||
vm_object_t robject;
|
||||
|
||||
robject = TAILQ_FIRST(&object->shadow_head);
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (robject == NULL)
|
||||
panic("vm_object_deallocate: ref_count: %d,"
|
||||
" shadow_count: %d",
|
||||
object->ref_count, object->shadow_count);
|
||||
#endif
|
||||
KASSERT(robject != NULL,
|
||||
("vm_object_deallocate: ref_count: %d,"
|
||||
" shadow_count: %d",
|
||||
object->ref_count,
|
||||
object->shadow_count));
|
||||
if ((robject->handle == NULL) &&
|
||||
(robject->type == OBJT_DEFAULT ||
|
||||
robject->type == OBJT_SWAP)) {
|
||||
@ -418,10 +414,8 @@ vm_object_terminate(object)
|
||||
*/
|
||||
vm_object_pip_wait(object, "objtrm");
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (object->paging_in_progress != 0)
|
||||
panic("vm_object_terminate: pageout in progress");
|
||||
#endif
|
||||
KASSERT(!object->paging_in_progress,
|
||||
("vm_object_terminate: pageout in progress"));
|
||||
|
||||
/*
|
||||
* Clean and free the pages, as appropriate. All references to the
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91
|
||||
* $Id: vm_page.c,v 1.113 1998/11/11 15:07:57 dg Exp $
|
||||
* $Id: vm_page.c,v 1.114 1998/12/23 01:52:47 dillon Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -870,11 +870,8 @@ vm_page_alloc(object, pindex, page_req)
|
||||
int queue, qtype;
|
||||
int s;
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
m = vm_page_lookup(object, pindex);
|
||||
if (m)
|
||||
panic("vm_page_alloc: page already allocated");
|
||||
#endif
|
||||
KASSERT(!vm_page_lookup(object, pindex),
|
||||
("vm_page_alloc: page already allocated"));
|
||||
|
||||
if ((curproc == pageproc) && (page_req != VM_ALLOC_INTERRUPT)) {
|
||||
page_req = VM_ALLOC_SYSTEM;
|
||||
@ -887,10 +884,7 @@ vm_page_alloc(object, pindex, page_req)
|
||||
case VM_ALLOC_NORMAL:
|
||||
if (cnt.v_free_count >= cnt.v_free_reserved) {
|
||||
m = vm_page_select_free(object, pindex, PQ_FREE);
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (m == NULL)
|
||||
panic("vm_page_alloc(NORMAL): missing page on free queue\n");
|
||||
#endif
|
||||
KASSERT(m, ("vm_page_alloc(NORMAL): missing page on free queue\n"));
|
||||
} else {
|
||||
m = vm_page_select_cache(object, pindex);
|
||||
if (m == NULL) {
|
||||
@ -909,10 +903,7 @@ vm_page_alloc(object, pindex, page_req)
|
||||
case VM_ALLOC_ZERO:
|
||||
if (cnt.v_free_count >= cnt.v_free_reserved) {
|
||||
m = vm_page_select_free(object, pindex, PQ_ZERO);
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (m == NULL)
|
||||
panic("vm_page_alloc(ZERO): missing page on free queue\n");
|
||||
#endif
|
||||
KASSERT(m, ("vm_page_alloc(ZERO): missing page on free queue\n"));
|
||||
} else {
|
||||
m = vm_page_select_cache(object, pindex);
|
||||
if (m == NULL) {
|
||||
@ -933,10 +924,7 @@ vm_page_alloc(object, pindex, page_req)
|
||||
((cnt.v_cache_count == 0) &&
|
||||
(cnt.v_free_count >= cnt.v_interrupt_free_min))) {
|
||||
m = vm_page_select_free(object, pindex, PQ_FREE);
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (m == NULL)
|
||||
panic("vm_page_alloc(SYSTEM): missing page on free queue\n");
|
||||
#endif
|
||||
KASSERT(m, ("vm_page_alloc(SYSTEM): missing page on free queue\n"));
|
||||
} else {
|
||||
m = vm_page_select_cache(object, pindex);
|
||||
if (m == NULL) {
|
||||
@ -955,10 +943,7 @@ vm_page_alloc(object, pindex, page_req)
|
||||
case VM_ALLOC_INTERRUPT:
|
||||
if (cnt.v_free_count > 0) {
|
||||
m = vm_page_select_free(object, pindex, PQ_FREE);
|
||||
#if defined(DIAGNOSTIC)
|
||||
if (m == NULL)
|
||||
panic("vm_page_alloc(INTERRUPT): missing page on free queue\n");
|
||||
#endif
|
||||
KASSERT(m, ("vm_page_alloc(INTERRUPT): missing page on free queue\n"));
|
||||
} else {
|
||||
splx(s);
|
||||
vm_pageout_deficit++;
|
||||
|
@ -61,7 +61,7 @@
|
||||
* any improvements or extensions that they make and grant Carnegie the
|
||||
* rights to redistribute these changes.
|
||||
*
|
||||
* $Id: vm_page.h,v 1.47 1998/10/21 14:46:42 dg Exp $
|
||||
* $Id: vm_page.h,v 1.48 1998/10/28 13:37:02 dg Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -391,12 +391,8 @@ vm_page_hold(vm_page_t mem)
|
||||
static __inline void
|
||||
vm_page_unhold(vm_page_t mem)
|
||||
{
|
||||
#ifdef DIAGNOSTIC
|
||||
if (--mem->hold_count < 0)
|
||||
panic("vm_page_unhold: hold count < 0!!!");
|
||||
#else
|
||||
--mem->hold_count;
|
||||
#endif
|
||||
KASSERT(mem->hold_count >= 0, ("vm_page_unhold: hold count < 0!!!"));
|
||||
}
|
||||
|
||||
static __inline void
|
||||
|
@ -11,7 +11,7 @@
|
||||
* 2. Absolutely no warranty of function or purpose is made by the author
|
||||
* John S. Dyson.
|
||||
*
|
||||
* $Id: vm_zone.c,v 1.23 1998/10/31 17:21:31 peter Exp $
|
||||
* $Id: vm_zone.c,v 1.24 1998/12/04 22:54:57 archie Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -194,7 +194,7 @@ zbootinit(vm_zone_t z, char *name, int size, void *item, int nitems)
|
||||
z->zitems = NULL;
|
||||
for (i = 0; i < nitems; i++) {
|
||||
((void **) item)[0] = z->zitems;
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
((void **) item)[1] = (void *) ZENTRY_FREE;
|
||||
#endif
|
||||
z->zitems = item;
|
||||
@ -357,7 +357,7 @@ _zget(vm_zone_t z)
|
||||
nitems -= 1;
|
||||
for (i = 0; i < nitems; i++) {
|
||||
((void **) item)[0] = z->zitems;
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
((void **) item)[1] = (void *) ZENTRY_FREE;
|
||||
#endif
|
||||
z->zitems = item;
|
||||
@ -367,7 +367,7 @@ _zget(vm_zone_t z)
|
||||
} else if (z->zfreecnt > 0) {
|
||||
item = z->zitems;
|
||||
z->zitems = ((void **) item)[0];
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
if (((void **) item)[1] != (void *) ZENTRY_FREE)
|
||||
zerror(ZONE_ERROR_NOTFREE);
|
||||
((void **) item)[1] = 0;
|
||||
@ -432,7 +432,7 @@ sysctl_vm_zone SYSCTL_HANDLER_ARGS
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANT_SUPPORT)
|
||||
void
|
||||
zerror(int error)
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
||||
* 2. Absolutely no warranty of function or purpose is made by the author
|
||||
* John S. Dyson.
|
||||
*
|
||||
* $Id: vm_zone.c,v 1.20 1998/04/15 17:47:40 bde Exp $
|
||||
* $Id: vm_zone.h,v 1.10 1998/04/25 04:50:03 dyson Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SYS_ZONE_H)
|
||||
@ -76,7 +76,7 @@ _zalloc(vm_zone_t z)
|
||||
{
|
||||
void *item;
|
||||
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
if (z == 0)
|
||||
zerror(ZONE_ERROR_INVALID);
|
||||
#endif
|
||||
@ -86,7 +86,7 @@ _zalloc(vm_zone_t z)
|
||||
|
||||
item = z->zitems;
|
||||
z->zitems = ((void **) item)[0];
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
if (((void **) item)[1] != (void *) ZENTRY_FREE)
|
||||
zerror(ZONE_ERROR_NOTFREE);
|
||||
((void **) item)[1] = 0;
|
||||
@ -101,7 +101,7 @@ static __inline__ void
|
||||
_zfree(vm_zone_t z, void *item)
|
||||
{
|
||||
((void **) item)[0] = z->zitems;
|
||||
#if defined(DIAGNOSTIC)
|
||||
#if defined(INVARIANTS)
|
||||
if (((void **) item)[1] == (void *) ZENTRY_FREE)
|
||||
zerror(ZONE_ERROR_ALREADYFREE);
|
||||
((void **) item)[1] = (void *) ZENTRY_FREE;
|
||||
|
Loading…
Reference in New Issue
Block a user