Documentation ¶
Overview ¶
mkwinsyscall generates windows system call bodies
It parses all files specified on command line containing function prototypes (like syscall_windows.go) and prints system call bodies to standard output.
The prototypes are marked by lines beginning with "//sys" and read like func declarations if //sys is replaced by func, but:
- The parameter lists must give a name for each argument. This includes return parameters.
- The parameter lists must give a type for each argument: the (x, y, z int) shorthand is not allowed.
* If the return parameter is an error number, it must be named err.
- If go func name needs to be different from its winapi dll name, the winapi name could be specified at the end, after "=" sign, like //sys LoadLibrary(libname string) (handle uint32, err error) = LoadLibraryA
- Each function that returns err needs to supply a condition, that return value of winapi will be tested against to detect failure. This would set err to windows "last-error", otherwise it will be nil. The value can be provided at end of //sys declaration, like //sys LoadLibrary(libname string) (handle uint32, err error) [failretval==-1] = LoadLibraryA and is [failretval==0] by default.
Usage:
mkwinsyscall [flags] [path ...]
The flags are:
-output Specify output file name (outputs to console if blank). -trace Generate print statement after every syscall.
Click to show internal directories.
Click to hide internal directories.