|
|
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.