⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com_mod_mgmt.h

📁 6440linuxDriver的源代码
💻 H
字号:
#ifndef __MV_MODULE_MGMT__#define __MV_MODULE_MGMT__#include "com_define.h"#include "com_type.h"#include "com_util.h"enum {	/* module status (module_descriptor) */	MV_MOD_VOID   = 0,	MV_MOD_UNINIT,	MV_MOD_REGISTERED,  /* module ops pointer registered */	MV_MOD_INITED,      /* resource assigned */ 	MV_MOD_FUNCTIONAL,	MV_MOD_STARTED,	MV_MOD_DEINIT,      /* extension released, be gone soon */	MV_MOD_GONE,};/* Resource type */enum Resource_Type {	RESOURCE_CACHED_MEMORY = 1,	RESOURCE_UNCACHED_MEMORY,};/* adapter descriptor */struct mv_adp_desc {	struct list_head  hba_entry;	struct list_head  online_module_list;	spinlock_t        lock;	/* adapter information */	MV_U8             Adapter_Bus_Number;	MV_U8             Adapter_Device_Number;	MV_U16            Vendor_Id;	MV_U16            Device_Id;	MV_U8             Revision_Id;	MV_U8             id;             /* multi-hba support, start from 0 */	MV_U32            pad0;	MV_U16            pad1;	MV_U8             pad2;	MV_U8             running_mod_num;/* number of up & running modules */	/* System resource */	MV_PVOID          Base_Address[ROUNDING(MAX_BASE_ADDRESS, 2)];	MV_U32            max_io;#ifdef _OS_LINUX 	dev_t             dev_no;	struct pci_dev    *dev;	MV_PVOID          extension;      /* hba_ext */#endif /* _OS_LINUX */};struct mv_mod_desc;struct mod_notif_param {	MV_PVOID  p_param;	MV_U32    hi;	MV_U32    lo;	/* for event processing */	MV_U32    event_id;	MV_U16    dev_id;	MV_U8     severity_lvl;	MV_U8     param_count;};struct mv_mod_res {	struct list_head       res_entry;	MV_PHYSICAL_ADDR       bus_addr;	MV_PVOID               virt_addr;		MV_U32                 size;		MV_U16                 type;          /* enum Resource_Type */	MV_U16                 align;};typedef struct _Module_Interface{	MV_U8      module_id;	MV_U32     (*get_res_desc)(enum Resource_Type type, MV_U16 maxIo);	MV_VOID    (*module_initialize)(struct mv_mod_desc *mod_desc,					MV_U32   size,					MV_U16   max_io);	MV_VOID    (*module_start)(MV_PVOID extension);	MV_VOID    (*module_stop)(MV_PVOID extension);	MV_VOID    (*module_notification)(MV_PVOID extension, 					  enum Module_Event event, 					  struct mod_notif_param *param);	MV_VOID    (*module_sendrequest)(MV_PVOID extension, 					 PMV_Request pReq);	MV_VOID    (*module_reset)(MV_PVOID extension);	MV_VOID    (*module_monitor)(MV_PVOID extension);	MV_BOOLEAN (*module_service_isr)(MV_PVOID extension);#ifdef RAID_DRIVER	MV_VOID    (*module_send_xor_request)(MV_PVOID This, 					      PMV_XOR_Request pXORReq);#endif /* RAID_DRIVER */} Module_Interface, *PModule_Interface;#define mv_module_ops _Module_Interface#define mv_set_mod_ops(_ops, _id, _get_res_desc, _init, _start,            \		       _stop, _send, _reset, _mon, _send_eh, _isr, _xor)   \           {                                                               \		   _ops->id                      = id;                     \		   _ops->get_res_desc            = _get_res_desc;          \		   _ops->module_initialize       = _init;                  \		   _ops->module_start            = _start;                 \		   _ops->module_stop             = _stop;                  \		   _ops->module_sendrequest      = _send;                  \		   _ops->module_reset            = _reset;                 \		   _ops->module_monitor          = _mon;                   \		   _ops->module_send_eh_request  = _send_eh;               \		   _ops->module_service_isr      = _isr;                   \		   _ops->module_send_xor_request = _xor;                   \	   }/* module descriptor */struct mv_mod_desc {	struct list_head           mod_entry;      /* kept in a list */		struct mv_mod_desc         *parent;	struct mv_mod_desc         *child;	MV_U32                     extension_size;	MV_U8                      status;	MV_U8                      ref_count;	MV_U8                      module_id;	MV_U8                      res_entry;	MV_PVOID                   extension;      /* module extention */	struct mv_module_ops       *ops;           /* interface operations */	struct mv_adp_desc         *hba_desc;	struct list_head           res_list;};#endif /* __MV_MODULE_MGMT__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -