Import dhcpcd-8.0.4 to vendor branch.
[dragonfly.git] / contrib / dhcpcd / src / dev.h
blobb2cd804b8deb36d7cfb0444c5be1118c70be0d22
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3 * dhcpcd - DHCP client daemon
4 * Copyright (c) 2006-2019 Roy Marples <roy@marples.name>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
28 #ifndef DEV_H
29 #define DEV_H
31 // dev plugin setup
32 struct dev {
33 const char *name;
34 int (*initialized)(const char *);
35 int (*listening)(void);
36 int (*handle_device)(void *);
37 int (*start)(void);
38 void (*stop)(void);
41 struct dev_dhcpcd {
42 int (*handle_interface)(void *, int, const char *);
45 int dev_init(struct dev *, const struct dev_dhcpcd *);
47 // hooks for dhcpcd
48 #ifdef PLUGIN_DEV
49 #include "dhcpcd.h"
50 int dev_initialized(struct dhcpcd_ctx *, const char *);
51 int dev_listening(struct dhcpcd_ctx *);
52 int dev_start(struct dhcpcd_ctx *);
53 void dev_stop(struct dhcpcd_ctx *);
54 #else
55 #define dev_initialized(a, b) (1)
56 #define dev_listening(a) (0)
57 #define dev_start(a) {}
58 #define dev_stop(a) {}
59 #endif
61 #endif