/* https://cirosantilli.com/linux-kernel-module-cheat#userland-physical-address-experiments * * This file is dual licensed as both 3-Clause BSD and GPLv3. */ #define _XOPEN_SOURCE 700 #include #include #include #include enum { I0 = 0x12345678 }; static volatile uint32_t i = I0; int main(void) { printf("vaddr %p\n", (void *)&i); printf("pid %ju\n", (uintmax_t)getpid()); while (i == I0) { sleep(1); } printf("i %jx\n", (uintmax_t)i); return EXIT_SUCCESS; }