// mmstudy1.cpp // allan cruse #include #include #include #include #include #include int main( void ) { int mm = open( "/dev/vram", O_RDWR ); int vramsize = lseek( mm, 0, SEEK_END ); printf( "\nvramsize: %d MB \n", vramsize >> 20 ); int fd, nbytes; char vmainfo[ 4096 ]; memset( vmainfo, 0, sizeof( vmainfo ) ); fd = open( "/proc/vma", O_RDONLY ); nbytes = read( fd, vmainfo, 4095 ); close( fd ); if ( nbytes < 0 ) { perror( "read" ); exit(1); } printf( "\n%s\n", vmainfo ); int prot = ( PROT_READ | PROT_WRITE ); int flags = MAP_SHARED; long *vram = (long*)mmap( 0, vramsize, prot, flags, mm, 0 ); printf( "\nvram=%08X \n", vram ); memset( vmainfo, 0, sizeof( vmainfo ) ); fd = open( "/proc/vma", O_RDONLY ); nbytes = read( fd, vmainfo, 4095 ); close( fd ); if ( nbytes < 0 ) { perror( "read" ); exit(1); } printf( "\n%s\n", vmainfo ); munmap( vram, vramsize ); memset( vmainfo, 0, sizeof( vmainfo ) ); fd = open( "/proc/vma", O_RDONLY ); nbytes = read( fd, vmainfo, 4095 ); close( fd ); if ( nbytes < 0 ) { perror( "read" ); exit(1); } printf( "\n%s\n", vmainfo ); }