KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I wanted to check the code for performing system calls in glibc. I found something like this: ENTRY (syscall) movq %rdi, %rax /* Syscall number -> rax. */ movq %rsi, %rdi /* shift arg1 - arg5. */ movq %rdx, %rsi movq %rcx, %rdx movq %r8, %r10 movq %r9, %r8 movq 8(%rsp),%r9 /* arg6 is on the stack. */ syscall /* Do the system call. */ cmpq $-4095, %rax /* Check %rax for error. */ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */ L(pseudo_end): ret /* Return to caller. */ Now my questions are: Is syscall (before the cmpq instruction) an instruction? If it is an instruction, what is the meaning of ENTRY (syscall) ? The same name for an ENTRY (I don't know what an ENTRY is) and instruction? What is L(pseudo_end) ?
Tags (comma-separated)
Save Edits
Cancel