if_clone
usbpf_clone_create(struct if_clone *ifc, int unit, caddr_t params,
static int usbpf_clone_create(struct if_clone *, int, caddr_t, caddr_t);
struct if_clone usbpf_cloner = IF_CLONE_INITIALIZER("usbus",
static int bridge_clone_create(struct if_clone *, int, caddr_t, caddr_t);
struct if_clone bridge_cloner = IF_CLONE_INITIALIZER("bridge",
bridge_clone_create(struct if_clone *ifc, int unit,
gif_clone_create(struct if_clone *ifc, int unit,
int gif_clone_create(struct if_clone *, int, caddr_t, caddr_t);
struct if_clone gif_cloner = IF_CLONE_INITIALIZER("gif", gif_clone_create,
static int gre_clone_create(struct if_clone *, int, caddr_t, caddr_t);
static struct if_clone gre_cloner = IF_CLONE_INITIALIZER("gre",
gre_clone_create(struct if_clone *ifc, int unit,
struct if_clone *ifc;
if_clone_attach(struct if_clone *ifc)
struct if_clone *ifct;
if_clone_detach(struct if_clone *ifc)
struct if_clone *ifc;
if_clone_match(struct if_clone *ifc, const char *name)
static struct if_clone *
struct if_clone *ifc;
if_clone_alloc_unit(struct if_clone *ifc, int *unit)
if_clone_free_unit(struct if_clone *ifc, int unit)
if_clone_createif(struct if_clone *ifc, int unit, caddr_t params, caddr_t data)
static LIST_HEAD(, if_clone) if_cloners = LIST_HEAD_INITIALIZER(if_cloners);
static bool if_clone_match(struct if_clone *, const char *);
static struct if_clone *if_clone_lookup(const char *);
static int if_clone_alloc_unit(struct if_clone *, int *);
static void if_clone_free_unit(struct if_clone *, int);
static int if_clone_createif(struct if_clone *, int, caddr_t, caddr_t);
struct if_clone *ifc;
LIST_ENTRY(if_clone) ifc_list; /* on list of cloners */
int (*ifc_create)(struct if_clone *, int,
typedef void (*if_clone_event_handler_t)(void *, struct if_clone *);
int if_clone_attach(struct if_clone *ifc);
void if_clone_detach(struct if_clone *ifc);
lo_clone_create(struct if_clone *ifc, int unit,
static int lo_clone_create(struct if_clone *, int, caddr_t, caddr_t);
static struct if_clone lo_cloner = IF_CLONE_INITIALIZER("lo",
ip_fw3_log_clone_create(struct if_clone *ifc, int unit,
static struct if_clone ipfw3_log_cloner = IF_CLONE_INITIALIZER(ipfw3_log_ifname,
extern struct if_clone *if_clone_lookup(const char *, int *);
lagg_clone_create(struct if_clone *ifc, int unit,
static int lagg_clone_create(struct if_clone *, int, caddr_t, caddr_t);
struct if_clone lagg_cloner = IF_CLONE_INITIALIZER("lagg",
pflog_clone_create(struct if_clone *ifc, int unit,
static int pflog_clone_create(struct if_clone *, int, caddr_t, caddr_t);
static struct if_clone pflog_cloner = IF_CLONE_INITIALIZER(
struct if_clone pfsync_cloner =
pfsync_clone_create(struct if_clone *ifc, int unit,
static int pfsync_clone_create(struct if_clone *, int, caddr_t, caddr_t);
void pfi_attach_clone(struct if_clone *);
struct if_clone tap_cloner = IF_CLONE_INITIALIZER(
tap_clone_create(struct if_clone *ifc __unused, int unit,
static int tap_clone_create(struct if_clone *, int,
struct if_clone tun_cloner = IF_CLONE_INITIALIZER(
tun_clone_create(struct if_clone *ifc __unused, int unit,
static int tun_clone_create(struct if_clone *, int,
static int vlan_clone_create(struct if_clone *, int, caddr_t, caddr_t);
static struct if_clone vlan_cloner =
vlan_clone_create(struct if_clone *ifc, int unit,
wg_clone_create(struct if_clone *ifc __unused, int unit,
static struct if_clone wg_cloner = IF_CLONE_INITIALIZER(
static int carp_clone_create(struct if_clone *, int, caddr_t, caddr_t);
static struct if_clone carp_cloner =
carp_clone_create(struct if_clone *ifc, int unit,
static int wlan_clone_create(struct if_clone *, int, caddr_t, caddr_t);
static struct if_clone wlan_cloner =
wlan_clone_create(struct if_clone *ifc, int unit, caddr_t params,