#define SYSCALL_DEFINEx (х, SNAME, ...)
В ядре 3,14 Linux существует следующий макрос:
#define SYSCALL_DEFINEx(x, sname, ...)
Он расположен в включать/Linux/syscalls.h ,
Я добавил в исходный код syscall, я скомпилировал его, и я сделал небольшую программу, используя syscall. Кажется, это работает, потому что мой syscall был вызван и напечатал сообщение.
Но я не использовал макрос. Я читал об этом. Я понял, что этот макрос для аргументов. Но я не понимаю, когда мы должны использовать его, потому что я сделал «grep», и кажется, что большинство системных вызовов, которые принимают параметры, не используют его.
Должен ли я использовать его? Зачем?
И у меня такая же проблема для других макросов в том же файле (SYSCALL_METADATA (sname, nb, ...), SYSCALL_TRACE_ENTER_EVENT (sname) и т. Д.). Должен ли я использовать их все, даже если мой syscall работает?
Я боюсь пропустить что-то, если я не использую эти макро и я не могу найти достаточно информации об этом:/
Спасибо!
Попробуйте свою программу в обе стороны. Если результат тот же, то вам не нужно, но если он отличается, тогда изучите разницу. – eyoung100
Я пробовал, но я не понимал, в чем разница. Теперь это более ясно. Благодаря! – Kany