xref: /haiku/src/add-ons/kernel/drivers/network/ether/usb_rndis/Driver.h (revision a5c0d1a80e18f50987966fda2005210092d7671b)
1 /*
2 	Driver for USB RNDIS network devices
3 	Copyright (C) 2022 Adrien Destugues <pulkomandy@pulkomandy.tk>
4 	Distributed under the terms of the MIT license.
5 */
6 #ifndef _USB_RNDIS_DRIVER_H_
7 #define _USB_RNDIS_DRIVER_H_
8 
9 #include <Drivers.h>
10 #include <KernelExport.h>
11 #include <OS.h>
12 #include <USB3.h>
13 #include <drivers/usb/USB_cdc.h>
14 
15 #include <util/kernel_cpp.h>
16 
17 #define DRIVER_NAME	"usb_rndis"
18 #define MAX_DEVICES	8
19 
20 extern usb_module_info *gUSBModule;
21 
22 extern "C" {
23 status_t	usb_rndis_device_added(usb_device device, void **cookie);
24 status_t	usb_rndis_device_removed(void *cookie);
25 
26 status_t	init_hardware();
27 void		uninit_driver();
28 
29 const char **publish_devices();
30 device_hooks *find_device(const char *name);
31 }
32 
33 #if TRACE_RNDIS
34 #define TRACE(x...)			dprintf(DRIVER_NAME ": " x)
35 #else
36 #define TRACE(x...)
37 #endif
38 #define TRACE_ALWAYS(x...)	dprintf(DRIVER_NAME ": " x)
39 
40 #endif //_USB_RNDIS_DRIVER_H_
41