a210692525
This makes most header files easier to look at. Also Emacs gets really slow when browsing through large sections of overly long prototypes, which is much improved by this macro. We should probably not do something similar with too many other cases, as macros like this might help readability for some, but make it worse for others. But I think given the complexity of this specific prototype and how often we use it, it's worth doing.
47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
/* SPDX-License-Identifier: LGPL-2.1+ */
|
|
#pragma once
|
|
|
|
/***
|
|
This file is part of systemd.
|
|
|
|
Copyright 2017 Susant Sahani
|
|
***/
|
|
|
|
#include <inttypes.h>
|
|
#include <stdbool.h>
|
|
|
|
#include "conf-parser.h"
|
|
#include "in-addr-util.h"
|
|
|
|
typedef struct AddressLabel AddressLabel;
|
|
|
|
#include "networkd-link.h"
|
|
#include "networkd-network.h"
|
|
|
|
typedef struct Network Network;
|
|
typedef struct Link Link;
|
|
typedef struct NetworkConfigSection NetworkConfigSection;
|
|
|
|
struct AddressLabel {
|
|
Network *network;
|
|
Link *link;
|
|
NetworkConfigSection *section;
|
|
|
|
unsigned char prefixlen;
|
|
uint32_t label;
|
|
|
|
union in_addr_union in_addr;
|
|
|
|
LIST_FIELDS(AddressLabel, labels);
|
|
};
|
|
|
|
int address_label_new(AddressLabel **ret);
|
|
void address_label_free(AddressLabel *label);
|
|
|
|
DEFINE_TRIVIAL_CLEANUP_FUNC(AddressLabel*, address_label_free);
|
|
|
|
int address_label_configure(AddressLabel *address, Link *link, sd_netlink_message_handler_t callback, bool update);
|
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_address_label);
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_address_label_prefix);
|