// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2015 - 2018 Red Hat, Inc. */ #ifndef __NM_ACD_MANAGER__ #define __NM_ACD_MANAGER__ #include typedef struct _NMAcdManager NMAcdManager; typedef struct { void (*probe_terminated_callback) (NMAcdManager *self, gpointer user_data); GDestroyNotify user_data_destroy; } NMAcdCallbacks; NMAcdManager *nm_acd_manager_new (int ifindex, const guint8 *hwaddr, guint hwaddr_len, const NMAcdCallbacks *callbacks, gpointer user_data); void nm_acd_manager_free (NMAcdManager *self); gboolean nm_acd_manager_add_address (NMAcdManager *self, in_addr_t address); int nm_acd_manager_start_probe (NMAcdManager *self, guint timeout); gboolean nm_acd_manager_check_address (NMAcdManager *self, in_addr_t address); int nm_acd_manager_announce_addresses (NMAcdManager *self); NM_AUTO_DEFINE_FCN0 (NMAcdManager *, _nm_auto_free_acdmgr, nm_acd_manager_free); #define nm_auto_free_acdmgr nm_auto (_nm_auto_free_acdmgr) #endif /* __NM_ACD_MANAGER__ */