buf

王朝百科·作者佚名  2010-08-09
窄屏简体版  字體: |||超大  

buf 结构在驱动模块中的解释以下 buf 结构成员对块驱动程序很重要:

int b_flags; /* Buffer Status */

struct buf *av_forw; /* Driver work list link */

struct buf *av_back; /* Driver work list link */

size_t b_bcount; /* # of bytes to transfer */

union {

caddr_t b_addr; /* Buffer's virtual address */

} b_un;

daddr_t b_blkno; /* Block number on device */

diskaddr_t b_lblkno; /* Expanded block number on device */

size_t b_resid; /* # of bytes not transferred */

/* after error */

int b_error; /* Expanded error field */

void *b_private; /* “opaque” driver private area */

dev_t b_edev; /* expanded dev field */其中:

av_forw 和 av_back驱动程序可用以管理其使用的一组缓冲区的指针。有关 av_forw 和 av_back 指针的讨论,请参见异步数据传输(块驱动程序)。

b_bcount指定要由设备传输的字节数。

b_un.b_addr数据缓冲区的内核虚拟地址。仅在进行 bp_mapin(9F) 调用后有效。

b_blkno设备上用于数据传输的起始 32 位逻辑块编号,以 DEV_BSIZE(512 字节)为单位。驱动程序应使用 b_blkno 或 b_lblkno,但不能同时使用两者。

b_lblkno设备上用于数据传输的起始 64 位逻辑块编号,以 DEV_BSIZE(512 字节)为单位。驱动程序应使用 b_blkno 或 b_lblkno,但不能同时使用两者。

b_resid由驱动程序设置的用于表明由于发生错误而未传输的字节数。有关设置 b_resid 的示例,请参见示例 16–7。b_resid 成员会过载。此外,disksort(9F) 也会使用 b_resid。

b_error当发生传输错误时,由驱动程序设置为错误编号。b_error 应与 b_flags B_ERROR 位一起设置。有关错误值的详细信息,请参见 Intro(9E) 手册页。驱动程序应使用 bioerror(9F),而不是直接设置 b_error。

b_flags表示 buf 结构的状态属性和传输属性的标志。如果设置了 B_READ,则 buf 结构指明从设备到内存的传输。否则,此结构指明从内存到设备的传输。如果在数据传输期间驱动程序遇到错误,则该驱动程序应设置 b_flags 成员中的 B_ERROR 字段。此外,该驱动程序还应在 b_error 中提供一个更明确的错误值。驱动程序应使用 bioerror(9F),而不是设置 B_ERROR。

注意 – 驱动程序绝不能清除 b_flags。

b_private专供驱动程序存储驱动程序专用数据。

b_edev包含用于传输的设备的设备编号。在汇编中的解释在汇编中,buf通常是buffer的缩写,及缓冲区,意指内存中的一段区域,用来存放数据。在高级语言中就是变量名,以便后面引用的。也可能是一条命令。

在游戏中的解释其实BUF应该为BUFF但是在国产的游戏中很多人都喜欢用英文简写,而且打的不全,就把BUFF给打成BUF了。并且呢,很多人都不知道BUFF的意思是什么,在美国游戏中,BUFF的意思为增益状态,在国内的游戏中也有不少人喜欢用英语来表达,但是却不知道是什么意思,所以就把BUFF给打成BUF了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航