📄 bcm570x_mm.h
字号:
/******************************************************************************//* *//* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 Broadcom *//* Corporation. *//* All rights reserved. *//* *//* This program is free software; you can redistribute it and/or modify *//* it under the terms of the GNU General Public License as published by *//* the Free Software Foundation, located in the file LICENSE. *//* *//******************************************************************************/#ifndef MM_H#define MM_H#define __raw_readl readl#define __raw_writel writel#define BIG_ENDIAN_HOST 1#define readl(addr) (*(volatile unsigned int*)(addr))#define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))/* Define memory barrier function here if needed */#define wmb()#define membar()#include <common.h>#include <asm/types.h>#include "bcm570x_lm.h"#include "bcm570x_queue.h"#include "tigon3.h"#include <pci.h>#define FALSE 0#define TRUE 1#define ERROR -1#if DBG#define STATIC#else#define STATIC static#endifextern int MM_Packet_Desc_Size;#define MM_PACKET_DESC_SIZE MM_Packet_Desc_SizeDECLARE_QUEUE_TYPE(UM_RX_PACKET_Q, MAX_RX_PACKET_DESC_COUNT+1);#define MAX_MEM 16/* Synch */typedef int mutex_t;typedef int spinlock_t;/* Embedded device control */typedef struct _UM_DEVICE_BLOCK { LM_DEVICE_BLOCK lm_dev; pci_dev_t pdev; char *name; void *mem_list[MAX_MEM]; dma_addr_t dma_list[MAX_MEM]; int mem_size_list[MAX_MEM]; int mem_list_num; int mtu; int index; int opened; int delayed_link_ind; /* Delay link status during initial load */ int adapter_just_inited; /* the first few seconds after init. */ int spurious_int; /* new -- unsupported */ int timer_interval; int adaptive_expiry; int crc_counter_expiry; /* new -- unsupported */ int poll_tib_expiry; /* new -- unsupported */ int tx_full; int tx_queued; int line_speed; /* in Mbps, 0 if link is down */ UM_RX_PACKET_Q rx_out_of_buf_q; int rx_out_of_buf; int rx_low_buf_thresh; /* changed to rx_buf_repl_thresh */ int rx_buf_repl_panic_thresh; int rx_buf_align; /* new -- unsupported */ int do_global_lock; mutex_t global_lock; mutex_t undi_lock; long undi_flags; volatile int interrupt; int tasklet_pending; int tasklet_busy; /* new -- unsupported */ int rx_pkt; int tx_pkt;#ifdef NICE_SUPPORT /* unsupported, this is a linux ioctl */ void (*nice_rx)(void*, void* ); void* nice_ctx;#endif /* NICE_SUPPORT */ int rx_adaptive_coalesce; unsigned int rx_last_cnt; unsigned int tx_last_cnt; unsigned int rx_curr_coalesce_frames; unsigned int rx_curr_coalesce_ticks; unsigned int tx_curr_coalesce_frames; /* new -- unsupported */#if TIGON3_DEBUG /* new -- unsupported */ uint tx_zc_count; uint tx_chksum_count; uint tx_himem_count; uint rx_good_chksum_count;#endif unsigned int rx_bad_chksum_count; /* new -- unsupported */ unsigned int rx_misc_errors; /* new -- unsupported */} UM_DEVICE_BLOCK, *PUM_DEVICE_BLOCK;/* Physical/PCI DMA address */typedef union { dma_addr_t dma_map;} dma_map_t;/* Packet */typedef struct_UM_PACKET { LM_PACKET lm_packet; void* skbuff; /* Address of packet buffer */} UM_PACKET, *PUM_PACKET;#define MM_ACQUIRE_UNDI_LOCK(_pDevice)#define MM_RELEASE_UNDI_LOCK(_pDevice)#define MM_ACQUIRE_INT_LOCK(_pDevice)#define MM_RELEASE_INT_LOCK(_pDevice)#define MM_UINT_PTR(_ptr) ((unsigned long) (_ptr))/* Macro for setting 64bit address struct */#define set_64bit_addr(paddr, low, high) \ (paddr)->Low = low; \ (paddr)->High = high;/* Assume that PCI controller's view of host memory is same as host */#define MEM_TO_PCI_PHYS(addr) (addr)extern void MM_SetAddr (LM_PHYSICAL_ADDRESS *paddr, dma_addr_t addr);extern void MM_SetT3Addr(T3_64BIT_HOST_ADDR *paddr, dma_addr_t addr);extern void MM_MapTxDma (PLM_DEVICE_BLOCK pDevice, struct _LM_PACKET *pPacket, T3_64BIT_HOST_ADDR *paddr, LM_UINT32 *len, int frag);extern void MM_MapRxDma ( PLM_DEVICE_BLOCK pDevice, struct _LM_PACKET *pPacket, T3_64BIT_HOST_ADDR *paddr);/* BSP needs to provide sysUsecDelay and sysSerialPrintString */extern void sysSerialPrintString (char *s);#define MM_Wait(usec) udelay(usec)/* Define memory barrier function here if needed */#define wmb()#if 0#define cpu_to_le32(val) LONGSWAP(val)#endif#endif /* MM_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -