当前位置: 首页 > news >正文

网站关键字推广/五行seo博客

网站关键字推广,五行seo博客,个人网站的成本,电影网站做seo看肯定是能看懂,经常忘记,若能背下来,那是更好。看书又要从头看,肯定是要总结一个云笔记那就是这篇博客 struct cdev {struct kobject kobj;struct module *owner;struct file_operations *ops;struct list_head list;dev_t dev;…
看肯定是能看懂,经常忘记,若能背下来,那是更好。看书又要从头看,肯定是要总结一个云笔记那就是这篇博客
struct cdev {struct kobject kobj;struct module *owner;struct file_operations *ops;struct list_head list;dev_t dev;                //设备号unsigned int count;
};---------------------------------------------------------
void cdev_init(struct cdev*, struct file_operations *);struct cdev *cdev_alloc(void);void cdev_put(struct cdev *p);// 添加一个字符设备到系统
int cdev_add(struct cdev *, dev_t, unsigned);// 从系统移除一个字符设备
void cdev_del(struct cdev *);int register_chrdev_region(dev_t from, unsigned count, const char* name);int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char* name);-------------
fops:read()函数用于读取数据,成功时返回读取的字节数,出错时返回一个负值。read()            ---->   ssize_t read(int fd, void *buf, size_t count)---->   size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)write()函数向设备发送数据,成功时返回写入的字节数。write()           ---> ssize_t write(int fd, void *buf, size_t count);---> ssize_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
无情插入tips: 

 

1. read()和write() 如果返回0, 则暗示 end_of_file(EOF)

 

2. .unlocked_ioctl 和 .compat_ioctl区别:很多驱动里都有一个宏 CONFIG_COMPAT,这个宏理解起来啥意思呢,我也没看到在哪里看到说明,比如这个:static const struct file_operations fops = {.owner = THIS_MODULE,.unlocked_ioctl = my_ioctl,.open = my_open,.release = my_release,#ifdef CONFIG_COMPAT.compat_ioctl = my_compat_ioctl,
#endif.mmap = my_mmap,    
};32位cpu, msm8909, 应用层调用ioctl, 进入的是unlocked_ioctl 。64位cpu,应用层调用ioctl,进入的应该是compat_ioctl。CONFIG_COMPAT宏的话,在32位的机器上应该是未定义的。

 

然后下一个函数mmap():mmap()函数将设备内存映射到进程的虚拟地址空间中。与用户空间的void *mmap(void* addr, size_t length, int prot, int flags, int fd, off_t offset)函数对应。最近看的binder,binder驱动里进程通信就是mmap实现的。---------------------------------想写个驱动例子,搞一搞,理解下,暂时没看到例程,后面再看一看
下一个关注的是read()和write()中系统调用函数:unsigned long copy_from_user(void *to, const void __user *from, unsigned long count);unsigned long copy_to_user(void __user *to, const void *from, unsigned long count);成功返回0, 失败返回负值。
然后关注的是ioctl()函数:关注幻数的生成(32位)内核定义了_IO(), _IOR(), _IOW()和_IOWR()辅助生成命令,先自定义一个MAGIC_NUM,然后自定cmd参数:设备类型字段,序列号, 数据长度字段
---------------------
#define MY_MAGIC_NUM    0XA0#define CHAO_COMMAND_ONE      _IOW(MY_MYGIC_NUM, 1, int)
#define CHAO_COMMAND_TWO      _IOW(MY_MYGIC_NUM, 2, int)
#define CHAO_COMMAND_TEN      _IOW(MY_MYGIC_NUM, 10, int)

 

http://www.jmfq.cn/news/5273893.html

相关文章:

  • 有没有免费查公司的软件/长沙网站推广和优化
  • 个人网站logo生成/福州模板建站哪家好
  • 海外免费云服务器/站长工具seo综合查询下载
  • 如何做翻唱网站/百度网址大全电脑版旧版本
  • 建设主题网站步骤/今日疫情最新消息
  • 嘉定网站设计怎么样/网上营销新观察网
  • 专业积分商城网站制作/sem优化是什么意思
  • php开发网站的优势/湖南网络优化
  • 摄影网站哪个最好/seo门户网
  • 南京整站优化/宁波网站推广联系方式
  • 网站怎么做sitemap/网络广告策划与制作
  • 深圳网络seo推广/泉州seo优化
  • 做网站百度新闻源/推广的软件
  • 华为云建站靠谱吗/地推公司排名
  • 政务网站建设云计算中心/沈阳关键词seo排名
  • 宁波网站建设公司地址/网站开发建设步骤
  • 石家庄响应式模板建站/企业seo顾问服务阿亮
  • 做商城网站设计/名优网站关键词优化
  • 做网络兼职网站有哪些/seo怎样
  • 连云港市网站建设/百度网站是什么
  • 浙江金华市建设局网站/焊工培训
  • 网站建设 商标/百度推广客户端手机版下载
  • 泉州网站建设-泉州网站建设公司/只要做好关键词优化
  • ruby 网站开发/买卖链接网站
  • 苏州网站建设公司哪个好/代写文章质量高的平台
  • 苏州网站优化/班级优化大师官网下载
  • 房地产最新消息今日/网站及搜索引擎优化建议
  • 网站建设公司ipo/站长平台
  • 卧龙区2015网站建设价格/网上怎么免费推广
  • 网站图片滚动素材/优化大师tv版