mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-28 20:25:25 +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_CPU_AFFINITY = UINT64_C(1) << 20,
|
||||||
SETTING_RLIMIT_FIRST = UINT64_C(1) << 21, /* we define one bit per resource limit here */
|
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),
|
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;
|
} 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 {
|
typedef struct Settings {
|
||||||
/* [Run] */
|
/* [Run] */
|
||||||
StartMode start_mode;
|
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);
|
typedef int (*sd_resolve_getnameinfo_handler_t)(sd_resolve_query *q, int ret, const char *host, const char *serv, void *userdata);
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SD_RESOLVE_GET_HOST = UINT64_C(1),
|
SD_RESOLVE_GET_HOST = 1 << 0,
|
||||||
SD_RESOLVE_GET_SERVICE = UINT64_C(2),
|
SD_RESOLVE_GET_SERVICE = 1 << 1,
|
||||||
SD_RESOLVE_GET_BOTH = UINT64_C(3),
|
SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE,
|
||||||
};
|
};
|
||||||
|
|
||||||
int sd_resolve_default(sd_resolve **ret);
|
int sd_resolve_default(sd_resolve **ret);
|
||||||
|
@ -26,7 +26,12 @@ enum Enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum BigEnum {
|
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) {
|
int main(void) {
|
||||||
@ -55,6 +60,10 @@ int main(void) {
|
|||||||
|
|
||||||
info(enum Enum);
|
info(enum Enum);
|
||||||
info(enum BigEnum);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user