oss_wrapper.h
来自「6440linuxDriver的源代码」· C头文件 代码 · 共 139 行
H
139 行
/* * Operating System Service Wrapper * * Notes : * ** DO NOT include headers other than common & os specific ones * * ** This header is included in mv_os.h, you don't have to include it * explicitly in your code. * */#ifndef __OSS_WRAPPER_H__#define __OSS_WRAPPER_H__#include "com_mod_mgmt.h"/* Sychronization Services *//* expect pointers */#define OSSW_INIT_SPIN_LOCK(plock) spin_lock_init(plock)#define OSSW_SPIN_LOCK_IRQ(plock) \ do { \ spin_lock_irq(plock); \ } while (0)#define OSSW_SPIN_UNLOCK_IRQ(plock) \ do { \ spin_unlock_irq(plock); \ } while (0)#define OSSW_SPIN_LOCK_IRQSAVE(plock, flag) \ do { \ spin_lock_irqsave(plock, flag); \ } while (0)#define OSSW_SPIN_UNLOCK_IRQRESTORE(plock, flag) \ do { \ spin_unlock_irqrestore(plock, flag); \ } while (0)/* Delayed Execution Services */#define OSSW_INIT_TIMER(ptimer) init_timer(ptimer)/* delay in milliseconds */void ossw_add_timer(struct timer_list *timer, u32 msec, void (*function)(unsigned long), unsigned long data);void ossw_del_timer(struct timer_list *timer);/* OS Information Query Services */u32 ossw_get_time_in_sec(void);u32 ossw_get_msec_of_time(void);#ifdef __AC_PROF__ /* debug purpose */inline unsigned long __ossw_get_jiffies(void){ return jiffies;}#endif /* __AC_PROF__ *//* MISC Services */#define ossw_mdelay(x) mdelay(x)#define ossw_udelay(x) udelay(x)#define MV_PCI_READ_CONFIG_DWORD(ext, offset, ptr) \ pci_read_config_dword(ext->desc->hba_desc->dev, offset, ptr)#define MV_PCI_READ_CONFIG_WORD(ext, offset, ptr) \ pci_read_config_word(ext->desc->hba_desc->dev, offset, ptr)#define MV_PCI_READ_CONFIG_BYTE(ext, offset, ptr) \ pci_read_config_byte(ext->desc->hba_desc->dev, offset, ptr)#define MV_PCI_WRITE_CONFIG_DWORD(ext, offset, val) \ pci_write_config_dword(ext->desc->hba_desc->dev, offset, val)#define MV_PCI_WRITE_CONFIG_WORD(ext, offset, val) \ pci_write_config_word(ext->desc->hba_desc->dev, offset, val)#define MV_PCI_WRITE_CONFIG_BYTE(ext, offset, val) \ pci_write_config_byte(ext->desc->hba_desc->dev, offset, val)/* System dependent macro for flushing CPU write cache */#define MV_CPU_WRITE_BUFFER_FLUSH() smp_wmb()#define MV_CPU_READ_BUFFER_FLUSH() smp_rmb()#define MV_CPU_BUFFER_FLUSH() smp_mb()/* register read write: memory io */#define MV_REG_WRITE_BYTE(base, offset, val) \ writeb(val, base + offset)#define MV_REG_WRITE_WORD(base, offset, val) \ writew(val, base + offset)#define MV_REG_WRITE_DWORD(base, offset, val) \ writel(val, base + offset)#define MV_REG_READ_BYTE(base, offset) \ readb(base + offset)#define MV_REG_READ_WORD(base, offset) \ readw(base + offset)#define MV_REG_READ_DWORD(base, offset) \ readl(base + offset)/* register read write: port io */#define MV_IO_WRITE_BYTE(base, offset, val) \ outb(val, (unsigned)(MV_PTR_INTEGER)(base + offset))#define MV_IO_WRITE_WORD(base, offset, val) \ outw(val, (unsigned)(MV_PTR_INTEGER)(base + offset))#define MV_IO_WRITE_DWORD(base, offset, val) \ outl(val, (unsigned)(MV_PTR_INTEGER)(base + offset))#define MV_IO_READ_BYTE(base, offset) \ inb((unsigned)(MV_PTR_INTEGER)(base + offset))#define MV_IO_READ_WORD(base, offset) \ inw((unsigned)(MV_PTR_INTEGER)(base + offset))#define MV_IO_READ_DWORD(base, offset) \ inl((unsigned)(MV_PTR_INTEGER)(base + offset))#if __LEGACY_OSSW__static inline void HBA_SleepMillisecond(MV_PVOID ext, MV_U32 msec){ ossw_mdelay(msec);# ifdef CONFIG_X86_64 touch_nmi_watchdog();# endif /* CONFIG_X86_64*/# if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 10) touch_softlockup_watchdog();# endif /* LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 10) */}# define HBA_SleepMicrosecond(_x, _y) ossw_udelay(_y)# define HBA_GetTimeInSecond ossw_get_time_in_sec# define HBA_GetMillisecondInDay ossw_get_msec_of_time#endif /* __LEGACY_OSSW__ */#endif /* __OSS_WRAPPER_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?