XEN blktap 框架源代码分析之tapdisk-ipc

本文详细解析了tapdisk2中用于进程间通信的ipc数据结构及其open函数的具体实现,包括如何打开读写文件描述符,并注册事件进行读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件:tapdisk-ipc.h

typedef struct td_ipc_handle {
        int                         rfd;  //读文件描述符
        int                         wfd;//写文件描述符 
        event_id_t                  rfd_event;
        td_uuid_t                   uuid;
} td_ipc_t;

这是tapdisk2的ipc 数据结构,,,


tapdisk-ipc.c

tapdisk_ipc_open(td_ipc_t *ipc, const char *read, const char *write) /*分别打开一个读和写文件描述符*/
{
        int err;


        memset(ipc, 0, sizeof(td_ipc_t));
        __tapdisk_ipc_init(ipc);


        if (read) {
                ipc->rfd = open(read, O_RDWR | O_NONBLOCK);
                if (ipc->rfd < 0) {
                  ,,,,
                }

                ipc->rfd_event =
                        tapdisk_server_register_event(SCHEDULER_POLL_READ_FD,
                                                      ipc->rfd, 0,
                                                      tapdisk_ipc_read_event,
                                                      ipc);
                if (ipc->rfd_event < 0) {
                    ,,,,
                }
        }


        if (write) {
                ipc->wfd = open(write, O_RDWR | O_NONBLOCK);
                if (ipc->wfd < 0) {
                   ,,,,,
                }
        }

        return 0;

fail:
        tapdisk_ipc_close(ipc);
        return err;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值