summaryrefslogtreecommitdiffstats
path: root/bsd_eth_drivers/if_em/e1000_osdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsd_eth_drivers/if_em/e1000_osdep.h')
-rw-r--r--bsd_eth_drivers/if_em/e1000_osdep.h91
1 files changed, 54 insertions, 37 deletions
diff --git a/bsd_eth_drivers/if_em/e1000_osdep.h b/bsd_eth_drivers/if_em/e1000_osdep.h
index 96a7d84..134c4cc 100644
--- a/bsd_eth_drivers/if_em/e1000_osdep.h
+++ b/bsd_eth_drivers/if_em/e1000_osdep.h
@@ -41,31 +41,13 @@ POSSIBILITY OF SUCH DAMAGE.
#include <rtems/pci.h>
#include <vm/vm.h> /* for non-_KERNEL boolean_t :-( */
-#ifdef _KERNEL
-#ifndef __INSIDE_RTEMS_BSD_TCPIP_STACK__
-#define __INSIDE_RTEMS_BSD_TCPIP_STACK__
-#endif
-#include <rtems/rtems_bsdnet.h>
-#include <rtems/rtems_bsdnet_internal.h>
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/protosw.h>
-#include <sys/socket.h>
-#include <sys/malloc.h>
-#include <sys/kernel.h>
-#include <sys/bus.h>
-
-#define ASSERT(x) if(!(x)) panic("EM: x")
-
/* The happy-fun DELAY macro is defined in /usr/src/sys/i386/include/clock.h */
-#define usec_delay(x) DELAY(x)
-#define msec_delay(x) DELAY(1000*(x))
+#define usec_delay(x) e1000_udelay(x)
+#define msec_delay(x) e1000_udelay(1000*(x))
/* TODO: Should we be paranoid about delaying in interrupt context? */
-#define msec_delay_irq(x) DELAY(1000*(x))
-#include <rtems_udelay.h>
+#define msec_delay_irq(x) msec_delay(x)
+
+void e1000_udelay(unsigned);
#define MSGOUT(S, A, B) printf(S "\n", A, B)
#define DEBUGFUNC(F) DEBUGOUT(F);
@@ -75,22 +57,8 @@ POSSIBILITY OF SUCH DAMAGE.
#define DEBUGOUT3(S,A,B,C)
#define DEBUGOUT7(S,A,B,C,D,E,F,G)
-#include <devicet.h>
-
-struct e1000_osdep
-{
- uint32_t mem_bus_space_handle;
- uint32_t io_bus_space_handle;
- uint32_t flash_bus_space_handle;
- /* these are currently unused; present for freebsd compatibility only */
- uint32_t mem_bus_space_tag;
- uint32_t io_bus_space_tag;
- uint32_t flash_bus_space_tag;
- device_t dev;
-};
#define STATIC static
-#endif
#ifndef FALSE
#define FALSE 0
@@ -118,6 +86,12 @@ typedef int8_t s8 ;
typedef volatile uint32_t __uint32_va_t __attribute__((may_alias));
typedef volatile uint16_t __uint16_va_t __attribute__((may_alias));
+struct e1000_pcisig {
+ uint16_t bus;
+ uint8_t dev;
+ uint8_t fun;
+};
+
#ifdef NO_82542_SUPPORT
#define E1000_REGISTER(hw, reg) reg
#else
@@ -218,6 +192,49 @@ static inline void __outport_dword(unsigned long base, uint32_t off, uint32_t va
#define USE_LIBBSDPORT_IO
#endif
+#if defined(USE_LIBBSDPORT_IO) && !defined(_KERNEL)
+#define _KERNEL
+#endif
+
+#ifdef _KERNEL
+#ifndef __INSIDE_RTEMS_BSD_TCPIP_STACK__
+#define __INSIDE_RTEMS_BSD_TCPIP_STACK__
+#endif
+#include <rtems/rtems_bsdnet.h>
+#include <rtems/rtems_bsdnet_internal.h>
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/mbuf.h>
+#include <sys/protosw.h>
+#include <sys/socket.h>
+#include <sys/malloc.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+
+#define ASSERT(x) if(!(x)) panic("EM: x")
+
+#include <devicet.h>
+
+struct e1000_osdep
+{
+ /* struct e1000_pcisig MUST be first since
+ * 'back' pointer is cast to (struct e1000_pcisig *)
+ * in e1000_osdep.c!
+ */
+ struct e1000_pcisig pcisig;
+ uint32_t mem_bus_space_handle;
+ uint32_t io_bus_space_handle;
+ uint32_t flash_bus_space_handle;
+ /* these are currently unused; present for freebsd compatibility only */
+ uint32_t mem_bus_space_tag;
+ uint32_t io_bus_space_tag;
+ uint32_t flash_bus_space_tag;
+ device_t dev;
+};
+#endif
+
#ifdef USE_LIBBSDPORT_IO
#define USE_EXPLICIT_BUSTAGS