xref: /haiku/src/libs/compat/freebsd_network/device.h (revision 9563f44bfd75799f67201067483694e82b5779b9)
1 /*
2  * Copyright 2009, Colin Günther, coling@gmx.de. All Rights Reserved.
3  * Copyright 2007, Axel Dörfler, axeld@pinc-software.de. All Rights Reserved.
4  * Copyright 2007, Hugo Santos. All Rights Reserved.
5  * Copyright 2004, Marcus Overhagen. All Rights Reserved.
6  * Distributed under the terms of the MIT License.
7  */
8 #ifndef DEVICE_H
9 #define DEVICE_H
10 
11 
12 #include <stdint.h>
13 #include <stdio.h>
14 
15 #include <KernelExport.h>
16 #include <drivers/PCI.h>
17 
18 #include <util/list.h>
19 
20 #include <net_stack.h>
21 
22 #include <compat/sys/kernel.h>
23 #include <compat/net/if.h>
24 
25 #include "shared.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 struct root_device_softc {
32 	struct pci_info	pci_info;
33 };
34 
35 enum {
36 	DEVICE_OPEN			= 1 << 0,
37 	DEVICE_CLOSED		= 1 << 1,
38 	DEVICE_NON_BLOCK	= 1 << 2,
39 	DEVICE_DESC_ALLOCED	= 1 << 3,
40 	DEVICE_ATTACHED		= 1 << 4
41 };
42 
43 
44 extern struct net_stack_module_info *gStack;
45 extern pci_module_info *gPci;
46 
47 
48 static inline void
49 __unimplemented(const char *method)
50 {
51 	char msg[128];
52 	snprintf(msg, sizeof(msg), "fbsd compat, unimplemented: %s", method);
53 	panic(msg);
54 }
55 
56 #define UNIMPLEMENTED() __unimplemented(__FUNCTION__)
57 
58 status_t init_mbufs(void);
59 void uninit_mbufs(void);
60 
61 status_t init_mutexes(void);
62 void uninit_mutexes(void);
63 
64 status_t init_taskqueues(void);
65 void uninit_taskqueues(void);
66 
67 status_t init_hard_clock(void);
68 void uninit_hard_clock(void);
69 
70 device_t find_root_device(int);
71 
72 /* busdma_machdep.c */
73 void init_bounce_pages(void);
74 void uninit_bounce_pages(void);
75 
76 void driver_printf(const char *format, ...)
77 	__attribute__ ((format (__printf__, 1, 2)));
78 void driver_vprintf(const char *format, va_list vl);
79 
80 void device_sprintf_name(device_t dev, const char *format, ...)
81 	__attribute__ ((format (__printf__, 2, 3)));
82 
83 void ifq_init(struct ifqueue *, const char *);
84 void ifq_uninit(struct ifqueue *);
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif	/* DEVICE_H */
91