diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-09-10 18:16:18 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-09-10 18:16:18 +0200 |
commit | 59f448cf15f94bc5ebfd5b254de6f2441d02fbec (patch) | |
tree | 1d52fd0935cca0205c78fde6870abddb7aafd360 /CODING_STYLE | |
parent | Merge pull request #1226 from poettering/coccinelle-fixes3 (diff) | |
download | systemd-59f448cf15f94bc5ebfd5b254de6f2441d02fbec.tar.gz systemd-59f448cf15f94bc5ebfd5b254de6f2441d02fbec.tar.bz2 systemd-59f448cf15f94bc5ebfd5b254de6f2441d02fbec.zip |
tree-wide: never use the off_t unless glibc makes us use it
off_t is a really weird type as it is usually 64bit these days (at least
in sane programs), but could theoretically be 32bit. We don't support
off_t as 32bit builds though, but still constantly deal with safely
converting from off_t to other types and back for no point.
Hence, never use the type anymore. Always use uint64_t instead. This has
various benefits, including that we can expose these values directly as
D-Bus properties, and also that the values parse the same in all cases.
Diffstat (limited to 'CODING_STYLE')
-rw-r--r-- | CODING_STYLE | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/CODING_STYLE b/CODING_STYLE index f13f9becb..98d99dcda 100644 --- a/CODING_STYLE +++ b/CODING_STYLE @@ -311,3 +311,13 @@ always-true expression for an infinite while() loop is our recommendation is to simply write it without any such expression by using "for (;;)". + +- Never use the "off_t" type, and particularly avoid it in public + APIs. It's really weirdly defined, as it usually is 64bit and we + don't support it any other way, but it could in theory also be + 32bit. Which one it is depends on a compiler switch chosen by the + compiled program, which hence corrupts APIs using it unless they can + also follow the program's choice. Moreover, in systemd we should + parse values the same way on all architectures and cannot expose + off_t values over D-Bus. To avoid any confusion regarding conversion + and ABIs, always use simply uint64_t directly. |