Branch data Line data Source code
1 : : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : : #ifndef foosdipv4acdfoo 3 : : #define foosdipv4acdfoo 4 : : 5 : : /*** 6 : : Copyright © 2014 Axis Communications AB. All rights reserved. 7 : : systemd is free software; you can redistribute it and/or modify it 8 : : under the terms of the GNU Lesser General Public License as published by 9 : : the Free Software Foundation; either version 2.1 of the License, or 10 : : (at your option) any later version. 11 : : 12 : : systemd is distributed in the hope that it will be useful, but 13 : : WITHOUT ANY WARRANTY; without even the implied warranty of 14 : : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 : : Lesser General Public License for more details. 16 : : 17 : : You should have received a copy of the GNU Lesser General Public License 18 : : along with systemd; If not, see <http://www.gnu.org/licenses/>. 19 : : ***/ 20 : : 21 : : #include <net/ethernet.h> 22 : : #include <netinet/in.h> 23 : : 24 : : #include "sd-event.h" 25 : : 26 : : #include "_sd-common.h" 27 : : 28 : : _SD_BEGIN_DECLARATIONS; 29 : : 30 : : enum { 31 : : SD_IPV4ACD_EVENT_STOP = 0, 32 : : SD_IPV4ACD_EVENT_BIND = 1, 33 : : SD_IPV4ACD_EVENT_CONFLICT = 2, 34 : : }; 35 : : 36 : : typedef struct sd_ipv4acd sd_ipv4acd; 37 : : typedef void (*sd_ipv4acd_callback_t)(sd_ipv4acd *acd, int event, void *userdata); 38 : : 39 : : int sd_ipv4acd_detach_event(sd_ipv4acd *acd); 40 : : int sd_ipv4acd_attach_event(sd_ipv4acd *acd, sd_event *event, int64_t priority); 41 : : int sd_ipv4acd_get_address(sd_ipv4acd *acd, struct in_addr *address); 42 : : int sd_ipv4acd_set_callback(sd_ipv4acd *acd, sd_ipv4acd_callback_t cb, void *userdata); 43 : : int sd_ipv4acd_set_mac(sd_ipv4acd *acd, const struct ether_addr *addr); 44 : : int sd_ipv4acd_set_ifindex(sd_ipv4acd *acd, int interface_index); 45 : : int sd_ipv4acd_set_address(sd_ipv4acd *acd, const struct in_addr *address); 46 : : int sd_ipv4acd_is_running(sd_ipv4acd *acd); 47 : : int sd_ipv4acd_start(sd_ipv4acd *acd); 48 : : int sd_ipv4acd_stop(sd_ipv4acd *acd); 49 : : sd_ipv4acd *sd_ipv4acd_ref(sd_ipv4acd *acd); 50 : : sd_ipv4acd *sd_ipv4acd_unref(sd_ipv4acd *acd); 51 : : int sd_ipv4acd_new(sd_ipv4acd **ret); 52 : : 53 [ - + ]: 8 : _SD_DEFINE_POINTER_CLEANUP_FUNC(sd_ipv4acd, sd_ipv4acd_unref); 54 : : 55 : : _SD_END_DECLARATIONS; 56 : : 57 : : #endif