📄 yacc_cis.c
字号:
{ yyval.parse = calloc(1, sizeof(cisparse_t)); }break;case 19:#line 139 "yacc_cis.y"{ yyval.parse->device.dev[yyval.parse->device.ndev].type = yyvsp[-3].num; yyval.parse->device.dev[yyval.parse->device.ndev].speed = yyvsp[-2].num; yyval.parse->device.dev[yyval.parse->device.ndev].size = yyvsp[0].num; yyval.parse->device.ndev++; }break;case 21:#line 149 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); }break;case 22:#line 151 "yacc_cis.y"{ yyval.parse->device.dev[yyval.parse->device.ndev].type = yyvsp[-3].num; yyval.parse->device.dev[yyval.parse->device.ndev].speed = yyvsp[-2].num; yyval.parse->device.dev[yyval.parse->device.ndev].size = yyvsp[0].num; yyval.parse->device.ndev++; }break;case 24:#line 161 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->version_1.major = yyvsp[0].flt; yyvsp[0].flt -= floor(yyvsp[0].flt+0.01); while (fabs(yyvsp[0].flt - floor(yyvsp[0].flt+0.5)) > 0.01) { yyvsp[0].flt *= 10; } yyval.parse->version_1.minor = yyvsp[0].flt+0.01; }break;case 25:#line 171 "yacc_cis.y"{ cistpl_vers_1_t *v = &yyval.parse->version_1; u_int pos = 0; if (v->ns) { pos = v->ofs[v->ns-1]; pos += strlen(v->str+pos)+1; } v->ofs[v->ns] = pos; strcpy(v->str+pos, yyvsp[0].str); v->ns++; }break;case 26:#line 185 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->manfid.manf = yyvsp[-2].num; yyval.parse->manfid.card = yyvsp[0].num; }break;case 27:#line 193 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->funcid.func = yyvsp[0].num; }break;case 28:#line 198 "yacc_cis.y"{ yyval.parse->funcid.sysinit |= CISTPL_SYSINIT_POST; }break;case 29:#line 200 "yacc_cis.y"{ yyval.parse->funcid.sysinit |= CISTPL_SYSINIT_ROM; }break;case 30:#line 204 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->jedec.id[0].mfr = yyvsp[-1].num; yyval.parse->jedec.id[0].info = yyvsp[0].num; yyval.parse->jedec.nid = 1; }break;case 31:#line 211 "yacc_cis.y"{ yyval.parse->jedec.id[yyval.parse->jedec.nid].mfr = yyvsp[-1].num; yyval.parse->jedec.id[yyval.parse->jedec.nid++].info = yyvsp[0].num; }break;case 32:#line 218 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->jedec.id[0].mfr = yyvsp[-1].num; yyval.parse->jedec.id[0].info = yyvsp[0].num; yyval.parse->jedec.nid = 1; }break;case 33:#line 225 "yacc_cis.y"{ yyval.parse->jedec.id[yyval.parse->jedec.nid].mfr = yyvsp[-1].num; yyval.parse->jedec.id[yyval.parse->jedec.nid++].info = yyvsp[0].num; }break;case 34:#line 232 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->config.base = yyvsp[-4].num; yyval.parse->config.rmask[0] = yyvsp[-2].num; yyval.parse->config.last_idx = yyvsp[0].num; }break;case 35:#line 241 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_VNOM; yyval.pwr.param[0] = yyvsp[0].num; }break;case 36:#line 246 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_VMIN; yyval.pwr.param[0] = yyvsp[0].num; }break;case 37:#line 251 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_VMAX; yyval.pwr.param[0] = yyvsp[0].num; }break;case 38:#line 256 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_ISTATIC; yyval.pwr.param[0] = yyvsp[0].num; }break;case 39:#line 261 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_IAVG; yyval.pwr.param[0] = yyvsp[0].num; }break;case 40:#line 266 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_IPEAK; yyval.pwr.param[0] = yyvsp[0].num; }break;case 41:#line 271 "yacc_cis.y"{ yyval.pwr.present = CISTPL_POWER_IDOWN; yyval.pwr.param[0] = yyvsp[0].num; }break;case 42:#line 278 "yacc_cis.y"{ yyval.pwr.present = 0; }break;case 43:#line 282 "yacc_cis.y"{ yyval.pwr.present |= 1<<(yyvsp[0].pwr.present); yyval.pwr.param[yyvsp[0].pwr.present] = yyvsp[0].pwr.param[0]; }break;case 48:#line 295 "yacc_cis.y"{ int n = yyval.parse->cftable_entry.io.nwin; yyval.parse->cftable_entry.io.win[n].base = yyvsp[-2].num; yyval.parse->cftable_entry.io.win[n].len = yyvsp[0].num-yyvsp[-2].num+1; yyval.parse->cftable_entry.io.nwin++; }break;case 49:#line 302 "yacc_cis.y"{ int n = yyval.parse->cftable_entry.io.nwin; yyval.parse->cftable_entry.io.win[n].base = yyvsp[-2].num; yyval.parse->cftable_entry.io.win[n].len = yyvsp[0].num-yyvsp[-2].num+1; yyval.parse->cftable_entry.io.nwin++; }break;case 50:#line 309 "yacc_cis.y"{ yyval.parse->cftable_entry.io.flags |= CISTPL_IO_8BIT; }break;case 51:#line 311 "yacc_cis.y"{ yyval.parse->cftable_entry.io.flags |= CISTPL_IO_16BIT; }break;case 52:#line 313 "yacc_cis.y"{ yyval.parse->cftable_entry.io.flags |= yyvsp[-1].num; }break;case 54:#line 318 "yacc_cis.y"{ int n = yyval.parse->cftable_entry.mem.nwin; yyval.parse->cftable_entry.mem.win[n].card_addr = yyvsp[-4].num; yyval.parse->cftable_entry.mem.win[n].host_addr = yyvsp[0].num; yyval.parse->cftable_entry.mem.win[n].len = yyvsp[-2].num-yyvsp[-4].num+1; yyval.parse->cftable_entry.mem.nwin++; }break;case 55:#line 326 "yacc_cis.y"{ int n = yyval.parse->cftable_entry.mem.nwin; yyval.parse->cftable_entry.mem.win[n].card_addr = yyvsp[-4].num; yyval.parse->cftable_entry.mem.win[n].host_addr = yyvsp[0].num; yyval.parse->cftable_entry.mem.win[n].len = yyvsp[-2].num-yyvsp[-4].num+1; yyval.parse->cftable_entry.mem.nwin++; }break;case 56:#line 334 "yacc_cis.y"{ yyval.parse->cftable_entry.io.flags |= CISTPL_IO_8BIT; }break;case 57:#line 336 "yacc_cis.y"{ yyval.parse->cftable_entry.io.flags |= CISTPL_IO_16BIT; }break;case 58:#line 340 "yacc_cis.y"{ yyval.parse->cftable_entry.irq.IRQInfo1 = (yyvsp[0].num & 0x0f); }break;case 59:#line 342 "yacc_cis.y"{ yyval.parse->cftable_entry.irq.IRQInfo1 = IRQ_INFO2_VALID; yyval.parse->cftable_entry.irq.IRQInfo2 = yyvsp[0].num; }break;case 60:#line 347 "yacc_cis.y"{ yyval.parse->cftable_entry.irq.IRQInfo1 |= IRQ_PULSE_ID; }break;case 61:#line 349 "yacc_cis.y"{ yyval.parse->cftable_entry.irq.IRQInfo1 |= IRQ_LEVEL_ID; }break;case 62:#line 351 "yacc_cis.y"{ yyval.parse->cftable_entry.irq.IRQInfo1 |= IRQ_SHARE_ID; }break;case 63:#line 355 "yacc_cis.y"{ yyval.parse = calloc(1, sizeof(cisparse_t)); yyval.parse->cftable_entry.index = yyvsp[0].num; }break;case 64:#line 360 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_DEFAULT; }break;case 65:#line 362 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_BVDS; }break;case 66:#line 364 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_WP; }break;case 67:#line 366 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_RDYBSY; }break;case 68:#line 368 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_MWAIT; }break;case 69:#line 370 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_AUDIO; }break;case 70:#line 372 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_READONLY; }break;case 71:#line 374 "yacc_cis.y"{ yyval.parse->cftable_entry.flags |= CISTPL_CFTABLE_PWRDOWN; }break;case 72:#line 376 "yacc_cis.y"{ yyval.parse->cftable_entry.vcc = yyvsp[0].pwr; }break;case 73:#line 378 "yacc_cis.y"{ yyval.parse->cftable_entry.vpp1 = yyvsp[0].pwr; }break;case 74:#line 380 "yacc_cis.y"{ yyval.parse->cftable_entry.vpp2 = yyvsp[0].pwr; }break;case 79:#line 388 "yacc_cis.y"{ yyval.parse = NULL; }break;#line 1054 "y.tab.c" } yyssp -= yym; yystate = *yyssp; yyvsp -= yym; yym = yylhs[yyn]; if (yystate == 0 && yym == 0) {#if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL);#endif yystate = YYFINAL; *++yyssp = YYFINAL; *++yyvsp = yyval; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, YYFINAL, yychar, yys); }#endif } if (yychar == 0) goto yyaccept; goto yyloop; } if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate = yytable[yyn]; else yystate = yydgoto[yym];#if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state %d \to state %d\n", YYPREFIX, *yyssp, yystate);#endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate; *++yyvsp = yyval; goto yyloop;yyoverflow: yyerror("yacc stack overflow");yyabort: return (1);yyaccept: return (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -