问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何利用共享内存 实现rpc调用

发布网友 发布时间:2022-04-22 07:05

我来回答

2个回答

热心网友 时间:2022-04-18 08:23

关于RPC 路由器的实现主要分布在smd_rpcrouter.c、smd_rpcrouter_device.c、smd_rpcrouter_servers.c、smd_rpcrouter_clients.c等文件中。RPC路由器起着RPC服务器查询、RPC服务器和RPC客户端的注册和销毁,以及底层通信的封装功能,类似于TCP协议。

在实际的实现中,RPC路由器和RPC服务器均是作为一个虚拟的字符型设备来存在的。

下面是RPC路由器的创建过程:

代码3-11 RPC 路由器的创建过程

int msm_rpcrouter_init_devices(void)  

{  

int rc;  

int major;  

msm_rpcrouter_class=class_create(THIS_MODULE, 

"oncrpc"); //创建设备节点  

if (IS_ERR(msm_rpcrouter_class)) {  

rc=-ENOMEM;  

printk(KERN_ERR  

"rpcrouter: failed to create oncrpc class\n");  

goto fail;  

}  

rc=alloc_chrdev_region(&msm_rpcrouter_devno,

0, //作为字符型设备分配资源  

RPCROUTER_MAX_REMOTE_SERVERS + 1, "oncrpc");  

if (rc<0) {  

printk(KERN_ERR  

"rpcrouter: Failed to alloc chardev region (%d)\n", rc);  

goto fail_destroy_class;  

}  

major=MAJOR(msm_rpcrouter_devno);  

rpcrouter_device=device_create(msm_

rpcrouter_class, NULL, //创建设备  

msm_rpcrouter_devno, NULL, "%.8x:%d",  

0, 0);  

if (IS_ERR(rpcrouter_device)) {  

rc=-ENOMEM;  

goto fail_unregister_cdev_region;  

}  

cdev_init(&rpcrouter_cdev, &rpcrouter_

router_fops); //字符型设备初始化  

rpcrouter_cdev.owner=THIS_MODULE;  

rc=cdev_add(&rpcrouter_cdev, msm_rpcrouter_devno, 1);  

if (rc<0)  

goto fail_destroy_device;  

return 0;  

fail_destroy_device:  

device_destroy(msm_rpcrouter_class, 

msm_rpcrouter_devno);//销毁设备  

fail_unregister_cdev_region:  

unregister_chrdev_region(msm_rpcrouter_devno, //去注册  

RPCROUTER_MAX_REMOTE_SERVERS + 1);  

fail_destroy_class:  

class_destroy(msm_rpcrouter_class);  

fail:  

return rc;  

}

热心网友 时间:2022-04-18 09:41

rpc相当于远程接口调用,我猜你肯定是想同一台机器多个进程间使用一些公共的数据,可以把用到的数据都写在服务端,使用共享内存再使用rpc意义不大。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
新轩逸保养一次多少钱? ...每个小长方形的周长是多少厘米?(你能想出几 铅的正常是多少合适 两个同样的长方形,长是8分米,宽4分米。把它们拼成一个长方形,它的周长... ...拼成一个大长方形拼成的长方形的周长是多少分米 ...长8分米,宽是4分米,如果把它们拼成一个长方形,这个长方形的周长是... ...如果把它们拼成长方形,这个长方形的周长是多少? ...把它们拼成一个正方形,周长是___分米;把它们拼成一个长方... 把两个边长是4分米的正方形拼成一个长方形,这个长方形的周长是___ ...长是8分米,宽是4分米.如果把它们拼成一个长方形,这个长方形的周长是... 宠物生活全集有几集 浙江小桑树美容美发有限公司怎么样? 什么是以太网适配器?? 01手机店和手机淘什么关系啊? 如何把不会说话的监控改成会说话的? 中国移动分期买手机需要什么条件 杭州乔治理发店有几家 具体在什么位置 总店是哪家 和淘手机网是正品吗 controller 节点 和 compute节点 哪个耗cpu 监控分享的设备怎么能够说话? 杭州有地方学习美容美发吗? 那些端口都是什么意思,都是干什么的,谁有详细的... 山西70吨的唐代铁牛,镇守黄河1200年,是如何做到... 服务器端口是什么? 蒲津桥在历史上的重要作用 计算机网络的结构有哪些参考模型?说明OSI模型的组... 添加bsc的rpc什么意思简单来说 [转载]Navisworks中,怎样添加RPC 组合贷款如何办理?组合贷款办理流程详解 买房怎么办理组合贷款? 为什么很多主播都在找靓机淘手机? 监控摄像头语音功能权限怎么打开? 杭州美容读三四年的学校 如何连接局域网啊。。。谁能告诉我啊` 如何在闲鱼淘手机? 推荐一款养宠物的APP 永琪美容美发杭州总部地址 如果在网上买手机需要注意什么呢? 火影忍者中被宇智波鼬秒杀过的人都有哪些? 海康硬盘录像机的语音对讲功能怎么实现 哪个牌子羊奶粉怎么样 无限监控语音系统已启动是什么意思 如何看待杭州女子十年在美发店消费150万这件事? 请教”活性粉末混凝土(RPC)电缆槽盖板“的荷载标准... 火影忍者: 被宇智波鼬秒杀过的六个人,有影级实力... 关于互联网中“端口”的问题 杭州美发培训学校哪家好啊? 宠物生活馆是干嘛的? 在监控里怎么跟监控里面的人说话 学美容美发杭州哪个学校好呢??