Mercurial > pub > dyncall > dyncall
diff doc/manual/callconvs/callconv_x86.tex @ 345:c607d67cd6b8 r1.1-RC2
- doc: added syscall info to appendix, fixed broken literature link
- cleanup, added missing forward declarations, ...
author | Tassilo Philipp |
---|---|
date | Tue, 07 Jan 2020 21:52:57 +0100 |
parents | 6e33db95e724 |
children | b47168dacba6 |
line wrap: on
line diff
--- a/doc/manual/callconvs/callconv_x86.tex Tue Jan 07 11:34:31 2020 +0100 +++ b/doc/manual/callconvs/callconv_x86.tex Tue Jan 07 21:52:57 2020 +0100 @@ -808,21 +808,27 @@ \end{figure} -%@@@ \newpage -%@@@ -%@@@ \subsubsection{Linux syscalls} -%@@@ -%@@@ \paragraph{Parameter passing} -%@@@ -%@@@ \begin{itemize} -%@@@ \item ... -%@@@ \end{itemize} -%@@@ -%@@@ \subsubsection{*BSD syscalls} -%@@@ -%@@@ \paragraph{Parameter passing} -%@@@ -%@@@ \begin{itemize} -%@@@ \item ... -%@@@ \end{itemize} +\newpage + +\subsubsection{Linux syscalls} + +\paragraph{Parameter passing} +\begin{itemize} +\item syscall is issued by triggering {\em interrupt 80h} +\item syscall number is set in eax +\item params are passed in the following registers in this order: ebx, ecx, edx, esi, edi, ebp +\item for more than six arguments, ebx points to the list of further arguments (not used in practice, as Linux syscalls use a maximum of 5 arguments) +\item register eax holds the return value +\end{itemize} + +\subsubsection{*BSD syscalls} + +\paragraph{Parameter passing} + +\begin{itemize} +\item syscall is issued by triggering {\em interrupt 80h} +\item syscall number is set in eax +\item params are passed on the stack as with the cdecl calling convention +\end{itemize} +