📄 saio.h
字号:
/* * Header file for standalone package *//* @(#)saio.h 4.1 (ULTRIX) 7/2/90 *//************************************************************************ * * * Copyright (c) 1985 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used and * * copied only in accordance with the terms of such license and * * with the inclusion of the above copyright notice. This * * software or any other copies thereof may not be provided or * * otherwise made available to any other person. No title to and * * ownership of the software is hereby transferred. * * * * This software is derived from software received from the * * University of California, Berkeley, and from Bell * * Laboratories. Use, duplication, or disclosure is subject to * * restrictions under license agreements with University of * * California and with AT&T. * * * * The information in this software is subject to change without * * notice and should not be construed as a commitment by Digital * * Equipment Corporation. * * * * Digital assumes no responsibility for the use or reliability * * of its software on equipment which is not supplied by Digital. * * * ************************************************************************/#include "../ufs/fs.h"/* * Io block: includes an * inode, cells for the use of seek, etc, * and a buffer. */struct iob { int i_flgs; /* see F_ below */ struct gnode i_ino; /* inode, if file */ int i_unit; /* pseudo device unit */ daddr_t i_boff; /* block offset on device */ daddr_t i_cyloff; /* cylinder offset on device */ off_t i_offset; /* seek offset in file */ daddr_t i_bn; /* 1st block # of next read */ char *i_ma; /* memory address of i/o buffer */ int i_cc; /* character count of transfer */ int i_error; /* error # return */ int i_errcnt; /* error count for driver retries */ int i_errblk; /* block # in error for error reporting */ char i_buf[MAXBSIZE];/* i/o buffer */ union { struct fs ui_fs; /* file system super block info */ char dummy[SBSIZE]; } i_un;};#define i_fs i_un.ui_fs#define NULL 0#define F_READ 0x1 /* file opened for reading */#define F_WRITE 0x2 /* file opened for writing */#define F_ALLOC 0x4 /* buffer allocated */#define F_FILE 0x8 /* file instead of device */#define F_NBSF 0x10 /* no bad sector forwarding */#define F_ECCLM 0x20 /* limit # of bits in ecc correction */#define F_SSI 0x40 /* set skip sector inhibit */#define F_SEVRE 0x80 /* Severe burnin (no retries, no ECC) *//* io types */#define F_RDDATA 0x0100 /* read data */#define F_WRDATA 0x0200 /* write data */#define F_HDR 0x0400 /* include header on next i/o */#define F_CHECK 0x0800 /* perform check of data read/write */#define F_HCHECK 0x1000 /* perform check of header and data */#define F_TYPEMASK 0xff00/* * dv_flags definitions */#define READ 1#define WRITE 2#define NBUFS 4char b[NBUFS][MAXBSIZE];daddr_t blknos[NBUFS];#define NFILES 1struct iob iob[NFILES];extern int errno; /* just like unix *//* error codes */#define EBADF 1 /* bad file descriptor */#define EOFFSET 2 /* relative seek not supported */#define EDEV 3 /* improper device specification on open */#define ENXIO 4 /* unknown device specified */#define EUNIT 5 /* improper unit specification */#define ESRCH 6 /* directory search for file failed */#define EIO 7 /* generic error */#define ECMD 10 /* undefined driver command */#define EBSE 11 /* bad sector error */#define EWCK 12 /* write check error */#define EECC 13 /* uncorrectable ecc error */#define EHER 14 /* hard error */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -