亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ips.c

?? linux和2410結合開發 用他可以生成2410所需的zImage文件
?? C
?? 第 1 頁 / 共 5 頁
字號:
static int ips_reqsen(ips_ha_t *, ips_scb_t *);static int ips_allocatescbs(ips_ha_t *);static int ips_reset_copperhead(ips_ha_t *);static int ips_reset_copperhead_memio(ips_ha_t *);static int ips_reset_morpheus(ips_ha_t *);static int ips_issue_copperhead(ips_ha_t *, ips_scb_t *);static int ips_issue_copperhead_memio(ips_ha_t *, ips_scb_t *);static int ips_issue_i2o(ips_ha_t *, ips_scb_t *);static int ips_issue_i2o_memio(ips_ha_t *, ips_scb_t *);static int ips_isintr_copperhead(ips_ha_t *);static int ips_isintr_copperhead_memio(ips_ha_t *);static int ips_isintr_morpheus(ips_ha_t *);static int ips_wait(ips_ha_t *, int, int);static int ips_write_driver_status(ips_ha_t *, int);static int ips_read_adapter_status(ips_ha_t *, int);static int ips_read_subsystem_parameters(ips_ha_t *, int);static int ips_read_config(ips_ha_t *, int);static int ips_clear_adapter(ips_ha_t *, int);static int ips_readwrite_page5(ips_ha_t *, int, int);static int ips_init_copperhead(ips_ha_t *);static int ips_init_copperhead_memio(ips_ha_t *);static int ips_init_morpheus(ips_ha_t *);static int ips_isinit_copperhead(ips_ha_t *);static int ips_isinit_copperhead_memio(ips_ha_t *);static int ips_isinit_morpheus(ips_ha_t *);static int ips_erase_bios(ips_ha_t *);static int ips_program_bios(ips_ha_t *, char *, u_int32_t, u_int32_t);static int ips_verify_bios(ips_ha_t *, char *, u_int32_t, u_int32_t);static int ips_erase_bios_memio(ips_ha_t *);static int ips_program_bios_memio(ips_ha_t *, char *, u_int32_t, u_int32_t);static int ips_verify_bios_memio(ips_ha_t *, char *, u_int32_t, u_int32_t);static void ips_flash_bios_section(void *);static void ips_flash_bios_segment(void *);static void ips_scheduled_flash_bios(void *);static void ips_create_nvrampage5(ips_ha_t *, IPS_NVRAM_P5 *);static void ips_get_bios_version(ips_ha_t *, int);static void ips_identify_controller(ips_ha_t *);static void ips_select_queue_depth(struct Scsi_Host *, Scsi_Device *);static void ips_chkstatus(ips_ha_t *, IPS_STATUS *);static void ips_enable_int_copperhead(ips_ha_t *);static void ips_enable_int_copperhead_memio(ips_ha_t *);static void ips_enable_int_morpheus(ips_ha_t *);static void ips_intr_copperhead(ips_ha_t *);static void ips_intr_morpheus(ips_ha_t *);static void ips_next(ips_ha_t *, int);static void ipsintr_blocking(ips_ha_t *, struct ips_scb *);static void ipsintr_done(ips_ha_t *, struct ips_scb *);static void ips_done(ips_ha_t *, ips_scb_t *);static void ips_free(ips_ha_t *);static void ips_init_scb(ips_ha_t *, ips_scb_t *);static void ips_freescb(ips_ha_t *, ips_scb_t *);static void ips_statinit(ips_ha_t *);static void ips_statinit_memio(ips_ha_t *);static void ips_fix_ffdc_time(ips_ha_t *, ips_scb_t *, time_t);static void ips_ffdc_reset(ips_ha_t *, int);static void ips_ffdc_time(ips_ha_t *, int);static u_int32_t ips_statupd_copperhead(ips_ha_t *);static u_int32_t ips_statupd_copperhead_memio(ips_ha_t *);static u_int32_t ips_statupd_morpheus(ips_ha_t *);static ips_scb_t * ips_getscb(ips_ha_t *);static inline void ips_putq_scb_head(ips_scb_queue_t *, ips_scb_t *);static inline void ips_putq_scb_tail(ips_scb_queue_t *, ips_scb_t *);static inline void ips_putq_wait_head(ips_wait_queue_t *, Scsi_Cmnd *);static inline void ips_putq_wait_tail(ips_wait_queue_t *, Scsi_Cmnd *);static inline void ips_putq_copp_head(ips_copp_queue_t *, ips_copp_wait_item_t *);static inline void ips_putq_copp_tail(ips_copp_queue_t *, ips_copp_wait_item_t *);static inline ips_scb_t * ips_removeq_scb_head(ips_scb_queue_t *);static inline ips_scb_t * ips_removeq_scb(ips_scb_queue_t *, ips_scb_t *);static inline Scsi_Cmnd * ips_removeq_wait_head(ips_wait_queue_t *);static inline Scsi_Cmnd * ips_removeq_wait(ips_wait_queue_t *, Scsi_Cmnd *);static inline ips_copp_wait_item_t * ips_removeq_copp(ips_copp_queue_t *, ips_copp_wait_item_t *);static inline ips_copp_wait_item_t * ips_removeq_copp_head(ips_copp_queue_t *);#ifndef NO_IPS_CMDLINEstatic int ips_is_passthru(Scsi_Cmnd *);static int ips_make_passthru(ips_ha_t *, Scsi_Cmnd *, ips_scb_t *, int);static int ips_usrcmd(ips_ha_t *, ips_passthru_t *, ips_scb_t *);static int ips_newusrcmd(ips_ha_t *, ips_passthru_t *, ips_scb_t *);static void ips_cleanup_passthru(ips_ha_t *, ips_scb_t *);#endifint  ips_proc_info(char *, char **, off_t, int, int, int);static int ips_host_info(ips_ha_t *, char *, off_t, int);static void copy_mem_info(IPS_INFOSTR *, char *, int);static int copy_info(IPS_INFOSTR *, char *, ...);/*--------------------------------------------------------------------------*//* Exported Functions                                                       *//*--------------------------------------------------------------------------*//****************************************************************************//*                                                                          *//* Routine Name: ips_setup                                                  *//*                                                                          *//* Routine Description:                                                     *//*                                                                          *//*   setup parameters to the driver                                         *//*                                                                          *//****************************************************************************/#if LINUX_VERSION_CODE >= LinuxVersionCode(2,3,13)static intips_setup(char *ips_str) {#elsevoidips_setup(char *ips_str, int *dummy) {#endif   int        i;#if LINUX_VERSION_CODE < LinuxVersionCode(2,4,0)   char      *p;   char       tokens[3] = {',', '.', 0};#endif   char      *key;   char      *value;   IPS_OPTION options[] = {      {"noreset", &ips_resetcontroller, 0},#ifdef IPS_DEBUG      {"debug", &ips_debug, 1},#endif      {"noi2o", &ips_force_i2o, 0},      {"nommap", &ips_force_memio, 0},      {"nocmdline", &ips_cmdline, 0},      {"ioctlsize", &ips_ioctlsize, IPS_IOCTL_SIZE},      {"cdboot", &ips_cd_boot, 0},   };   METHOD_TRACE("ips_setup", 1);/* Don't use strtok() anymore ( if 2.4 Kernel or beyond ) */#if LINUX_VERSION_CODE >= LinuxVersionCode(2,4,0)   /* Search for value */   while ((key = strsep(&ips_str, ",."))) {      if (!*key)         continue;      value = strchr(key, ':');      if (value)         *value++ = '\0';     /*      * We now have key/value pairs.      * Update the variables      */      for (i = 0; i < (sizeof(options) / sizeof(options[0])); i++) {        if (strnicmp(key, options[i].option_name, strlen(options[i].option_name)) == 0) {           if (value)              *options[i].option_flag = simple_strtoul(value, NULL, 0);           else              *options[i].option_flag = options[i].option_value;           break;        }      }   }#else   for (key = strtok(ips_str, tokens); key; key = strtok(NULL, tokens)) {      p = key;      /* Search for value */      while ((p) && (*p != ':'))         p++;      if (p) {         *p = '\0';         value = p+1;      } else         value = NULL;      /*       * We now have key/value pairs.       * Update the variables       */      for (i = 0; i < (sizeof(options) / sizeof(options[0])); i++) {         if (strnicmp(key, options[i].option_name, strlen(ips_str)) == 0) {            if (value)               *options[i].option_flag = simple_strtoul(value, NULL, 0);            else               *options[i].option_flag = options[i].option_value;            break;         }      }   }#endif#if LINUX_VERSION_CODE >= LinuxVersionCode(2,3,13)   return (1);#endif}#if LINUX_VERSION_CODE >= LinuxVersionCode(2,3,13)__setup("ips=", ips_setup);#endif/****************************************************************************//*                                                                          *//* Routine Name: ips_detect                                                 *//*                                                                          *//* Routine Description:                                                     *//*                                                                          *//*   Detect and initialize the driver                                       *//*                                                                          *//* NOTE: this routine is called under the io_request_lock spinlock          *//*                                                                          *//****************************************************************************/intips_detect(Scsi_Host_Template *SHT) {   struct Scsi_Host *sh;   ips_ha_t         *ha;   u_int32_t         io_addr;   u_int32_t         mem_addr;   u_int32_t         io_len;   u_int32_t         mem_len;   u_int16_t         planer;   u_int8_t          revision_id;   u_int8_t          bus;   u_int8_t          func;   u_int8_t          irq;   u_int16_t         deviceID[2];   u_int16_t         subdevice_id;   int               i;   int               j;   u_int32_t         count;   char             *ioremap_ptr;   char             *mem_ptr;   struct pci_dev   *dev[2];   struct pci_dev   *morpheus = NULL;   struct pci_dev   *trombone = NULL;#if LINUX_VERSION_CODE < LinuxVersionCode(2,3,14)   u_int32_t         currbar;   u_int32_t         maskbar;   u_int8_t          barnum;#endif   METHOD_TRACE("ips_detect", 1);#ifdef MODULE   if (ips)#if LINUX_VERSION_CODE >= LinuxVersionCode(2,3,13)      ips_setup(ips);#else      ips_setup(ips, NULL);#endif#endif   /* If Booting from the ServeRAID Manager CD, Allocate a large Flash  */   /* Buffer ( so we won't need to allocate one for each adapter ).     */    if ( ips_cd_boot ) {                  ips_FlashData = ( char * ) __get_free_pages( GFP_KERNEL, 7 );         if (ips_FlashData == NULL) {         /* The validity of this pointer is checked in ips_make_passthru() before it is used */         printk( KERN_WARNING "ERROR: Can't Allocate Large Buffer for Flashing\n" );      }   }                                                                                  SHT->proc_info = ips_proc_info;#if LINUX_VERSION_CODE < LinuxVersionCode(2,3,27)   SHT->proc_dir = &proc_scsi_ips;#else   SHT->proc_name = "ips";#endif#if defined(CONFIG_PCI)   /* initalize number of controllers */   ips_num_controllers = 0;   ips_next_controller = 0;   ips_released_controllers = 0;   if (!pci_present())      return (0);   morpheus = pci_find_device(IPS_VENDORID, IPS_DEVICEID_MORPHEUS, morpheus);   trombone = pci_find_device(IPS_VENDORID, IPS_DEVICEID_COPPERHEAD, trombone);   /* determine which controller to probe first */   if (!morpheus) {      /* we only have trombone */      dev[0] = trombone;      dev[1] = NULL;      deviceID[0] = IPS_DEVICEID_COPPERHEAD;   } else if (!trombone) {      /* we only have morpheus */      dev[0] = morpheus;      dev[1] = NULL;      deviceID[0] = IPS_DEVICEID_MORPHEUS;   } else {      /* we have both in the system */      if (trombone->bus->number < morpheus->bus->number) {         dev[0] = trombone;         dev[1] = morpheus;         deviceID[0] = IPS_DEVICEID_COPPERHEAD;         deviceID[1] = IPS_DEVICEID_MORPHEUS;      } else if (trombone->bus->number > morpheus->bus->number) {         dev[0] = morpheus;         dev[1] = trombone;         deviceID[0] = IPS_DEVICEID_MORPHEUS;         deviceID[1] = IPS_DEVICEID_COPPERHEAD;      } else {         /* further detection required */         if (trombone->devfn < morpheus->devfn) {            dev[0] = trombone;            dev[1] = morpheus;            deviceID[0] = IPS_DEVICEID_COPPERHEAD;            deviceID[1] = IPS_DEVICEID_MORPHEUS;         } else {            dev[0] = morpheus;            dev[1] = trombone;            deviceID[0] = IPS_DEVICEID_MORPHEUS;            deviceID[1] = IPS_DEVICEID_COPPERHEAD;         }      }   }   /* Now scan the controllers */   for (i = 0; i < 2; i++) {      if (!dev[i])         break;      do {         if (ips_next_controller >= IPS_MAX_ADAPTERS)            break;#if LINUX_VERSION_CODE >= LinuxVersionCode(2,4,0)         if (pci_enable_device(dev[i]))            break;#endif         /* stuff that we get in dev */         irq = dev[i]->irq;         bus = dev[i]->bus->number;         func = dev[i]->devfn;         /* Init MEM/IO addresses to 0 */         mem_addr = 0;         io_addr = 0;         mem_len = 0;         io_len = 0;         for (j = 0; j < 2; j++) {#if LINUX_VERSION_CODE >= LinuxVersionCode(2,4,0)            if (!pci_resource_start(dev[i], j))               break;            if (pci_resource_flags(dev[i], j) & IORESOURCE_IO) {               io_addr = pci_resource_start(dev[i], j);               io_len = pci_resource_len(dev[i], j);            } else {               mem_addr = pci_resource_start(dev[i], j);               mem_len = pci_resource_len(dev[i], j);            }#elif LINUX_VERSION_CODE >= LinuxVersionCode(2,3,14)            if (!dev[i]->resource[j].start)               break;            if ((dev[i]->resource[j].start & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {               io_addr = dev[i]->resource[j].start;               io_len = dev[i]->resource[j].end - dev[i]->resource[j].start + 1;            } else {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美成人一区二区三区| 国产毛片精品视频| 青青草原综合久久大伊人精品 | 欧美午夜一区二区三区免费大片| 91精品久久久久久久久99蜜臂| 日本一区二区高清| 午夜久久久影院| 91影视在线播放| 久久综合九色综合97_久久久| 亚洲国产日日夜夜| 99视频在线精品| 国产视频在线观看一区二区三区| 亚洲成人精品影院| 91在线码无精品| 国产日韩欧美在线一区| 麻豆久久一区二区| 欧美视频一区二区在线观看| |精品福利一区二区三区| 国产九九视频一区二区三区| 91精品国产色综合久久不卡电影 | 亚洲欧美在线视频观看| 国内精品国产成人| 日韩午夜在线播放| 三级一区在线视频先锋| 欧美亚洲综合一区| 亚洲码国产岛国毛片在线| 粉嫩aⅴ一区二区三区四区五区| 日韩一区二区三区免费看| 午夜久久久影院| 欧美日韩成人在线一区| 亚洲国产婷婷综合在线精品| 91国偷自产一区二区三区成为亚洲经典 | 国产在线精品不卡| 精品三级av在线| 久久成人久久鬼色| 精品国产乱子伦一区| 美日韩黄色大片| 日韩欧美国产三级电影视频| 久久99久久精品欧美| 欧美电影免费观看高清完整版在线| 午夜欧美视频在线观看| 欧美精品久久久久久久久老牛影院| 亚洲国产一二三| 欧美精品国产精品| 青青草视频一区| 久久亚洲一区二区三区明星换脸 | 日韩一区二区三区免费观看| 美女脱光内衣内裤视频久久网站| 日韩欧美一级在线播放| 国产福利一区二区| 国产精品久久久久aaaa| 91黄色激情网站| 日韩不卡手机在线v区| 51精品视频一区二区三区| 日本欧美一区二区三区乱码| www国产精品av| 成人黄色片在线观看| 玉米视频成人免费看| 欧美精品在线一区二区| 国内精品免费**视频| 国产精品天天看| 欧美亚洲国产一卡| 狠狠狠色丁香婷婷综合久久五月| 久久久久久久久久看片| 色噜噜狠狠色综合欧洲selulu| 婷婷丁香久久五月婷婷| 久久久久久免费毛片精品| 一本大道久久a久久综合婷婷| 五月婷婷激情综合网| 久久一区二区视频| 91黄色小视频| 国产一区 二区| 一区二区三区毛片| 久久无码av三级| 欧美性生活久久| 国产精品中文欧美| 亚洲3atv精品一区二区三区| 国产校园另类小说区| 欧美体内she精视频| 国产精品影视在线| 香蕉久久夜色精品国产使用方法 | 日本欧美久久久久免费播放网| 久久综合成人精品亚洲另类欧美| 色哟哟国产精品| 国产精品白丝jk黑袜喷水| 天堂va蜜桃一区二区三区| 亚洲国产精品精华液2区45| 欧美精品在线视频| 91色乱码一区二区三区| 国产资源在线一区| 日韩av一区二区三区四区| 亚洲日本在线a| 国产欧美精品国产国产专区| 欧美一级久久久| 欧美日韩中字一区| av在线不卡电影| 懂色中文一区二区在线播放| 久国产精品韩国三级视频| 婷婷丁香久久五月婷婷| 一区二区三区免费观看| 亚洲欧美激情视频在线观看一区二区三区| 欧美变态tickle挠乳网站| 91精品国产综合久久精品| 欧美中文字幕一区二区三区| 成人激情免费视频| 丁香婷婷深情五月亚洲| 国产一区二区三区日韩| 精品一区二区三区在线播放视频 | 亚洲一区在线看| 中文字幕av一区 二区| 日韩免费一区二区三区在线播放| 欧美日韩国产a| 欧美日韩免费在线视频| 欧洲视频一区二区| 在线看国产日韩| 91福利精品第一导航| 色综合网色综合| 欧美中文字幕一区| 91福利在线播放| 欧美亚洲日本一区| 欧美日韩高清不卡| 欧美精品自拍偷拍动漫精品| 日韩视频免费直播| 日韩免费高清电影| 精品国产一区二区亚洲人成毛片 | 日韩成人av影视| 日本不卡在线视频| 久久国产综合精品| 精品一区二区三区视频在线观看| 美国十次了思思久久精品导航| 日本午夜精品一区二区三区电影| 奇米888四色在线精品| 精品一二三四区| 国产99久久久精品| 色婷婷激情一区二区三区| 欧美午夜片在线观看| 欧美一级欧美三级在线观看 | 在线观看视频一区二区欧美日韩 | av在线不卡网| 欧美亚洲禁片免费| 日韩亚洲欧美一区二区三区| 久久精品欧美一区二区三区麻豆| 国产精品欧美一区喷水| 亚洲一区二区三区中文字幕| 久久精品国产99久久6| 成人性生交大片免费看中文 | 亚洲精品免费视频| 天堂精品中文字幕在线| 国产成人综合视频| 色综合久久88色综合天天6| 91精品国产入口| 国产精品少妇自拍| 天堂资源在线中文精品| 国产精品一区一区三区| 欧美中文字幕一二三区视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲欧美色图小说| 久久99精品视频| 色狠狠色噜噜噜综合网| 精品久久久网站| 一区二区三区欧美视频| 国产成人免费高清| 欧美日韩成人综合| 国产精品久久久久久久久免费丝袜 | 婷婷久久综合九色综合伊人色| 国产在线视频一区二区三区| 在线视频一区二区三| 久久久精品免费网站| 香蕉乱码成人久久天堂爱免费| 国产福利一区在线| 欧美一区二区视频在线观看| 亚洲视频在线观看一区| 国产一区二区视频在线播放| 69精品人人人人| 亚洲另类在线视频| 国产在线精品免费av| 在线播放91灌醉迷j高跟美女| 国产精品另类一区| 国产九色sp调教91| 这里只有精品99re| 艳妇臀荡乳欲伦亚洲一区| 国产成人免费视频网站| 日韩片之四级片| 亚洲va在线va天堂| 亚洲精品在线观看视频| 天堂久久久久va久久久久| 在线看日韩精品电影| 亚洲精品一二三四区| 成人激情动漫在线观看| 国产无人区一区二区三区| 久久国产免费看| 制服丝袜国产精品| 午夜国产精品一区| 欧美性生活影院| 亚洲第一久久影院| 欧美羞羞免费网站| 午夜影院在线观看欧美| 欧美性猛交xxxxxxxx| 亚洲精品乱码久久久久久| 色一区在线观看|