亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
64位系統(tǒng)上裝32位應(yīng)用程序和驅(qū)動通信
[打印本頁]
作者:
978215369
時間:
2014-09-25 14:11
標(biāo)題:
64位系統(tǒng)上裝32位應(yīng)用程序和驅(qū)動通信
系統(tǒng)是64位,在此系統(tǒng)上編譯的驅(qū)動程序和32位應(yīng)用程序通過netlink通信,sendto中的buf從應(yīng)用程序發(fā)送到內(nèi)核態(tài)驅(qū)動,發(fā)生了變化,
struct sockaddr_nl peer;
struct io_filter_init_request *init_request = NULL;
給init_request賦值
sendto(_sockfd, init_request, init_request->hdr.nlmsg_len, 0, (struct sockaddr*)&peer, sizeof(peer)
struct io_filter_init_request {
struct nlmsghdr hdr;
__u32 item_cnt; //elements contained in init_info
struct io_filter_src_limit src_limit;
struct io_filter_init_info init_info[];
};
struct io_filter_init_info {
__u16 major_no; // major device number
__u16 minor_no; // minor device number
__u32 sec_size; // sector size
__u32 bl_size; // block size
__u8 mount_point[DISK_DOS_NAME_LEN]; // /a
__u8 dev_name[DISK_DOS_NAME_LEN]; // /dev/sda1
__u8 log_path[DISK_DOS_NAME_LEN]; // /b
__u8 dev_name_log[DISK_DOS_NAME_LEN]; // /dev/sda2
}__attribute__((__packed__));
init_request賦值后, sendto之前和內(nèi)核sock收到之前,發(fā)生了很大變化,內(nèi)核收到的__u8 mount_point[DISK_DOS_NAME_LEN]和下面的dev_name, log_path, dev_name_log與真實的值相比少了前四個字符,major_no以及下面的minor,sec_size, bl_size傳的值接收到的都不對。
環(huán)境為64位系統(tǒng),編譯的驅(qū)動程序如果和64位的應(yīng)用程序通信,就沒有此問題,請高人幫忙解答
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2