BNX2X: spatch changes for BUG and WARN
[akaros.git] / kern / drivers / net / bnx2x / akaros_compat.h
index 2ab1577..762d91b 100644 (file)
@@ -23,6 +23,9 @@
 #include <mmio.h>
 #include <taskqueue.h>
 
+/* temporary dumping ground */
+#include "compat_todo.h"
+
 #define __rcu
 #define rcu_read_lock()
 #define rcu_read_unlock()
 #define CLAMP(val, lo, hi) MIN((typeof(val))MAX(val, lo), hi)
 #define CLAMP_T(t, val, lo, hi) CLAMP(val, lo, hi)
 
-/* I'm okay with these versions of the asserts. */
-#define WARN(args...) warn(args)
-#define WARN_ONCE(args...) warn_once(args)
-#define WARN_ON(x) warn_on(x)
-#define WARN_ON_ONCE(x) warn_on_once(x)
-#define BUG() panic("BUG")
-#define BUG_ON(x) assert(x)
-
 typedef physaddr_t dma_addr_t;
 typedef int gfp_t;
 
@@ -196,6 +191,8 @@ typedef int pm_message_t;
        printk(fmt, ##__VA_ARGS__)
 #define netdev_err(dev, fmt, ...) \
        printk(fmt, ##__VA_ARGS__)
+#define netdev_info(dev, fmt, ...) \
+       printk(fmt, ##__VA_ARGS__)
 #define dev_err(dev, fmt, ...) \
        printk(fmt, ##__VA_ARGS__)
 #define dev_info(dev, fmt, ...) \
@@ -528,4 +525,68 @@ static inline int pci_write_config_dword(struct pci_device *dev, uint32_t off,
        return 0;
 }
 
+static inline void pci_disable_device(struct pci_device *dev)
+{
+       pci_clr_bus_master(dev);
+}
+
+static inline int pci_enable_device(struct pci_device *dev)
+{
+       pci_set_bus_master(dev);
+       return 0;
+}
+
+
+
+// TODO: maybe spatch these
+
+static inline uint32_t pci_resource_len(struct pci_device *dev, int bir)
+{
+       return pci_get_membar_sz(dev, bir);
+}
+
+static inline void *pci_resource_start(struct pci_device *dev, int bir)
+{
+       return (void*)pci_get_membar(dev, bir);
+}
+
+static inline void *pci_resource_end(struct pci_device *dev, int bir)
+{
+       return (void*)(pci_get_membar(dev, bir) + pci_resource_len(dev, bir));
+}
+
+#define ioremap_nocache(paddr, sz) \
+        (void*)vmap_pmem_nocache((uintptr_t)paddr, sz)
+#define ioremap(paddr, sz) (void*)vmap_pmem(paddr, sz)
+#define pci_ioremap_bar(dev, bir) (void*)pci_map_membar(dev, bir)
+#define pci_set_master(x) pci_set_bus_master(x)
+
+#define dev_addr_add(dev, addr, type) ({memcpy((dev)->ea, addr, Eaddrlen); 0;})
+#define dev_addr_del(...)
+
+#define SET_NETDEV_DEV(...)
+#define netif_carrier_off(...)
+#define netif_carrier_on(...)
+/* May need to do something with edev's queues or flags. */
+#define netif_tx_wake_all_queues(...)
+#define netif_tx_wake_queue(...)
+#define netif_tx_start_all_queues(...)
+#define netif_tx_start_queue(...)
+/* picks a random, valid mac addr for dev */
+#define eth_hw_addr_random(...)
+/* checks if the MAC is not 0 and not multicast (all 1s) */
+#define is_valid_ether_addr(...) (TRUE)
+
+#define EPROBE_DEFER 1
+
+/* Could spatch this:
+       if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) {
+       to:
+       if (!pci_get_membar(pdev, 0)) {
+
+       eth_zero_addr(bp->dev->ea);
+       to:
+       memset(bp->dev->ea, 0, Eaddrlen);
+*/
+
 #endif /* ROS_KERN_AKAROS_COMPAT_H */