From 9d2ccc8e6650399de73993dd775f91c34b1f6986 Mon Sep 17 00:00:00 2001 From: Bruce Evans Date: Sat, 18 Feb 1995 21:12:33 +0000 Subject: [PATCH] New field b_biodone_chain to support nested b_iodone's. --- sys/sys/bio.h | 16 +++++++++++++++- sys/sys/buf.h | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/sys/sys/bio.h b/sys/sys/bio.h index 7d9c238b2a2b..509e91329514 100644 --- a/sys/sys/bio.h +++ b/sys/sys/bio.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)buf.h 8.7 (Berkeley) 1/21/94 - * $Id: buf.h,v 1.10 1994/10/18 06:55:57 davidg Exp $ + * $Id: buf.h,v 1.11 1995/01/09 16:05:12 davidg Exp $ */ #ifndef _SYS_BUF_H_ @@ -45,6 +45,18 @@ #define NOLIST ((struct buf *)0x87654321) +struct buf; + +struct iodone_chain { + long ic_prev_flags; + void (*ic_prev_iodone) __P((struct buf *)); + void *ic_prev_iodone_chain; + struct { + long ia_long; + void *ia_ptr; + } ic_args[5]; +}; + /* * The buffer header describes an I/O operation in the kernel. */ @@ -69,6 +81,8 @@ struct buf { daddr_t b_blkno; /* Underlying physical block number. */ /* Function to call upon completion. */ void (*b_iodone) __P((struct buf *)); + /* For nested b_iodone's. */ + struct iodone_chain *b_iodone_chain; struct vnode *b_vp; /* Device vnode. */ int b_pfcent; /* Center page when swapping cluster. */ int b_dirtyoff; /* Offset in buffer of dirty region. */ diff --git a/sys/sys/buf.h b/sys/sys/buf.h index 7d9c238b2a2b..509e91329514 100644 --- a/sys/sys/buf.h +++ b/sys/sys/buf.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)buf.h 8.7 (Berkeley) 1/21/94 - * $Id: buf.h,v 1.10 1994/10/18 06:55:57 davidg Exp $ + * $Id: buf.h,v 1.11 1995/01/09 16:05:12 davidg Exp $ */ #ifndef _SYS_BUF_H_ @@ -45,6 +45,18 @@ #define NOLIST ((struct buf *)0x87654321) +struct buf; + +struct iodone_chain { + long ic_prev_flags; + void (*ic_prev_iodone) __P((struct buf *)); + void *ic_prev_iodone_chain; + struct { + long ia_long; + void *ia_ptr; + } ic_args[5]; +}; + /* * The buffer header describes an I/O operation in the kernel. */ @@ -69,6 +81,8 @@ struct buf { daddr_t b_blkno; /* Underlying physical block number. */ /* Function to call upon completion. */ void (*b_iodone) __P((struct buf *)); + /* For nested b_iodone's. */ + struct iodone_chain *b_iodone_chain; struct vnode *b_vp; /* Device vnode. */ int b_pfcent; /* Center page when swapping cluster. */ int b_dirtyoff; /* Offset in buffer of dirty region. */