Функції munmap () і do_munmap (): видалення інтервалу адрес

Функція do_manmap () видаляє інтервал адрес із зазначеного адресного простору процесу Ця функція оголошена у файлі таким чином

int do_munmap(struct mm_struct *mm, unsigned long start, size t_len)

Перший параметр вказує адресний простір, з якого видаляється інтервал адрес, що починається з адреси star t і має довжину le n байт У разі успіху повертається нуль, а в разі помилки – негативне значення

Системний виклик munmap ()

Системний виклик munmap () експортується в адресний простір користувача, щоб мати можливість видаляти інтервали адрес з адресного простору Ця функція є компліментарної до системного викликом mmap () і має наступний прототип

int munmap(void *start, size_t length)

Даний системний виклик реалізований у вигляді дуже простий інтерфейсної оболонки (wrapper) функції do_munmap ()

asmlinkage long sys_munmap(unsigned long addr, size_t len)

{

int ret

struct mm_struct *mm mm = current-&gtmm down_write(&ampmm-&gtmmap_sem)

ret = do_munmap(mm, addr, len)

p_write(&ampmm-&gtmmap_sem)

return ret

}

Джерело: Лав, Роберт Розробка ядра Linux, 2-е видання : Пер з англ – М: ТОВ «ІД Вільямс »2006 – 448 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*