Причина системного вызова Mutliple в Linux - PullRequest
1 голос
/ 09 сентября 2009

Мне было интересно, что является причиной того, что в Linux есть _syscall0 - _syscall6 для обработки различного количества параметров. Существуют ли какие-либо проблемы безопасности / производительности с использованием только _syscall6 и разрешением вызывающему коду передавать нулевые значения для неиспользуемых параметров?

1 Ответ

1 голос
/ 07 февраля 2010

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

Каждый параметр необходимо переместить из пользовательского интерфейса пользователя в соглашение о передаче параметров внутри ядра.

Кроме того, некоторые из таких системных вызовов по-разному работают с параметрами адреса. Но такое преобразование необходимо для небольшого числа арок.

...