LINUX.ORG.RU

Объясни нормально, что ты хочешь. О каких блоках и местах идет речь

anonymous
()
Ответ на: комментарий от anonymous

Объясни нормально, что ты хочешь. О каких блоках и местах идет речь

Есть функция mmap, которая мапит дескриптор устройства на память. Я хочу мапить /dev/sdX, на котором хочу организовать свою примитивную базу данных. Зачем так - это отдельный вопрос производительности. Нужно мапить в один указатель гигабайты из разных смещений на устройстве, что бы в пользовательских классах видеть это одним указателем. Я конечно могу обойтись и без этого, но стало интересно, можно ли такое сделать.

victor79
() автор топика
Ответ на: комментарий от victor79

Ты какой-то mremap хочешь?..

Оно точно того стоит? Ты все равно абстрагируешь доступ к этой памяти, таблица трансляций в userspace внутри вызовов твоей либы тебя не устроит?

t184256 ★★★★★
()
Ответ на: комментарий от victor79

Нужно мапить в один указатель гигабайты из разных смещений на устройстве

Замапить разные смещения на один указатель одновременно, естественно, невозможно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Побуду Вангой и попытаюсь понять что хотел ТС: он хочет один указатель на кусок памяти, в который можно читать/писать как будто он выделен последовательно, но под капотом там несколько блоков. Типа «первые три гигабайта из /dev/sda, потом 2 гига не трогаем, потом еще три гигабайта». А «снаружи» это выглядит это как 1 выделенный блок на 6 гигабайт.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Но это не «в один указатель», а, скорее, «в один непрерывный диапазон адресов».

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Ну это как раз без проблем, не понимаю, что его останавливает))

anonymous
()

Ты можешь маппить что угодно и как угодно, ограничен ты только страничной адресацией. Маппишь большой кусок анонимно (чтобы получить кусок непрерывной памяти куда никто больше не попадёт), а затем поверх него маппишь кусочки любого (кратного размеру страницы) размера из любых дескрипторов. munmap для освобождения нужен будет только один на весь кусок.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.