Есть ли в Linux способ (в пространстве пользователя) сопоставить диапазон виртуальных адресов с физическими страницами, которые поддерживают существующий диапазон виртуальных адресов? Функция mmap () позволяет отображать только файлы или «новые» физические страницы. Мне нужно сделать что-то вроде этого:
int* addr1 = malloc(SIZE);
int* addr2 = 0x60000; // Assume nothing is allocated here
fancy_map_function(addr1, addr2, SIZE);
assert(*addr1 == *addr2); // Should succeed
assert(addr1 != addr2); // Should succeed
addr1 = addr2
, чтобы получить почти то, что вы хотите. Возможно, у вас есть шанс сshm_open(3)
, но я подозреваю, что вам нужно что-то, для чего есть более красивое решение. - person I GIVE CRAP ANSWERS   schedule 10.12.2010