author | Olivier Brunel
<jjk@jjacky.com> 2023-03-14 18:34:20 UTC |
committer | Olivier Brunel
<jjk@jjacky.com> 2023-03-14 18:34:20 UTC |
parent | 61fdcd583077ce4f32c765bc307eb2de1af4bcb0 |
doc/blake3.h.0.md | +41 | -0 |
doc/buffer.h.0.md | +32 | -0 |
doc/direntry.h.0.md | +27 | -0 |
doc/djbunix.h.0.md | +71 | -0 |
doc/exitcode.h.0.md | +70 | -0 |
doc/hlookup.h.0.md | +34 | -0 |
doc/hmap.h.0.md | +46 | -0 |
doc/int.h.0.md | +47 | -0 |
doc/nextsplit.h.0.md | +31 | -0 |
doc/output.h.0.md | +122 | -0 |
doc/saencdata.h.0.md | +21 | -0 |
doc/samisc.h.0.md | +28 | -0 |
doc/sha3.h.0.md | +41 | -0 |
doc/u16.h.0.md | +126 | -0 |
doc/u32.h.0.md | +126 | -0 |
doc/u64.h.0.md | +140 | -0 |
doc/uint64.h.0.md | +28 | -0 |
doc/unix-transactional.h.0.md | +36 | -0 |
include/limb/djbunix.h | +1 | -0 |
include/limb/exitcode.h | +1 | -1 |
include/limb/u64.h | +0 | -1 |
include/limb/uint64.h | +1 | -0 |
include/limb/unix-transactional.h | +2 | -0 |
diff --git a/doc/blake3.h.0.md b/doc/blake3.h.0.md new file mode 100644 index 0000000..b4390e2 --- /dev/null +++ b/doc/blake3.h.0.md @@ -0,0 +1,41 @@ +% limb manual +% blake3.h(0) +% limb 0.0.2 +% 2023-02-03 + +# NAME + +blake3.h - BLAKE3 message digest + +# SYNOPSIS + + #include <limb/blake3.h> + +# DESCRIPTION + +This header defines the required function to compute the BLAKE3 hash of a given +block of data. + +## Types + +The following types are defined : + +: *blake3_ctx* +:: An opaque structure to be given to the functions below. + +## Functions + +The following functions are defined : + +: [blake3_init](3) +:: To initialize a blake3 context. + +: [blake3_update](3) +:: To feed data into the blake3 context. + +: [blake3_final](3) +:: To obtain the hash from a blake3 context. + +: [blake3](3) +:: Convenience function to do all of the above at once, when the entire data is +:: available in a single block. diff --git a/doc/buffer.h.0.md b/doc/buffer.h.0.md new file mode 100644 index 0000000..d2074f0 --- /dev/null +++ b/doc/buffer.h.0.md @@ -0,0 +1,32 @@ +% limb manual +% buffer.h(0) + +# NAME + +buffer.h - I/O buffer interface + +# SYNOPSIS + + #include <limb/buffer.h> + +# DESCRIPTION + +This header defines required functions to performed buffered I/O operations. + +! INFO: skalibs +! This header is a complement to skalibs' own [skalibs/buffer.h](0) and thusly +! includes said header. + +## Functions + +The following functions are defined : + +: [buffer_putescall](3) +:: To write given data from a specified offset whilst escaping characters as +:: needed. + +: [buffer_putesc](3) +:: Similar but without a starting offset into given data. + +: [buffer_putescs](3) +:: Similar but for a NUL-terminated string. diff --git a/doc/direntry.h.0.md b/doc/direntry.h.0.md new file mode 100644 index 0000000..becdd7b --- /dev/null +++ b/doc/direntry.h.0.md @@ -0,0 +1,27 @@ +% limb manual +% direntry.h(0) + +# NAME + +direntry.h - directory operations + + +# SYNOPSIS + + #include <limb/direntry.h> + + +# DESCRIPTION + +The header defines the needed functions to deal with directory streams. + +! INFO: skalibs +! This header is a complement to skalibs' own [skalibs/direntry.h](0) and thusly +! includes said header. + +## Functions + +The following functions are defined : + +: [opendirat](3) +:: Open a directory stream, with relative path to a given file descriptor diff --git a/doc/djbunix.h.0.md b/doc/djbunix.h.0.md new file mode 100644 index 0000000..9e6880e --- /dev/null +++ b/doc/djbunix.h.0.md @@ -0,0 +1,71 @@ +% limb manual +% djbunix.h(0) + +# NAME + +djbunix.h - standard I/O and other Unix system calls interfaces + +# SYNOPSIS + + #include <limb/djbunix.h> + +# DESCRIPTION + +`djbunix` offers alternative API to basic Unix concepts, dealing with I/O +operations, file descriptors, environment, child processes, and so on. + +! INFO: skalibs +! This header is a complement to skalibs' own [skalibs/djbunix.h](0) and thusly +! includes said header. + +## Functions + +The following functions/macros are defined : + +: [rm_rfat](3) +:: Remove an entire directory entry, with relative path based on given file +:: descriptor + +: [rm_rf_tmpat](3) +: Different interface, using the given stralloc as head-allocated temporary +:: space + +: [rm_rf_in_tmpat](3) +:: Different interface, expecting the name to be found as NUL-terminated string +:: inside the given stralloc + + +: [rmstarat](3) +:: Remove the full content of a directory, with relative path based on given +:: file descriptor + +: [rmstar_tmpat](3) +: Different interface, using the given stralloc as head-allocated temporary +:: space + +: [rmstar_in_tmpat](3) +:: Different interface, expecting the name to be found as NUL-terminated string +:: inside the given stralloc + + +: [salsat](3) +:: Appends the names of all files in a directory into the given stralloc + + +: [salst](3) +:: Slightly different interface than [sals](3), having the stralloc as first +:: argument + +: [salstat](3) +:: Slightly different interface than [salsat](3), having the stralloc as first +:: argument + + +: [sareadlink0](3) +:: Similar to [sareadlink](3) but ensures the content is NUL-terminated + +: [sareadlinkat](3) +:: Place the content of a symbolic link into the given stralloc + +: [sareadlinkat0](3) +:: Similar to [sareadlinkat](3) but ensures the content is NUL-terminated diff --git a/doc/exitcode.h.0.md b/doc/exitcode.h.0.md new file mode 100644 index 0000000..7b7c5e9 --- /dev/null +++ b/doc/exitcode.h.0.md @@ -0,0 +1,70 @@ +% limb manual +% exitcode.h(0) + +# NAME + +exitcode.h - standardized exit codes + + +# SYNOPSIS + + #include <limb/exitcode.h> + + +# DESCRIPTION + +The header defines some standardized exit codes aimed to provide consistency +amongst applications. They are based upon/taken from BSD's own `sysexits.h` + +## Constants + +The following constants are defined : + +: *EX_USAGE* +:: Incorrect usage. + +: *EX_DATA_ERR* +:: Invalid input/user data. + +: *EX_NOINPUT* +:: Input/user file missing or not readable. + +: *EX_NOUSER* +:: Specified user does not exist. + +: *EX_NOHOST* +:: Specified host does not exist. + +: *EX_UNAVAILABLE* +:: Service unavailable, or support file/program does not exist. +:: May also be a catch-all for "something didn't work, don't know what" + +: *EX_SOFTWARE* +:: Internal error. + +: *EX_OSERR* +:: OS error, e.g. cannot fork, cannot create pipe, etc. + +: *EX_OSFILE* +:: System file (e.g. `/etc/passwd`) does not exist, cannot be open, has invalid +:: syntax, etc. + +: *EX_CANTCREAT* +:: (User-specified) output file cannot be created. + +: *EX_IOERR* +:: I/O error. + +: *EX_TEMPFAIL* +:: Temporary error, try again (e.g. no memory). + +: *EX_PROTOCOL* +:: Invalid value during protocol exchange. + +: *EX_NOPERM* +:: Permission denied. +:: ! INFO: Recommendation +:: ! Make sure to use *EX_NOINPUT* or *EX_CANTCREAT* instead if applicable. + +: *EX_CONFIG* +:: Configuration error. diff --git a/doc/hlookup.h.0.md b/doc/hlookup.h.0.md new file mode 100644 index 0000000..cdd6d25 --- /dev/null +++ b/doc/hlookup.h.0.md @@ -0,0 +1,34 @@ +% limb manual +% hlookup.h(0) + +# NAME + +hlookup.h - Fast lookup hashes + + +# SYNOPSIS + + #include <limb/hlookup.h> + +# DESCRIPTION + +The header defines the needed functions to compute fast lookup hashes. Those +hashes are aimed to be used in hash table lookups, *not* for cryptographic +purposes. + +## Functions + +The following functions are defined : + +: [hlookup](3) +:: Compute 32bit hashes of given block of data + +: [hlookup32](3) +:: Return the 32bit hash of given block of data + +: [hlookup64](3) +:: Return the 64bit hash of given block of data + +# SEE ALSO + +[hmap.h](0), [blake3.h](0), [sha3.h](0) diff --git a/doc/hmap.h.0.md b/doc/hmap.h.0.md new file mode 100644 index 0000000..6af3f56 --- /dev/null +++ b/doc/hmap.h.0.md @@ -0,0 +1,46 @@ +% limb manual +% hmap.h(0) + +# NAME + +hmap.h - hash table management + + +# SYNOPSIS + + #include <limb/hmap.h> + +# DESCRIPTION + +The header defines the needed functions to work with hash tables. + +## Constants + +The following constants are defined : + +: *HMAP_ZERO* +:: Value that can be used to initialize a stack-allocated hash table. + +## Structures + +The following structures are defined : + +: *struct hmap* +:: The structure that describes the hash table on which the functions operate, +:: which should be considered opaque. + +## Functions + +The following functions are defined : + +: [hmap_init](3) +:: Initializes an hash table, setting the size of its elements. + +: [hmap_set](3) +:: Sets (or adds) the data associated with the given key. + +: [hmap_get](3) +:: Returns a pointer to the data associated with the given key. + +: [hmap_free](3) +:: Frees all memory allocated by the table. diff --git a/doc/int.h.0.md b/doc/int.h.0.md new file mode 100644 index 0000000..7f2248d --- /dev/null +++ b/doc/int.h.0.md @@ -0,0 +1,47 @@ +% limb manual +% int.h(0) + +# NAME + +int.h - integer types + + +# SYNOPSIS + + #include <limb/int.h> + +# DESCRIPTION + +The header defines some integers types. + +## Types + +The following types are defined : + +: *u8* +:: 8bit unsigned integer + +: *u16* +:: 16bit unsigned integer + +: *u32* +:: 32bit unsigned integer + +: *u64* +:: 64bit unsigned integer + +## Macros + +The following macros are defined : + +: *U8_C*(`u`) +:: Cast number `u` to an *u8* + +: *U16_C*(`u`) +:: Cast number `u` to an *u16* + +: *U32_C*(`u`) +:: Cast number `u` to an *u32* + +: *U64_C*(`u`) +:: Cast number `u` to an *u64* diff --git a/doc/nextsplit.h.0.md b/doc/nextsplit.h.0.md new file mode 100644 index 0000000..ea5434a --- /dev/null +++ b/doc/nextsplit.h.0.md @@ -0,0 +1,31 @@ +% limb manual +% nextsplit.h(0) + +# NAME + +nextplit.h - finding the next split for variable-length chunks in a data stream + + +# SYNOPSIS + + #include <limb/nextsplit.h> + +# DESCRIPTION + +This header defines functions to determine the next split for variable-length +chunks in a data stream. + +## Functions + +The following functions are defined : + +: [nextsplit_ae](3) +:: Use Asymmetric Extremum Content Defined Chunking to determine the next split +:: in a given data block + +: [nextsplit_buz](3) +:: Use buzhash rolling hash to determine the next split in a given data block + +: [nextsplit_rabin](3) +:: Use rolling hash based on Rabin fingerprint to determine next split in a +:: given data block diff --git a/doc/output.h.0.md b/doc/output.h.0.md new file mode 100644 index 0000000..63642cc --- /dev/null +++ b/doc/output.h.0.md @@ -0,0 +1,122 @@ +% limb manual +% output.h(0) + +# NAME + +output.h - writing to stdout/stderr + + +# SYNOPSIS + + #include <limb/output.h> + +# DESCRIPTION + +This header defines functions used to write messages/warnings to stdout or +stderr. + +## Constants + +The following constants are defined : + +: *ESC* +:: Special value that can be passed as a string to [put](3) (and related macros) +:: to enable escaping mode for following strings (up to the next *ESC*) + +: *PUT_SYS* +:: Option to [put](3) to have the error description of `errno` suffixed + +: *PUT_DIE* +:: Option to [put](3) to end program execution using given exit code + +: *PUT_LFF* +:: Option to [put](3) to add a LF and flush the buffer + +## Functions + +The following functions/macros are defined : + +: [add](3) +:: Write given strings to *stdout* + +: [adde](3) +:: Write given strings to *stderr* + +: [die](3) +:: Same as [errdie](3) but prefixed with "*PROG*: " + +: [dief](3) +:: Same as [die](3) but with an extra "fatal: " + +: [diefu](3) +:: Same as [dief](3) but with an extra "unable to " + +: [diesys](3) +:: Same as [sysdie](3) but prefixed with "*PROG*: " + +: [diefsys](3) +:: Same as [diesys](3) but with an extra "fatal: " + +: [diefusys](3) +:: Same as [diefsys](3) but with an extra "unable to " + +: [diehelp](3) +:: Write given usage string to *stderr* prefixed with "usage: *PROG* ", a blank +:: line, then the help string; and end program execution using given exit code + +: [dieusage](3) +:: Write given string to *stderr* prefixed with "usage: *PROG* " and end +:: program execution using given exit code + +: [dieversion](3) +:: Write a version and copyright message to *stdout* + +: [err](3) +:: Write given strings to *stderr*, add a LF and flush the buffer + +: [errdie](3) +:: Same as [err](3) but ends program execution using given exit code + +: [out](3) +:: Write given strings to *stdout*, add a LF and flush the buffer + +: [outdie](3) +:: Same as [out](3) but ends program execution using given exit code + +: [put](3) +:: Write given array of strings to given buffer, optionally the error +:: description and/or aborting program execution + +: [sys](3) +:: Write given strings to *stderr*, add a LF and flush the buffer + +: [sysdie](3) +:: Same as [sys](3) but ends program execution using given exit code + +: [warn](3) +:: Write a warning to *stderr* + +: [warnsys](3) +:: Write a warning to *stderr* followed by the error description + +: [warnu](3) +:: Same as [warn](3) but starting the warning with "unable to " + +: [warnusys](3) +:: Same as [warnsys](3) but starting the warning with "unable to " + +## Macros + +The following macros are defined : + +: [retw](3) +:: same as [warn](3) then return the given value + +: [retwu](3) +:: same as [warnu](3) then return the given value + +: [retwsys](3) +:: same as [warnsys](3) then return the given value + +: [retwusys](3) +:: same as [warnusys](3) then return the given value diff --git a/doc/saencdata.h.0.md b/doc/saencdata.h.0.md new file mode 100644 index 0000000..7f1e0c7 --- /dev/null +++ b/doc/saencdata.h.0.md @@ -0,0 +1,21 @@ +% limb manual +% saencdata.h(0) + +# NAME + +saencdata.h - encode data into stralloc + +# SYNOPSIS + + #include <limb/saencdata.h> + +# DESCRIPTION + +The header defines functions used to encode data into a given stralloc. + +## Functions + +The following functions are defined : + +: [saencdata](3) +:: Encode given data into given stralloc diff --git a/doc/samisc.h.0.md b/doc/samisc.h.0.md new file mode 100644 index 0000000..c7ddfc4 --- /dev/null +++ b/doc/samisc.h.0.md @@ -0,0 +1,28 @@ +% limb manual +% samisc.h(0) + +# NAME + +samisc.h - miscellaneous functions dealing with stralloc + +# SYNOPSIS + + #include <limb/samisc.h> + +# DESCRIPTION + +The header defines helper functions when working with stralloc. + +## Functions + +The following functions are defined : + +: [sacoloff](3) +:: Collect NUL-terminated strings from the given stralloc and store their +:: offsets into it + +: [sacolptr](3) +:: Same as [sacoloff](3) but stores pointers to the strings + +: [saoff2ptr](3) +:: Transform an array of offsets into an array of pointers from an stralloc diff --git a/doc/sha3.h.0.md b/doc/sha3.h.0.md new file mode 100644 index 0000000..41a0755 --- /dev/null +++ b/doc/sha3.h.0.md @@ -0,0 +1,41 @@ +% limb manual +% sha3.h(0) +% limb 0.0.2 +% 2023-02-03 + +# NAME + +sha3.h - SHA3 message digest + +# SYNOPSIS + + #include <limb/sha3.h> + +# DESCRIPTION + +This header defines the required function to compute the SHA3 hash of a given +block of data. + +## Types + +The following types are defined : + +: *sha3_ctx* +:: An opaque structure to be given to the functions below. + +## Functions + +The following functions are defined : + +: [sha3_init](3) +:: To initialize a sha3 context. + +: [sha3_update](3) +:: To feed data into the sha3 context. + +: [sha3_final](3) +:: To obtain the hash from a sha3 context. + +: [sha3](3) +:: Convenience function to do all of the above at once, when the entire data is +:: available in a single block. diff --git a/doc/u16.h.0.md b/doc/u16.h.0.md new file mode 100644 index 0000000..59a947b --- /dev/null +++ b/doc/u16.h.0.md @@ -0,0 +1,126 @@ +% limb manual +% u16.h(0) + +# NAME + +u16.h - 16bit unsigned integers + +# SYNOPSIS + + #include <limb/u16.h> + +# DESCRIPTION + +This header defines functions allowing to work with 16bit unsigned integers. +It is mainly composed of macros to their `uint16_*` counterparts, offering +slightly different interfaces. + +## Constants + +The following constants are defined : + +: *U16_FMT* +:: Maximum length for a byte array that can hold an u16 value in decimal +:: representation, plus a NUL-terminating byte + +: *U16_FMTG* +:: Same as *U16_FMT* but with thousand-separators + +: *U16_BFMT* +:: Same as *U16_FMT* but for binary + +: *U16_OFMT* +:: Same as *U16_FMT* but for octal + +: *U16_XFMT* +:: Same as *U16_FMT* but for hexadecimal + +## Functions + +The following functions/macros are defined : + +: [u16_be](3) +:: Same as [uint16_big](3) + +: [u16_le](3) +:: Same as [uint16_little](3) + +: [u16p_be](3) +:: Same as [uint16_bigp](3) + +: [u16p_le](3) +:: Same as [uint16_littlep](3) + +: [u16pa_be](3) +:: Same as [uint16_bign](3) + +: [u16pa_le](3) +:: Same as [uint16_littlen](3) + +: [u16_pack](3) +:: Same as [uint16_pack](3) + +: [u16_unpack](3) +:: Same as [uint16_unpack](3) + +: [u16_pack_big](3) +:: Same as [uint16_pack_big](3) + +: [u16_unpack_big](3) +:: Same as [uint16_unpack_big](3) + +: [u16_fmt](3) +:: Print u16 value as decimal into given byte array + +: [u16_fmtg](3) +:: Print u16 value as decimal, using coma as thousand separator, into given byte +:: array + +: [u16_bfmt](3) +:: Same as [u16_fmt](3) but as binary + +: [u16_ofmt](3) +:: Same as [u16_fmt](3) but as octal + +: [u16_xfmt](3) +:: Same as [u16_fmt](3) but as hexadecimal + +: [u160_fmt](3) +:: Same as [u16_fmt](3) but filling with zeroes if less than given size + +: [u160_fmtg](3) +:: Same as [u16_fmtg](3) but filling with zeroes if less than given size + +: [u160_bfmt](3) +:: Same as [u16_bfmt](3) but filling with zeroes if less than given size + +: [u160_ofmt](3) +:: Same as [u16_ofmt](3) but filling with zeroes if less than given size + +: [u160_xfmt](3) +:: Same as [u16_xfmt](3) but filling with zeroes if less than given size + +: [u16_scan](3) +:: Read given byte array for decimal u16 value and load into given variable + +: [u16_bscan](3) +:: Same as [u16_scan](3) but for binary value + +: [u16_oscan](3) +:: Same as [u16_scan](3) but for octal value + +: [u16_xscan](3) +:: Same as [u16_scan](3) but for hexadecimal value + +: [u160_scan](3) +:: Same as [u16_scan](3) but expects a NUL-terminated string + +: [u160_bscan](3) +:: Same as [u16_bscan](3) but expects a NUL-terminated string + +: [u160_oscan](3) +:: Same as [u16_oscan](3) but expects a NUL-terminated string + +: [u160_xscan](3) +:: Same as [u16_xscan](3) but expects a NUL-terminated string + diff --git a/doc/u32.h.0.md b/doc/u32.h.0.md new file mode 100644 index 0000000..9b12ebb --- /dev/null +++ b/doc/u32.h.0.md @@ -0,0 +1,126 @@ +% limb manual +% u32.h(0) + +# NAME + +u32.h - 32bit unsigned integers + +# SYNOPSIS + + #include <limb/u32.h> + +# DESCRIPTION + +This header defines functions allowing to work with 32bit unsigned integers. +It is mainly composed of macros to their `uint32_*` counterparts, offering +slightly different interfaces. + +## Constants + +The following constants are defined : + +: *U32_FMT* +:: Maximum length for a byte array that can hold an u32 value in decimal +:: representation, plus a NUL-terminating byte + +: *U32_FMTG* +:: Same as *U32_FMT* but with thousand-separators + +: *U32_BFMT* +:: Same as *U32_FMT* but for binary + +: *U32_OFMT* +:: Same as *U32_FMT* but for octal + +: *U32_XFMT* +:: Same as *U32_FMT* but for hexadecimal + +## Functions + +The following functions/macros are defined : + +: [u32_be](3) +:: Same as [uint32_big](3) + +: [u32_le](3) +:: Same as [uint32_little](3) + +: [u32p_be](3) +:: Same as [uint32_bigp](3) + +: [u32p_le](3) +:: Same as [uint32_littlep](3) + +: [u32pa_be](3) +:: Same as [uint32_bign](3) + +: [u32pa_le](3) +:: Same as [uint32_littlen](3) + +: [u32_pack](3) +:: Same as [uint32_pack](3) + +: [u32_unpack](3) +:: Same as [uint32_unpack](3) + +: [u32_pack_big](3) +:: Same as [uint32_pack_big](3) + +: [u32_unpack_big](3) +:: Same as [uint32_unpack_big](3) + +: [u32_fmt](3) +:: Print u32 value as decimal into given byte array + +: [u32_fmtg](3) +:: Print u32 value as decimal, using coma as thousand separator, into given byte +:: array + +: [u32_bfmt](3) +:: Same as [u32_fmt](3) but as binary + +: [u32_ofmt](3) +:: Same as [u32_fmt](3) but as octal + +: [u32_xfmt](3) +:: Same as [u32_fmt](3) but as hexadecimal + +: [u320_fmt](3) +:: Same as [u32_fmt](3) but filling with zeroes if less than given size + +: [u320_fmtg](3) +:: Same as [u32_fmtg](3) but filling with zeroes if less than given size + +: [u320_bfmt](3) +:: Same as [u32_bfmt](3) but filling with zeroes if less than given size + +: [u320_ofmt](3) +:: Same as [u32_ofmt](3) but filling with zeroes if less than given size + +: [u320_xfmt](3) +:: Same as [u32_xfmt](3) but filling with zeroes if less than given size + +: [u32_scan](3) +:: Read given byte array for decimal u32 value and load into given variable + +: [u32_bscan](3) +:: Same as [u32_scan](3) but for binary value + +: [u32_oscan](3) +:: Same as [u32_scan](3) but for octal value + +: [u32_xscan](3) +:: Same as [u32_scan](3) but for hexadecimal value + +: [u320_scan](3) +:: Same as [u32_scan](3) but expects a NUL-terminated string + +: [u320_bscan](3) +:: Same as [u32_bscan](3) but expects a NUL-terminated string + +: [u320_oscan](3) +:: Same as [u32_oscan](3) but expects a NUL-terminated string + +: [u320_xscan](3) +:: Same as [u32_xscan](3) but expects a NUL-terminated string + diff --git a/doc/u64.h.0.md b/doc/u64.h.0.md new file mode 100644 index 0000000..1dc27ab --- /dev/null +++ b/doc/u64.h.0.md @@ -0,0 +1,140 @@ +% limb manual +% u64.h(0) + +# NAME + +u64.h - 64bit unsigned integers + +# SYNOPSIS + + #include <limb/u64.h> + +# DESCRIPTION + +This header defines functions allowing to work with 64bit unsigned integers. +It is mainly composed of macros to their `uint64_*` counterparts, offering +slightly different interfaces. + +## Constants + +The following constants are defined : + +: *U64_FMT* +:: Maximum length for a byte array that can hold an u64 value in decimal +:: representation, plus a NUL-terminating byte + +: *U64_FMTG* +:: Same as *U64_FMT* but with thousand-separators + +: *U64_BFMT* +:: Same as *U64_FMT* but for binary + +: *U64_OFMT* +:: Same as *U64_FMT* but for octal + +: *U64_XFMT* +:: Same as *U64_FMT* but for hexadecimal + +## Functions + +The following functions/macros are defined : + +: [u64_be](3) +:: Same as [uint64_big](3) + +: [u64_le](3) +:: Same as [uint64_little](3) + +: [u64p_be](3) +:: Same as [uint64_bigp](3) + +: [u64p_le](3) +:: Same as [uint64_littlep](3) + +: [u64pa_be](3) +:: Same as [uint64_bign](3) + +: [u64pa_le](3) +:: Same as [uint64_littlen](3) + +: [u64_pack](3) +:: Same as [uint64_pack](3) + +: [u64_unpack](3) +:: Same as [uint64_unpack](3) + +: [u64_pack_big](3) +:: Same as [uint64_pack_big](3) + +: [u64_unpack_big](3) +:: Same as [uint64_unpack_big](3) + +: [u64_pack_trim](3) +:: Same as [uint64_pack_trim](3) + +: [u64_unpack_trim](3) +:: Same as [uint64_unpack_trim](3) + +: [u64_fmt](3) +:: Print u64 value as decimal into given byte array + +: [u64_fmtg](3) +:: Print u64 value as decimal, using coma as thousand separator, into given byte +:: array + +: [u64_bfmt](3) +:: Same as [u64_fmt](3) but as binary + +: [u64_ofmt](3) +:: Same as [u64_fmt](3) but as octal + +: [u64_xfmt](3) +:: Same as [u64_fmt](3) but as hexadecimal + +: [u640_fmt](3) +:: Same as [u64_fmt](3) but filling with zeroes if less than given size + +: [u640_fmtg](3) +:: Same as [u64_fmtg](3) but filling with zeroes if less than given size + +: [u640_bfmt](3) +:: Same as [u64_bfmt](3) but filling with zeroes if less than given size + +: [u640_ofmt](3) +:: Same as [u64_ofmt](3) but filling with zeroes if less than given size + +: [u640_xfmt](3) +:: Same as [u64_xfmt](3) but filling with zeroes if less than given size + +: [u64_fmt_generic](3) +:: Print u64 value into given byte array, encoded in specified base and +optionally grouped using given separator + +: [u640_fmt_generic](3) +:: Same as [u64_fmt_generic](3) but filling with given character if less than +:: specified size. + +: [u64_scan](3) +:: Read given byte array for decimal u64 value and load into given variable + +: [u64_bscan](3) +:: Same as [u64_scan](3) but for binary value + +: [u64_oscan](3) +:: Same as [u64_scan](3) but for octal value + +: [u64_xscan](3) +:: Same as [u64_scan](3) but for hexadecimal value + +: [u640_scan](3) +:: Same as [u64_scan](3) but expects a NUL-terminated string + +: [u640_bscan](3) +:: Same as [u64_bscan](3) but expects a NUL-terminated string + +: [u640_oscan](3) +:: Same as [u64_oscan](3) but expects a NUL-terminated string + +: [u640_xscan](3) +:: Same as [u64_xscan](3) but expects a NUL-terminated string + diff --git a/doc/uint64.h.0.md b/doc/uint64.h.0.md new file mode 100644 index 0000000..90adc28 --- /dev/null +++ b/doc/uint64.h.0.md @@ -0,0 +1,28 @@ +% limb manual +% uint64.h(0) + +# NAME + +uint64.h - 64bit unsigned integers + +# SYNOPSIS + + #include <limb/uint64.h> + +# DESCRIPTION + +This header defines functions allowing to work with 64bit unsigned integers. + +! INFO: skalibs +! This header is a complement to skalibs' own [skalibs/uint64.h](0) and thusly +! includes said header. + +## Functions + +The following functions are defined : + +: [uint64_pack_trim](3) +:: Store given value into given byte array, trimming "unneeded" bits + +: [uint64_unpack_trim](3) +:: Read given byte array and load value into given variable diff --git a/doc/unix-transactional.h.0.md b/doc/unix-transactional.h.0.md new file mode 100644 index 0000000..b48d1c9 --- /dev/null +++ b/doc/unix-transactional.h.0.md @@ -0,0 +1,36 @@ +% limb manual +% unix-transactional.h(0) + +# NAME + +unix-transactional.h - transactional filesystem operations + +# SYNOPSIS + + #include <limb/unix-transactional.h> + +# DESCRIPTION + +This header defines functions allowing to perform transactional filesystem +operations. + +! INFO: skalibs +! This header is a complement to skalibs' own [skalibs/unix-transactional.h](0) +! and thusly includes said header. + +## Functions + +The following functions are defined : + +: [open_createat](3) +:: Same as [open_create](3) but relative path are based of given file descriptor + +: [openc_createat](3) +:: Same as [openc_create](3) but relative path are based of given file +:: descriptor + +: [open_exclat](3) +:: Same as [open_excl](3) but relative path are based of given file descriptor + +: [openc_exclat](3) +:: Same as [openc_excl](3) but relative path are based of given file descriptor diff --git a/include/limb/djbunix.h b/include/limb/djbunix.h index 74d4a80..79f46ae 100644 --- a/include/limb/djbunix.h +++ b/include/limb/djbunix.h @@ -1,6 +1,7 @@ #ifndef LIMB_DJBUNIX_H #define LIMB_DJBUNIX_H +#include <skalibs/djbunix.h> #include <skalibs/stralloc.h> extern int rm_rfat(int fd, const char *name); diff --git a/include/limb/exitcode.h b/include/limb/exitcode.h index e68d62d..a7ea7a0 100644 --- a/include/limb/exitcode.h +++ b/include/limb/exitcode.h @@ -33,7 +33,7 @@ enum { EX_TEMPFAIL, /* invalid value during protocol exchange */ EX_PROTOCOL, - /* permession denied. Make sure to use EX_NOINPUT or EX_CANTCREAT if + /* permission denied. Make sure to use EX_NOINPUT or EX_CANTCREAT if * applicable */ EX_NOPERM, /* configuration error */ diff --git a/include/limb/u64.h b/include/limb/u64.h index f66fd20..32b95f3 100644 --- a/include/limb/u64.h +++ b/include/limb/u64.h @@ -1,7 +1,6 @@ #ifndef LIMB_U64_H #define LIMB_U64_H -#include <skalibs/uint64.h> #include "limb/int.h" #include "limb/uint64.h" diff --git a/include/limb/uint64.h b/include/limb/uint64.h index 63feccd..f0a7c2b 100644 --- a/include/limb/uint64.h +++ b/include/limb/uint64.h @@ -1,6 +1,7 @@ #ifndef LIMB_UINT64_H #define LIMB_UINT64_H +#include <skalibs/uint64.h> #include "limb/int.h" extern int msb64(uint64_t val); diff --git a/include/limb/unix-transactional.h b/include/limb/unix-transactional.h index 9a5a8f1..43e7b3a 100644 --- a/include/limb/unix-transactional.h +++ b/include/limb/unix-transactional.h @@ -1,6 +1,8 @@ #ifndef LIMB_UNIXTRANSACTIONAL_H #define LIMB_UNIXTRANSACTIONAL_H +#include <skalibs/unix-transactional.h> + extern int openc_createat(int fd, const char *file); extern int open_createat(int fd, const char *file); extern int openc_exclat(int fd, const char *file);