Как вы проверяете системный вызов для x86_64? - PullRequest
4 голосов
/ 30 июня 2011

Я не могу найти специальный официальный сайт для поиска такой информации.

Например, если я хочу сделать exit, как мне это сделать с syscall, представленным в x86_64?

Любое руководство для такого рода деталей?

Я нахожусь на Centos.

Ответы [ 2 ]

1 голос
/ 02 июля 2011

Пусть библиотека C сделает это за вас:

movl $0, %rdi  # or whatever exit code you want (0-127)
call _exit

Вы действительно не хотите делать системные вызовы самостоятельно. Библиотека C изолирует вас от множества низкоуровневых проблем ABI (многие системные вызовы существуют в более чем одной версии, в зависимости от того, какое именно ядро ​​у вас есть; некоторые из них не требуют фактического прерывания в режиме супервизора и т. Д.), он знает, как установить errno, и выберет наиболее эффективную последовательность прерываний для архитектуры и версии ядра.

1 голос
/ 30 июня 2011

Глибц sysdeps/unix/sysv/linux/x86_64/syscall.S, посмотрите, поможет ли это.

...