linux/include/linux/circ_buf.h Go to file Copy path Cannot retrieve contributors at this time 37 lines (30 sloc)1.09 KB RawBlame /* SPDX-License-Identifier: GPL-2.0 */ /* * See Documentation/core-api/circular-buffers.rst for more information. ...
7 #define _LINUX_CIRC_BUF_H 1 8 9 struct circ_buf { 10 char *buf; 11 int head; 12 int tail; 13 }; 14 15 /* Return count in buffer. */ 16 #define CIRC_CNT(head,tail,size) (((head) - (tail)) & ((size)-1)) 17 18 /* Return space available, ...
CIRC_SPACE(head_index, tail_index, buffer_size); 这将返回缓冲区中剩余的空间,可以插入项目。 测量缓冲区中最大的连续空间: CIRC_SPACE_TO_END(head_index, tail_index, buffer_size); 这将返回缓冲区中最大的连续空间,可以立即插入项目,而无需回到缓冲区的开头。 测量缓冲区的占用量: CIRC_CNT(head_in...
CIRC_SPACE(head_index, tail_index, buffer_size); This returns the amount of space left in the buffer[1] into which items can be inserted. (#) Measure the maximum consecutive immediate space in a buffer:: CIRC_SPACE_TO_END(head_index, tail_index, buffer_size); This returns the amount ...
每一个uart端口对应着一个uart_state,该结构体将uart_port与对应的circ_buf联系起来。uart_state有两个成员在底层串口驱动会用到:xmit和port。 用户空间程序通过串口发送数据时,上层驱动将用户数据保存在xmit;而串口发送中断处理函数就是通过xmit获取到用户数据并将它们发送出去。串口接收中断处理函数需要通过port将接收...
每一个uart端口对应着一个uart_state,该结构体将uart_port与对应的circ_buf联系起来。uart_state有两个成员在底层串口驱动会用到:xmit和port。 用户空间程序通过串口发送数据时,上层驱动将用户数据保存在xmit;而串口发送中断处理函数就是通过xmit获取到用户数据并将它们发送出去。串口接收中断处理函数需要通过port将接收...
port->icount port->state->xmit.head (circ_buf->head) port->state->xmit.tail (circ_buf->...
每一个uart端口对应着一个uart_state,该结构体将uart_port与对应的circ_buf联系起来。uart_state有两个成员在底层串口驱动会用到:xmit和port。用户空间程序通过串口发送数据时,上层驱动将用户数据保存在xmit;而串口发送中断处理函数就是通过xmit获取到用户数据并将它们发送出去。串口接收中断处理函数需要通过port将接收到...
在这里函数里,继续完成操作的设备文件所对应state初始化.现在用户空间open这个设备了.即要对这个文件进行操作了.那uart_port也要开始工作了.即调用uart_startup()使其进入工作状态.当然,也需要初始化uart_port所对应的环形缓冲区circ_buf.即state->info-> xmit. ...
每一个uart端口对应着一个uart_state,该结构体将uart_port与对应的circ_buf联系起来。uart_state有两个成员在底层串口驱动会用到:xmit和port。 用户空间程序通过串口发送数据时,上层驱动将用户数据保存在xmit;而串口发送中断处理函数就是通过xmit获取到用户数据并将它们发送出去。串口接收中断处理函数需要通过port将接收...