Differences From
Artifact [f5443bdd6c]:
39 39
40 40 in the **short** convention, identifiers are prefixed by the letter `k` followed by the module's "glyph" -- a one- or two-letter sequence that represents the module, usually the first one or two characters. therefore, `kfile/open.c` is invoked as `kfopen`.
41 41
42 42 which naming convention a module uses should be specified at the top of its documentation. if it uses the short convention, its glyph should be specified as well
43 43
44 44 in both naming conventions, the following rules apply:
45 45
46 - 1. the possible values of enumeration types are always preceded by the name of the enumeration type and an underscore. for instance, the enum `kschain_kind` has a value named `kschain_kind_block`. **exception:** an enum named `<S>_kind`, where `<S>` is a struct type, may simply use the prefix `<S>_`.
46 + 1. the possible values of enumeration types are always preceded by the name of the enumeration type and an underscore. for instance, the enum `ksalloc` has a value named `ksalloc_static`. **exception:** an enum named `<S>_kind`, where `<S>` is a struct type, may simply use the prefix `<S>_`.
47 47 2. macros begin with the uppercase letter `K` -- e.g. `Kmacro`. macros that can be defined by the user to alter the behavior of the api should begin with `KF` if they are on/off flags, or `KV` otherwise.
48 48 3. capital letters are only used in macro prefixes.
49 49 4. low-level function names are prefixed with the API they call into. for example, the function that performs the POSIX syscall `write` is named `kio_posix_fd_write`.a wrapper around the Windows function `CreateProcess()` might be called `kproc_win_createprocess`.
50 50
51 51 ### atoms
52 52
53 53 libk uses the concept of "atoms" (small, regular strings of text) to standardize common references, such as operating systems or processor architectures.