|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 3.0 ! 3: * Copyright (c) 1982, 1990 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* ! 7: * Buffer header. ! 8: */ ! 9: #ifndef BUF_H BUF_H ! 10: #define BUF_H ! 11: ! 12: #include <sys/types.h> ! 13: ! 14: typedef struct buf { ! 15: struct buf *b_actf; /* First in queue */ ! 16: struct buf *b_actl; /* Last in queue */ ! 17: GATE b_gate; /* Gate */ ! 18: unsigned b_flag; /* Flags */ ! 19: dev_t b_dev; /* Device */ ! 20: daddr_t b_bno; /* Block number */ ! 21: char b_req; /* I/O type */ ! 22: char b_err; /* Error */ ! 23: unsigned b_seqn; /* Buffer sequence number */ ! 24: bold_t b_map; /* Old map */ ! 25: vaddr_t b_count; /* Size of I/O */ ! 26: vaddr_t b_resid; /* Driver returns count here */ ! 27: faddr_t b_faddr; /* Far Virtual address */ ! 28: paddr_t b_paddr; /* Physical address */ ! 29: } BUF; ! 30: ! 31: /* ! 32: * Flags (b_flags). ! 33: */ ! 34: #define BFNTP 0000001 /* Buffer not valid */ ! 35: #define BFREQ 0000002 /* Buffer requested */ ! 36: #define BFERR 0000004 /* Error */ ! 37: #define BFMOD 0000010 /* Data has been modified */ ! 38: #define BFASY 0000020 /* Asynchrous */ ! 39: #define BFMAP 0000040 /* Buffer has been mapped */ ! 40: #define BFRAW 0000100 /* Request is raw */ ! 41: #define BFTAP 0000200 /* Request is to a tape */ ! 42: ! 43: #define BFBLK 0040000 /* Aligned on a block boundary */ ! 44: #define BFIOC 0100000 /* Perform bounds checking */ ! 45: ! 46: /* ! 47: * Requests. ! 48: */ ! 49: #define BREAD 1 /* Read */ ! 50: #define BWRITE 2 /* Write */ ! 51: ! 52: #ifdef KERNEL ! 53: /* ! 54: * Functions. ! 55: */ ! 56: extern BUF *bread(); /* bio.c */ ! 57: extern BUF *bclaim(); /* bio.c */ ! 58: extern BUF *vread(); /* fs3.c */ ! 59: extern BUF *aread(); /* fs3.c */ ! 60: extern daddr_t vmap(); /* fs3.c */ ! 61: extern int *lmap(); /* fs3.c */ ! 62: ! 63: #endif ! 64: ! 65: #ifdef KERNEL ! 66: /* ! 67: * Global variables. ! 68: */ ! 69: extern unsigned bufseqn; /* Buffer sequencer */ ! 70: extern int bufneed; /* Buffer is needed */ ! 71: extern BUF swapbuf; /* Buffer for swap I/O */ ! 72: extern BUF *bufl; /* Buffer headers */ ! 73: ! 74: #endif ! 75: ! 76: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.