mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-24 21:34:08 +03:00
Merge pull request #9058 from keszybz/fun-with-uint64_c
Fun with UINT64_C
This commit is contained in:
commit
c1104417b7
@ -56,9 +56,19 @@ typedef enum SettingsMask {
|
||||
SETTING_CPU_AFFINITY = UINT64_C(1) << 20,
|
||||
SETTING_RLIMIT_FIRST = UINT64_C(1) << 21, /* we define one bit per resource limit here */
|
||||
SETTING_RLIMIT_LAST = UINT64_C(1) << (21 + _RLIMIT_MAX - 1),
|
||||
_SETTINGS_MASK_ALL = (UINT64_C(1) << (21 + _RLIMIT_MAX)) - 1
|
||||
_SETTINGS_MASK_ALL = (UINT64_C(1) << (21 + _RLIMIT_MAX)) - 1,
|
||||
_FORCE_ENUM_WIDTH = UINT64_MAX
|
||||
} SettingsMask;
|
||||
|
||||
/* We want to use SETTING_RLIMIT_FIRST in shifts, so make sure it is really 64 bits
|
||||
* when used in expressions. */
|
||||
#define SETTING_RLIMIT_FIRST ((uint64_t) SETTING_RLIMIT_FIRST)
|
||||
#define SETTING_RLIMIT_LAST ((uint64_t) SETTING_RLIMIT_LAST)
|
||||
|
||||
assert_cc(sizeof(SettingsMask) == 8);
|
||||
assert_cc(sizeof(SETTING_RLIMIT_FIRST) == 8);
|
||||
assert_cc(sizeof(SETTING_RLIMIT_LAST) == 8);
|
||||
|
||||
typedef struct Settings {
|
||||
/* [Run] */
|
||||
StartMode start_mode;
|
||||
|
@ -43,9 +43,9 @@ typedef int (*sd_resolve_getaddrinfo_handler_t)(sd_resolve_query *q, int ret, co
|
||||
typedef int (*sd_resolve_getnameinfo_handler_t)(sd_resolve_query *q, int ret, const char *host, const char *serv, void *userdata);
|
||||
|
||||
enum {
|
||||
SD_RESOLVE_GET_HOST = UINT64_C(1),
|
||||
SD_RESOLVE_GET_SERVICE = UINT64_C(2),
|
||||
SD_RESOLVE_GET_BOTH = UINT64_C(3),
|
||||
SD_RESOLVE_GET_HOST = 1 << 0,
|
||||
SD_RESOLVE_GET_SERVICE = 1 << 1,
|
||||
SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE,
|
||||
};
|
||||
|
||||
int sd_resolve_default(sd_resolve **ret);
|
||||
|
@ -26,7 +26,12 @@ enum Enum {
|
||||
};
|
||||
|
||||
enum BigEnum {
|
||||
big_enum_value = UINT64_C(-1),
|
||||
big_enum_value = UINT64_C(1),
|
||||
};
|
||||
|
||||
enum BigEnum2 {
|
||||
big_enum2_pos = UINT64_C(1),
|
||||
big_enum2_neg = UINT64_C(-1),
|
||||
};
|
||||
|
||||
int main(void) {
|
||||
@ -55,6 +60,10 @@ int main(void) {
|
||||
|
||||
info(enum Enum);
|
||||
info(enum BigEnum);
|
||||
info(enum BigEnum2);
|
||||
assert_cc(sizeof(enum BigEnum2) == 8);
|
||||
printf("big_enum2_pos → %zu\n", sizeof(big_enum2_pos));
|
||||
printf("big_enum2_neg → %zu\n", sizeof(big_enum2_neg));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user