频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

内核操作 Linux2.6内核驱动移植参考

来源:赛迪网技术社区 作者: 出处:巧巧读书 2007-04-29 进入讨论组
上一页 1 2 3 4 5 6 

30、 block I/O 层

这一部分做的改动最大。不祥叙。

31、 mmap()

int remap_page_range(struct vm_area_struct *vma, unsigned long from,

unsigned long to, unsigned long size,

pgprot_t prot);

int io_remap_page_range(struct vm_area_struct *vma, unsigned long from,

unsigned long to, unsigned long size,

pgprot_t prot);

struct page *(*nopage)(struct vm_area_struct *area,

unsigned long address,

int *type);

int (*populate)(struct vm_area_struct *area, unsigned long address,

unsigned long len, pgprot_t prot, unsigned long pgoff,

int nonblock);

int install_page(struct mm_struct *mm, struct vm_area_struct *vma,

unsigned long addr, struct page *page,

pgprot_t prot);

struct page *vmalloc_to_page(void *address);

32、 零拷贝块I/O(Zero-copy block I/O)

struct bio *bio_map_user(struct block_device *bdev,

unsigned long uaddr,

unsigned int len,

int write_to_vm);

void bio_unmap_user(struct bio *bio, int write_to_vm);

int get_user_pages(struct task_struct *task,

struct mm_struct *mm,

unsigned long start,

int len,

int write,

int force,

struct page **pages,

struct vm_area_struct **vmas);

33、 高端内存操作kmaps

void *kmap_atomic(struct page *page, enum km_type type);

void kunmap_atomic(void *address, enum km_type type);

struct page *kmap_atomic_to_page(void *address);

老版本:kmap() 和 kunmap()。

34、 驱动模型

主要用于设备管理。

1、 sysfs

2、 Kobjects

文章地址: http://www.qqread.com/linux/2007/04/o311031.html 更多文章 更多内容请看Linux集群技术体验Linux的音影世界Linux驱动大全专题,或进入讨论组讨论。
上一页 1 2 3 4 5 6 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章