static void hba_proc_msg(struct mv_hba_msg *pmsg) { PHBA_Extension phba; struct scsi_device *psdev; /* we don't do things without pmsg->data */ if (NULL == pmsg->data) return; phba = (PHBA_Extension) pmsg->data; MV_DBG(DMSG_HBA, "__MV__ In hba_proc_msg.\n"); MV_ASSERT(pmsg); switch (pmsg->msg) { case EVENT_DEVICE_ARRIVAL: if (scsi_add_device(phba->host, 0, pmsg->param, 0)) MV_DBG(DMSG_SCSI, "__MV__ add scsi disk %d-%d-%d failed.\n", 0, pmsg->param, 0); else MV_DBG(DMSG_SCSI, "__MV__ add scsi disk %d-%d-%d.\n", 0, pmsg->param, 0); break; case EVENT_DEVICE_REMOVAL: psdev = scsi_device_lookup(phba->host, 0, pmsg->param, 0); if (NULL != psdev) { MV_DBG(DMSG_SCSI, "__MV__ remove scsi disk %d-%d-%d.\n", 0, pmsg->param, 0); scsi_remove_device(psdev); scsi_device_put(psdev); } else { MV_DBG(DMSG_SCSI, "__MV__ no disk to remove %d-%d-%d\n", 0, pmsg->param, 0); } break; case EVENT_HOT_PLUG: sata_hotplug(pmsg->data, pmsg->param); break; default: break; } }
void check_status() { FILE *fp=NULL; char port[10]; char kernel_name[10]; char *tmp; int status; fp=fopen(SATA_STAT,"r"); while(!feof(fp)) { fscanf(fp,"%s %d %s\n",&port,&status,&kernel_name); //printf("&read_in_buff %s,&status %d,kernel_name %s \n",port,status,kernel_name); sata_hotplug(port,status); } fclose(fp); }