SYSCALL_DEFINE6 (...) - PullRequest
       21

SYSCALL_DEFINE6 (...)

1 голос
/ 18 сентября 2011

Сейчас я изучаю реализацию таблицы страниц в Linux 2.6.38.8. В linux/include/linux/syscall.c я обнаружил, что

#define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)

но я не совсем понимаю, что делает этот кусок кода. Есть несколько веток для

SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) 

и их определение, но код для меня довольно сложен для понимания. Если кто-нибудь знает об этой реализации, научите меня, пожалуйста.

1 Ответ

2 голосов
/ 18 сентября 2011

В основном SYSCALL_DEFINE определяется другим определением, которое называется SYSCALL_DEFINEx. Кроме того, он использовал конкатенацию строк для создания второго параметра, то же имя, которому предшествует символ «_». Кроме того, он использует VA_ARGS (это функция c99), которая передает все указанные параметры в макрос SYSCALL_DEFINEx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...