Linux uio用戶態編程

參考

The Userspace I/O HOWTO

實現

地址和大小是驅動中填入的,可由sysfs獲取,在mapX中,mmap的偏移爲pagesize的整數倍,

#define UIO_DEV 	"/dev/uio0"
#define UIO_ADDR 	"/sys/class/uio/uio0/maps/map0/addr"
#define UIO_SIZE 	"/sys/class/uio/uio0/maps/map0/size"
#define UIO_ADDR1 	"/sys/class/uio/uio0/maps/map1/addr"
#define UIO_SIZE1	"/sys/class/uio/uio0/maps/map1/size"

access_address = mmap(NULL, uio_size, PROT_READ | PROT_WRITE,
	MAP_SHARED, uio_fd, 0);
access_address_1 = mmap(NULL, uio_size_1, PROT_READ | PROT_WRITE,
	MAP_SHARED, uio_fd, getpagesize());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章