'-Wall',
'-Wextra',
'-Werror',
+ '-pedantic',
+ '-Wno-long-long',
+ '-Wno-variadic-macros',
'-include', meson.current_source_dir() / header,
'-o/dev/null',
'/dev/null'])
_SD_BUS_VTABLE_WRITABLE_PROPERTY = 'W'
};
-enum {
+__extension__ enum {
SD_BUS_VTABLE_DEPRECATED = 1ULL << 0,
SD_BUS_VTABLE_HIDDEN = 1ULL << 1,
SD_BUS_VTABLE_UNPRIVILEGED = 1ULL << 2,
#define SD_BUS_VTABLE_CAPABILITY(x) ((uint64_t) (((x)+1) & 0xFFFF) << 40)
enum {
- _SD_BUS_VTABLE_PARAM_NAMES = 1 << 0,
+ _SD_BUS_VTABLE_PARAM_NAMES = 1 << 0
};
extern const unsigned sd_bus_object_vtable_format;
/* Please do not initialize this structure directly, use the
* macros below instead */
- uint8_t type:8;
- uint64_t flags:56;
+ __extension__ uint8_t type:8;
+ __extension__ uint64_t flags:56;
union {
struct {
size_t element_size;
/* Flags */
-enum {
+__extension__ enum {
SD_BUS_CREDS_PID = 1ULL << 0,
SD_BUS_CREDS_TID = 1ULL << 1,
SD_BUS_CREDS_PPID = 1ULL << 2,
_SD_BUS_CREDS_ALL = (1ULL << 34) -1
};
-enum {
+__extension__ enum {
SD_BUS_NAME_REPLACE_EXISTING = 1ULL << 0,
SD_BUS_NAME_ALLOW_REPLACEMENT = 1ULL << 1,
SD_BUS_NAME_QUEUE = 1ULL << 2
};
-enum {
+__extension__ enum {
SD_BUS_MESSAGE_DUMP_WITH_HEADER = 1ULL << 0,
- SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1,
+ SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1
};
/* Callbacks */
typedef struct sd_device_enumerator sd_device_enumerator;
typedef struct sd_device_monitor sd_device_monitor;
-typedef enum sd_device_action_t {
+__extension__ typedef enum sd_device_action_t {
SD_DEVICE_ADD,
SD_DEVICE_REMOVE,
SD_DEVICE_CHANGE,
SD_DEVICE_UNBIND,
_SD_DEVICE_ACTION_MAX,
_SD_DEVICE_ACTION_INVALID = -EINVAL,
- _SD_ENUM_FORCE_S64(DEVICE_ACTION),
+ _SD_ENUM_FORCE_S64(DEVICE_ACTION)
} sd_device_action_t;
/* callback */
SD_DHCP_CLIENT_EVENT_EXPIRED = 3,
SD_DHCP_CLIENT_EVENT_RENEW = 4,
SD_DHCP_CLIENT_EVENT_SELECTING = 5,
- SD_DHCP_CLIENT_EVENT_TRANSIENT_FAILURE = 6, /* Sent when we have not received a reply after the first few attempts.
- * The client may want to start acquiring link-local addresses. */
+ SD_DHCP_CLIENT_EVENT_TRANSIENT_FAILURE = 6 /* Sent when we have not received a reply after the first few attempts.
+ * The client may want to start acquiring link-local addresses. */
};
/* https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml#options */
SD_DHCP_OPTION_PRIVATE_CLASSLESS_STATIC_ROUTE = 249, /* [RFC7844] */
SD_DHCP_OPTION_PRIVATE_PROXY_AUTODISCOVERY = 252, /* [RFC7844] */
SD_DHCP_OPTION_PRIVATE_LAST = 254,
- SD_DHCP_OPTION_END = 255, /* [RFC2132] */
+ SD_DHCP_OPTION_END = 255 /* [RFC2132] */
};
/* Suboptions for SD_DHCP_OPTION_RELAY_AGENT_INFORMATION option */
enum {
SD_DHCP_RELAY_AGENT_CIRCUIT_ID = 1,
- SD_DHCP_RELAY_AGENT_REMOTE_ID = 2,
+ SD_DHCP_RELAY_AGENT_REMOTE_ID = 2
};
typedef struct sd_dhcp_client sd_dhcp_client;
uint8_t type,
const uint8_t *data,
size_t data_len);
-int sd_dhcp_client_set_iaid_duid(
+__extension__ int sd_dhcp_client_set_iaid_duid(
sd_dhcp_client *client,
bool iaid_set,
uint32_t iaid,
uint16_t duid_type,
const void *duid,
size_t duid_len);
-int sd_dhcp_client_set_iaid_duid_llt(
+__extension__ int sd_dhcp_client_set_iaid_duid_llt(
sd_dhcp_client *client,
bool iaid_set,
uint32_t iaid,
sd_dhcp_lease *sd_dhcp_lease_ref(sd_dhcp_lease *lease);
sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease);
-typedef enum sd_dhcp_lease_server_type_t {
+__extension__ typedef enum sd_dhcp_lease_server_type_t {
SD_DHCP_LEASE_DNS,
SD_DHCP_LEASE_NTP,
SD_DHCP_LEASE_SIP,
SD_DHCP_LEASE_LPR,
_SD_DHCP_LEASE_SERVER_TYPE_MAX,
_SD_DHCP_LEASE_SERVER_TYPE_INVALID = -EINVAL,
- _SD_ENUM_FORCE_S64(DHCP_LEASE_SERVER_TYPE),
+ _SD_ENUM_FORCE_S64(DHCP_LEASE_SERVER_TYPE)
} sd_dhcp_lease_server_type_t;
int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr);
typedef struct sd_dhcp_server sd_dhcp_server;
enum {
- SD_DHCP_SERVER_EVENT_LEASE_CHANGED = 1 << 0,
+ SD_DHCP_SERVER_EVENT_LEASE_CHANGED = 1 << 0
};
int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex);
SD_DHCP6_CLIENT_EVENT_RESEND_EXPIRE = 10,
SD_DHCP6_CLIENT_EVENT_RETRANS_MAX = 11,
SD_DHCP6_CLIENT_EVENT_IP_ACQUIRE = 12,
- SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST = 13,
+ SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST = 13
};
/* https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#dhcpv6-parameters-2 */
SD_DHCP6_OPTION_SLAP_QUAD = 140, /* RFC 8948 */
SD_DHCP6_OPTION_V6_DOTS_RI = 141, /* RFC 8973 */
SD_DHCP6_OPTION_V6_DOTS_ADDRESS = 142, /* RFC 8973 */
- SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF = 143, /* RFC 6153 */
+ SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF = 143 /* RFC 6153 */
/* option codes 144-65535 are unassigned */
};
enum {
SD_IPV4ACD_EVENT_STOP = 0,
SD_IPV4ACD_EVENT_BIND = 1,
- SD_IPV4ACD_EVENT_CONFLICT = 2,
+ SD_IPV4ACD_EVENT_CONFLICT = 2
};
typedef struct sd_ipv4acd sd_ipv4acd;
int sd_ipv4acd_get_ifname(sd_ipv4acd *acd, const char **ret);
int sd_ipv4acd_set_address(sd_ipv4acd *acd, const struct in_addr *address);
int sd_ipv4acd_is_running(sd_ipv4acd *acd);
-int sd_ipv4acd_start(sd_ipv4acd *acd, bool reset_conflicts);
+__extension__ int sd_ipv4acd_start(sd_ipv4acd *acd, bool reset_conflicts);
int sd_ipv4acd_stop(sd_ipv4acd *acd);
sd_ipv4acd *sd_ipv4acd_ref(sd_ipv4acd *acd);
sd_ipv4acd *sd_ipv4acd_unref(sd_ipv4acd *acd);
enum {
SD_IPV4LL_EVENT_STOP = 0,
SD_IPV4LL_EVENT_BIND = 1,
- SD_IPV4LL_EVENT_CONFLICT = 2,
+ SD_IPV4LL_EVENT_CONFLICT = 2
};
typedef struct sd_ipv4ll sd_ipv4ll;
typedef struct sd_lldp_rx sd_lldp_rx;
typedef struct sd_lldp_neighbor sd_lldp_neighbor;
-typedef enum sd_lldp_rx_event_t {
+__extension__ typedef enum sd_lldp_rx_event_t {
SD_LLDP_RX_EVENT_ADDED,
SD_LLDP_RX_EVENT_REMOVED,
SD_LLDP_RX_EVENT_UPDATED,
SD_LLDP_RX_EVENT_REFRESHED,
_SD_LLDP_RX_EVENT_MAX,
_SD_LLDP_RX_EVENT_INVALID = -EINVAL,
- _SD_ENUM_FORCE_S64(LLDP_RX_EVENT),
+ _SD_ENUM_FORCE_S64(LLDP_RX_EVENT)
} sd_lldp_rx_event_t;
typedef void (*sd_lldp_rx_callback_t)(sd_lldp_rx *lldp_rx, sd_lldp_rx_event_t event, sd_lldp_neighbor *n, void *userdata);
typedef struct sd_lldp_tx sd_lldp_tx;
-typedef enum sd_lldp_multicast_mode_t {
+__extension__ typedef enum sd_lldp_multicast_mode_t {
SD_LLDP_MULTICAST_MODE_NEAREST_BRIDGE,
SD_LLDP_MULTICAST_MODE_NON_TPMR_BRIDGE,
SD_LLDP_MULTICAST_MODE_CUSTOMER_BRIDGE,
_SD_LLDP_MULTICAST_MODE_MAX,
_SD_LLDP_MULTICAST_MODE_INVALID = -EINVAL,
- _SD_ENUM_FORCE_S64(LLDP_TX_MODE),
+ _SD_ENUM_FORCE_S64(LLDP_TX_MODE)
} sd_lldp_multicast_mode_t;
int sd_lldp_tx_new(sd_lldp_tx **ret);
SD_LLDP_TYPE_SYSTEM_DESCRIPTION = 6,
SD_LLDP_TYPE_SYSTEM_CAPABILITIES = 7,
SD_LLDP_TYPE_MGMT_ADDRESS = 8,
- SD_LLDP_TYPE_PRIVATE = 127,
+ SD_LLDP_TYPE_PRIVATE = 127
};
/* IEEE 802.1AB-2009 Clause 8.5.2: Chassis subtypes */
SD_LLDP_CHASSIS_SUBTYPE_MAC_ADDRESS = 4,
SD_LLDP_CHASSIS_SUBTYPE_NETWORK_ADDRESS = 5,
SD_LLDP_CHASSIS_SUBTYPE_INTERFACE_NAME = 6,
- SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED = 7,
+ SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED = 7
};
/* IEEE 802.1AB-2009 Clause 8.5.3: Port subtype */
SD_LLDP_PORT_SUBTYPE_NETWORK_ADDRESS = 4,
SD_LLDP_PORT_SUBTYPE_INTERFACE_NAME = 5,
SD_LLDP_PORT_SUBTYPE_AGENT_CIRCUIT_ID = 6,
- SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED = 7,
+ SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED = 7
};
/* IEEE 802.1AB-2009 Clause 8.5.8: System capabilities */
SD_LLDP_SYSTEM_CAPABILITIES_STATION = 1 << 7,
SD_LLDP_SYSTEM_CAPABILITIES_CVLAN = 1 << 8,
SD_LLDP_SYSTEM_CAPABILITIES_SVLAN = 1 << 9,
- SD_LLDP_SYSTEM_CAPABILITIES_TPMR = 1 << 10,
+ SD_LLDP_SYSTEM_CAPABILITIES_TPMR = 1 << 10
};
#define SD_LLDP_SYSTEM_CAPABILITIES_ALL UINT16_MAX
SD_LLDP_OUI_802_1_SUBTYPE_PROTOCOL_IDENTITY = 4,
SD_LLDP_OUI_802_1_SUBTYPE_VID_USAGE_DIGEST = 5,
SD_LLDP_OUI_802_1_SUBTYPE_MANAGEMENT_VID = 6,
- SD_LLDP_OUI_802_1_SUBTYPE_LINK_AGGREGATION = 7,
+ SD_LLDP_OUI_802_1_SUBTYPE_LINK_AGGREGATION = 7
};
/* IEEE 802.1AB-2009 Annex F */
SD_LLDP_OUI_802_3_SUBTYPE_MAC_PHY_CONFIG_STATUS = 1,
SD_LLDP_OUI_802_3_SUBTYPE_POWER_VIA_MDI = 2,
SD_LLDP_OUI_802_3_SUBTYPE_LINK_AGGREGATION = 3,
- SD_LLDP_OUI_802_3_SUBTYPE_MAXIMUM_FRAME_SIZE = 4,
+ SD_LLDP_OUI_802_3_SUBTYPE_MAXIMUM_FRAME_SIZE = 4
};
_SD_END_DECLARATIONS;
SD_NDISC_OPTION_RDNSS = 25,
SD_NDISC_OPTION_FLAGS_EXTENSION = 26,
SD_NDISC_OPTION_DNSSL = 31,
- SD_NDISC_OPTION_CAPTIVE_PORTAL = 37,
+ SD_NDISC_OPTION_CAPTIVE_PORTAL = 37
};
/* Route preference, RFC 4191, Section 2.1 */
enum {
SD_NDISC_PREFERENCE_LOW = 3U,
SD_NDISC_PREFERENCE_MEDIUM = 0U,
- SD_NDISC_PREFERENCE_HIGH = 1U,
+ SD_NDISC_PREFERENCE_HIGH = 1U
};
typedef struct sd_ndisc sd_ndisc;
typedef struct sd_ndisc_router sd_ndisc_router;
-typedef enum sd_ndisc_event_t {
+__extension__ typedef enum sd_ndisc_event_t {
SD_NDISC_EVENT_TIMEOUT,
SD_NDISC_EVENT_ROUTER,
_SD_NDISC_EVENT_MAX,
_SD_NDISC_EVENT_INVALID = -EINVAL,
- _SD_ENUM_FORCE_S64(NDISC_EVENT),
+ _SD_ENUM_FORCE_S64(NDISC_EVENT)
} sd_ndisc_event_t;
typedef void (*sd_ndisc_callback_t)(sd_ndisc *nd, sd_ndisc_event_t event, sd_ndisc_router *rt, void *userdata);
/* systemd-networkd search paths */
SD_PATH_SYSTEMD_SEARCH_NETWORK,
- _SD_PATH_MAX,
+ _SD_PATH_MAX
};
int sd_path_lookup(uint64_t type, const char *suffix, char **path);
enum {
SD_RESOLVE_GET_HOST = 1 << 0,
SD_RESOLVE_GET_SERVICE = 1 << 1,
- SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE,
+ SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE
};
int sd_resolve_default(sd_resolve **ret);