123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- 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.
- - If the function name ends in a "?", then the function not existing is non-
- fatal, and an error will be returned instead of panicking.
- Usage:
- mkwinsyscall [flags] [path ...]
- Flags
- -output string
- Output file name (standard output if omitted).
- -sort
- Sort DLL and function declarations (default true).
- Intended to help transition from older versions of mkwinsyscall by making diffs
- easier to read and understand.
- -systemdll
- Whether all DLLs should be loaded from the Windows system directory (default true).
- -trace
- Generate print statement after every syscall.
- -utf16
- Encode string arguments as UTF-16 for syscalls not ending in 'A' or 'W' (default true).
- -winio
- Import this package ("github.com/Microsoft/go-winio").
- */
- package main
|