#include #include #include #include #include main() { int fd ; void *virt_addr ; int *ptr1, *ptr2, i ; fd = open("mydevice", O_RDWR) ; if (fd == -1) { printf("open failed\n") ; exit(-1) ; } virt_addr = mmap(NULL, 10000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0) ; if (virt_addr == MAP_FAILED) { printf("mmap failed\n") ; exit(-1) ; } ptr1 = (int *) virt_addr ; ptr2 = (int *) virt_addr ; printf("ptr1 = %ld, ptr2 = %ld virt_addr=%ld \n", (unsigned long)ptr1, (unsigned long)ptr2, (unsigned long)virt_addr) ; for(i = 0 ; i < 2048 ; i++) { *(ptr1 + i) = i ; } for(i = 0 ; i < 2048 ; i++) { printf("%d ", *(ptr2 + i)) ; } munmap(virt_addr, 80) ; close(fd) ; return 0 ; }