a745c072

Shm_open


Функцию shm_open можно считать облегченным вариантом функции sys_shmat (строка ). Она подключает переданную ей область VMA к области разделяемой памяти. Область VMA, переданная в качестве параметра, была скопирована из той, которая уже подключена к целевой области, поэтому сама область VMA уже заполнена правильно; работа функции shm_open в основном сводится только к выполнению подключения.

Как сказано в комментарии перед функцией shm_open, эта функция вызывается из функции do_fork (строка ), которая рассматривается в . Точнее, эта функция вызывается из строки в функции dup_mmap (строка ). Функция dup_mmap, в свою очередь, вызывается из строки функции copy_mm (строка ); a copy_mm вызывается из строки , которая находится в функции do_fork.

Извлечение индекса shm_segs из члена vm_pte данной области VMA, а затем проверка того, что здесь находится допустимый вход. Обратите внимание, что этот индекс не нужно проверять на соответствие диапазону, поскольку поразрядная операция AND, применяемая к величине SHM_ID_MASK (строка ),заставляет его находиться в диапазоне.

Подключает область VMA к данной области и обновляет статистическую информацию данной области.



Содержание раздела