📄 finder.c
字号:
case VAX_750: fprintf(fp,"%s\n",youhalt); fprintf(fp,"\n%s\n",mic); switch(found[i].linktype) { case DEV_UB: fprintf(fp,"\n\t>>> b du%c%x\n\n", found[i].link + 'a', found[i].plug); break; case DEV_MB: fprintf(fp,"\n\t>>> b db%c%x\n\n", found[i].link + 'a', found[i].plug); break; case DEV_CI: fprintf(fp,"\n\t>>> b/800 dda0\n\n"); fprintf(fp,"\tboot58> d/g 2 %x\n",found[i].rctlr_num); fprintf(fp,"\tboot58> d/g 3 %x\n",found[i].plug); fprintf(fp,"\tboot58> @cira.cmd\n"); break; } fprintf(fp,"%s type:\n%s\n",howhalt,step1); break; case VAX_780: fprintf(fp,"%s\n",youhalt); fprintf(fp,"\n%s\n",mic); /* only 1 SBI bus for vax780 */ if (found[i].linktype == DEV_CI) fprintf(fp,"\n\t>>> d r2 %x\n", found[i].rctlr_num); else fprintf(fp,"\n\t>>> d r1 %x\n",found[i].trlevel); fprintf(fp,"\t>>> d r3 %x\n",found[i].plug); /* unit */ switch (found[i].linktype) { case DEV_CI: fprintf(fp,"\t>>> @cira.cmd\n\n"); break; case DEV_UB: fprintf(fp,"\t>>> @ubara.cmd\n\n"); break; case DEV_MB: fprintf(fp,"\t>>> @mbahp.cmd\n\n"); break; } fprintf(fp,"%s type:\n%s\n%s\n",howhalt,step1,step2); break; case VAX_8200: fprintf(fp,"%s\n",youhalt); switch (found[i].linktype) { case DEV_UB: case DEV_BI: if (strcmp(found[i].interface,"KFBTA")==0) fprintf(fp,"\n\t>>> b du%x%x\n\n",found[i].trlevel,found[i].plug % 5); /* AIO interface */ else { fprintf(fp,"\n%s\n",mic); fprintf(fp,"\n\t>>> b du%x%x\n\n",found[i].trlevel,found[i].plug); } break; case DEV_CI: case DEV_BICI: fprintf(fp,"\n%s\n",mic); fprintf(fp,"\n\t>>> b/r5:800 csa1\n\n"); fprintf(fp,"\tboot58> d/g 1 %x\n",found[i].trlevel); fprintf(fp,"\tboot58> d/g 2 %x\n",found[i].link); fprintf(fp,"\tboot58> d/g 3 %x\n",found[i].plug); fprintf(fp,"\tboot58> @cira.cmd\n"); break; } fprintf(fp,"%s type:\n%s\n",howhalt,step1); break; case VAX_8600: fprintf(fp,"%s\n",youhalt); fprintf(fp,"\n\t>>> d r1 %x%x\n",found[i].adpt_num,found[i].trlevel); if (found[i].linktype == DEV_CI) fprintf(fp,"\n\t>>> d r2 %x\n", found[i].rctlr_num); fprintf(fp,"\t>>> d r3 %x\n",found[i].plug); switch (found[i].linktype) { case DEV_UB: fprintf(fp,"\t>>> @ubara.com\n\n"); break; case DEV_MB: fprintf(fp,"\t>>> @mbahp.com\n\n"); break; case DEV_CI: fprintf(fp,"\t>>> @cira.com\n\n"); break; } fprintf(fp,"%s type:\n%s\n%s\n",howhalt,step1,step2); break; case VAX_8800: fprintf(fp,"%s\n",youhalt); fprintf(fp,"\n\t>>> d r1 %x%x\n",found[i].adpt_num,found[i].trlevel); if (found[i].linktype == DEV_CI || found[i].linktype == DEV_BICI ) fprintf(fp,"\n\t>>> d r2 %x\n", found[i].rctlr_num); fprintf(fp,"\t>>> d r3 %x\n",found[i].plug); switch (found[i].linktype) { case DEV_UB: fprintf(fp,"\t>>> @ubara.com\n\n"); break; case DEV_BI: fprintf(fp,"\t>>> @bdara.com\n\n"); break; case DEV_CI: case DEV_BICI: fprintf(fp,"\t>>> @bcira.com\n\n"); break; } fprintf(fp,"%s type:\n%s\n%s\n",howhalt,step1,step2); break; case VAX_8820: fprintf(fp,"%s\n",youhalt); fprintf(fp,"\n\t>>> d r1 %x%x\n",found[i].adpt_num,found[i].trlevel); if (found[i].linktype == DEV_CI || found[i].linktype == DEV_BICI) fprintf(fp,"\n\t>>> d r2 %x\n", found[i].rctlr_num); fprintf(fp,"\t>>> d r3 %x\n",found[i].plug); switch (found[i].linktype) { case DEV_BI: fprintf(fp,"\t>>> @bdara.cmd\n\n"); break; case DEV_CI: case DEV_BICI: fprintf(fp,"\t>>> @bcara.cmd\n\n"); break; } fprintf(fp,"%s type:\n%s\n%s\n",howhalt,step1,step2); break; case VAX_6200: case VAX_6400: fprintf(fp,"%s\n",syshalt); fprintf(fp,"\n%s\n",mictape); switch(found[i].linktype) { case DEV_BI: fprintf(fp,"\n\t>>> b /xmi:%x /bi:%x du%d\n", found[i].adpt_num, found[i].trlevel, found[i].plug); break; case DEV_BICI: fprintf(fp,"\n\t>>> b /xmi:%x /bi:%x /node:%x /r5:10008 du%d\n", found[i].adpt_num, found[i].trlevel, found[i].rctlr_num, found[i].plug); break; case DEV_XMICI: fprintf(fp,"\n\t>>> b /xmi:%x /node:%x /r5:10008 du%d\n", found[i].trlevel, found[i].rctlr_num, found[i].plug); break; case DEV_XMI: fprintf(fp,"\n\t>>> b /xmi:%x du%d\n", found[i].trlevel, found[i].plug); break; } break; case VAX_9000: fprintf(fp,"%s\n",syshalt); fprintf(fp,"\n\t>>> i/k"); switch(found[i].linktype) { case DEV_BI: fprintf(fp,"\n\t>>> b /xmi:%x /bi:%x /r5:10008 kdb%x\n", found[i].adpt_num, found[i].trlevel, found[i].plug); break; case DEV_BICI: fprintf(fp,"\n\t>>> b /xmi:%x /bi:%x /node:%x /r5:10008 kdb%x\n", found[i].adpt_num, found[i].trlevel, found[i].rctlr_num, found[i].plug); break; case DEV_XMICI: fprintf(fp,"\n\t>>> b /xmi:%x /node:%x /r5:10008 ci%x\n", found[i].trlevel, found[i].rctlr_num, found[i].plug); break; case DEV_XMI: fprintf(fp,"\n\t>>> b /xmi:%x /r5:10008 kdm%x\n", found[i].trlevel, found[i].plug); break; } break; default: fprintf(fp,"\n**** Unsupported processor ****\n"); break; } fclose(fp); return;#endif vax#ifdef mips int wflag = 1; char DISKTYPE[3]; char BOOTENVI[20]; char BOOTPATH[40]; char BOOTCOMM[20]; fp=fopen("/tmp/showboot","w"); cpu = getcpu(); BOOTPATH[0] = NULL; switch(cpu) { case DS_5800: strcpy(DISKTYPE, "ra"); strcpy(BOOTENVI, "setenv bootpath"); strcpy(BOOTCOMM, "boot"); switch(found[i].linktype) { case DEV_BI: sprintf(BOOTPATH, "%s(/x%d/b%d,%d,0)vmunix", DISKTYPE, found[i].adpt_num, found[i].trlevel, found[i].plug); break; case DEV_BICI: sprintf(BOOTPATH, "%s(/x%d/b%d/c%d,%d,0)vmunix", DISKTYPE, found[i].adpt_num, found[i].trlevel, found[i].rctlr_num, found[i].plug); break; case DEV_XMI: sprintf(BOOTPATH, "%s(/x%d,%d,0)vmunix", DISKTYPE,found[i].trlevel,found[i].plug); break; } break; case DS_5000: case DS_5000_100: strcpy(BOOTCOMM, "boot"); switch(found[i].linktype) { case DEV_SCSI: strcpy(DISKTYPE, "rz"); break; case DEV_MSI: strcpy(DISKTYPE, "rf"); break; default: strcpy(DISKTYPE, "ra"); break; } /* * CONSOLE DEBUG FOR DS_5000 ROMS * found[i].adpt_num |= 0x8000; */ getsysinfo(GSI_CONSTYPE,console_magic,sizeof(console_magic)); if ((cpu==DS_5000) && (strncmp(console_magic,"TCF0",4))) { strcpy(BOOTENVI, "setenv bootpath"); sprintf(BOOTPATH, "%s(%d,%d,0)vmunix", DISKTYPE, found[i].link,found[i].plug); } else { strcpy(BOOTENVI, "setenv boot"); sprintf(BOOTPATH, "\"%d/%s%d/vmunix -a\"", found[i].adpt_num, DISKTYPE,found[i].plug); } break; case DS_3100: case DS_5100: case DS_5400: case DS_5500: strcpy(BOOTENVI, "setenv bootpath"); if (cpu == DS_3100) strcpy(BOOTCOMM, "auto"); else strcpy(BOOTCOMM, "boot"); switch(found[i].linktype) { case DEV_SCSI: strcpy(DISKTYPE, "rz"); break; case DEV_MSI: strcpy(DISKTYPE, "rf"); break; default: strcpy(DISKTYPE, "ra"); break; } sprintf(BOOTPATH, "%s(%d,%d,0)vmunix", DISKTYPE, found[i].link,found[i].plug); break; default: wflag = 0; fprintf(fp,"\n**** Unsupported processor ****\n"); break; } if (wflag) { fprintf(fp,"\nIssue the following console commands to set your default bootpath variable\n"); fprintf(fp,"and to boot your system disk:\n\n"); fprintf(fp,"\t>> %s %s\n", BOOTENVI,BOOTPATH); fprintf(fp,"\t>> %s\n\n", BOOTCOMM); } fclose(fp);#endif mips}/*****************************************************************************/choicechk(choice) /* check "ans" to see if it consists of all digits */ char choice[8];{ int i; for (i=0; choice[i] != NULL; i++) if (isdigit(choice[i]) == 0) { return(0); break; } return(1);}/***************************************************************************** * * supported_root() * * To determine if the device is supported first look through a list * of devices which are explicitly not supported. If the device is not on * that list then check to see if the disk has enough capacity. Sufficient * capacity here is defined as at least the size of the default "a" partition * (32768) plus the size of the default "b" partition (50160). */intsupported_root(fd, dv_name) int fd; /* Device file descriptor */ char *dv_name; /* String containing device name */{ char *device_name; DEVGEOMST devgeom; int i; for (i = 0; *unsupported_roots[i]; i++) { device_name = unsupported_roots[i]; if ((strncmp(device_name, dv_name, strlen(device_name))) == 0) { return(UNSUPPORTED_ROOT); } } if (ioctl(fd, DEVGETGEOM, (char *)&devgeom) < 0) { /* * In the event of ioctl failure do not conclude that the * disk is too small. */ return(SUPPORTED_ROOT); } if (devgeom.geom_info.dev_size < MIN_CAPACITY) { return(UNSUPPORTED_ROOT); } else { return(SUPPORTED_ROOT); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -