我的学习之旅(45)pcnet32.c
来源:互联网 发布:软件设计师怎么挂靠 编辑:程序博客网 时间:2024/06/08 08:02
unsigned int read_pci_config(unsigned char bus, unsigned char slot, unsigned char func, unsigned char offset){ unsigned int v; outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8); v = inl(0xcfc); return v;}unsigned char read_pci_config_byte(unsigned char bus, unsigned char slot, unsigned char func, unsigned char offset){ unsigned char v; outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8); v = inb(0xcfc + (offset&3)); return v;}unsigned short read_pci_config_16(unsigned char bus, unsigned char slot, unsigned char func, unsigned char offset){ unsigned short v; outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8); v = inw(0xcfc + (offset&2)); return v;}void write_pci_config(unsigned char bus, unsigned char slot, unsigned char func, unsigned char offset, unsigned int val){ outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8); outl(val, 0xcfc);}void write_pci_config_byte(unsigned char bus, unsigned char slot, unsigned char func, unsigned char offset, unsigned char val){ outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8); outb(val, 0xcfc);}
pcnet32.c得放在driver目录中
按linux驱动的做法先是扫描pci设备,这个当前不搞,直接使用通过lspci命令得到的bus 、slot和func号。根据网上pcie配置空间的读取方法实现几个读取配置空间int,short和byte的函数。具体还可以参考linux 代码中的early.c
0 0
- 我的学习之旅(45)pcnet32.c
- 我的c 数据结构学习之旅 顺序表未完
- 我的学习之旅(12) main.c
- 我的学习之旅(13) printk.c
- 我的学习之旅(14)printk.c
- 我的学习之旅(15)tty.c
- 我的学习之旅(21)vsprintf.c
- 我的学习之旅(22)vsprintf.c
- 我的学习之旅(22)vsprintf.c
- 我的学习之旅(20)vsprintf.c
- 我的学习之旅(21)vsprintf.c
- 我的学习之旅(34) sched.c
- 我的学习之旅(35)sched.c
- 我的学习之旅(36) sched.c
- 我的学习之旅(37) sched.c
- 我的学习之旅(38) sched.c
- 我的学习之旅(39) sched.c
- 我的学习之旅(40) sched.c
- 四 s5p4418 Android 对can总线的支持 支持波特率修改
- momocms代码审计
- 三天打渔两天晒网
- 口碑营销 转载
- 八皇后问题--递归调用
- 我的学习之旅(45)pcnet32.c
- Android开发之资源文件存储
- 1063. Set Similarity (25)
- wifi连接的诡异
- 学习笔记4-项目的目录结构与安装及启动过程分析
- Matlab归一化方法
- Android开发——android调试工具集【转】
- i++
- Windows-进程-进程相关API