From 40fc236df0b0f5d9f61030264e4c82e88719a52e Mon Sep 17 00:00:00 2001 From: Mystery Man Date: Sat, 14 Sep 2002 18:25:46 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'V1_1_9_48mdk'. --- mdk-stage1/pcmcia_/yacc_config.c | 1015 -------------------------------------- 1 file changed, 1015 deletions(-) delete mode 100644 mdk-stage1/pcmcia_/yacc_config.c (limited to 'mdk-stage1/pcmcia_/yacc_config.c') diff --git a/mdk-stage1/pcmcia_/yacc_config.c b/mdk-stage1/pcmcia_/yacc_config.c deleted file mode 100644 index 79ec16eb5..000000000 --- a/mdk-stage1/pcmcia_/yacc_config.c +++ /dev/null @@ -1,1015 +0,0 @@ -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define yyclearin (yychar=(-1)) -#define yyerrok (yyerrflag=0) -#define YYRECOVERING (yyerrflag!=0) -#define YYPREFIX "yy" -#line 2 "yacc_config.y" -/* - * yacc_config.y 1.53 2001/08/24 12:21:34 - * - * The contents of this file are subject to the Mozilla Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License - * at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" - * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - * the License for the specific language governing rights and - * limitations under the License. - * - * The initial developer of the original code is David A. Hinds - * . Portions created by David A. Hinds - * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. - * - * Alternatively, the contents of this file may be used under the - * terms of the GNU General Public License version 2 (the "GPL"), in - * which case the provisions of the GPL are applicable instead of the - * above. If you wish to allow the use of your version of this file - * only under the terms of the GPL and not to allow others to use - * your version of this file under the MPL, indicate your decision by - * deleting the provisions above and replace them with the notice and - * other provisions required by the GPL. If you do not delete the - * provisions above, a recipient may use your version of this file - * under either the MPL or the GPL. - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "cardmgr.h" - -/* If bison: generate nicer error messages */ -#define YYERROR_VERBOSE 1 - -/* from lex_config, for nice error messages */ -extern char *current_file; -extern int current_lineno; - -void yyerror(char *msg, ...); - -static int add_binding(card_info_t *card, char *name, int fn); -static int add_module(device_info_t *card, char *name); - -#line 65 "yacc_config.y" -typedef union { - char *str; - u_long num; - struct device_info_t *device; - struct card_info_t *card; - struct mtd_ident_t *mtd; - struct adjust_list_t *adjust; -} YYSTYPE; -#line 77 "y.tab.c" -#define DEVICE 257 -#define CARD 258 -#define ANONYMOUS 259 -#define TUPLE 260 -#define MANFID 261 -#define VERSION 262 -#define FUNCTION 263 -#define PCI 264 -#define BIND 265 -#define CIS 266 -#define TO 267 -#define NEEDS_MTD 268 -#define MODULE 269 -#define OPTS 270 -#define CLASS 271 -#define REGION 272 -#define JEDEC 273 -#define DTYPE 274 -#define DEFAULT 275 -#define MTD 276 -#define INCLUDE 277 -#define EXCLUDE 278 -#define RESERVE 279 -#define IRQ_NO 280 -#define PORT 281 -#define MEMORY 282 -#define STRING 283 -#define NUMBER 284 -#define YYERRCODE 256 -short yylhs[] = { -1, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 2, 2, 2, 3, 3, 3, 3, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 9, - 10, 11, 12, 12, 13, 15, 14, 14, 14, 14, - 4, 21, 5, 5, 5, 6, 16, 16, 16, 16, - 18, 17, 19, 20, 20, 22, -}; -short yylen[] = { 2, - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 4, 4, 2, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 7, - 5, 5, 3, 3, 3, 3, 3, 5, 3, 5, - 2, 4, 3, 3, 3, 3, 2, 1, 1, 1, - 3, 4, 2, 3, 3, 4, -}; -short yydefred[] = { 1, - 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 19, 0, 21, 22, 23, 24, - 0, 26, 0, 28, 0, 49, 48, 50, 0, 6, - 7, 16, 20, 0, 47, 0, 0, 0, 0, 9, - 10, 11, 0, 41, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 0, 0, 13, 0, 0, 12, 43, - 46, 44, 45, 0, 0, 33, 35, 0, 0, 36, - 34, 0, 0, 51, 54, 55, 42, 56, 0, 0, - 0, 0, 0, 0, 0, 52, 14, 15, 0, 31, - 32, 38, 40, 0, 30, -}; -short yydgoto[] = { 1, - 11, 40, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, -}; -short yysindex[] = { 0, - -250, 0, -279, -278, -274, -265, -259, -242, -242, -242, - -10, -248, 0, -44, 0, -249, 0, 0, 0, 0, - -9, 0, -3, 0, -243, 0, 0, 0, -233, 0, - 0, 0, 0, -228, 0, -227, -240, -238, -237, 0, - 0, 0, -242, 0, -235, -232, -231, -230, 0, -234, - -229, -226, -225, -224, -222, -221, -220, -219, -218, -217, - 0, -215, -213, -212, -211, 0, 9, 11, 0, 0, - 0, 0, 0, 14, 21, 0, 0, 30, -192, 0, - 0, -191, -207, 0, 0, 0, 0, 0, -206, -205, - -204, -203, -202, -201, -200, 0, 0, 0, 41, 0, - 0, 0, 0, -197, 0, -}; -short yyrindex[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 149, 0, 90, 0, 124, 0, 0, 0, 0, - 49, 0, 73, 0, 0, 0, 0, 0, 141, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -}; -short yygindex[] = { 0, - 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -}; -#define YYTABLESIZE 428 -short yytable[] = { 48, - 37, 41, 42, 32, 33, 2, 3, 4, 34, 49, - 50, 51, 52, 53, 54, 55, 56, 35, 5, 44, - 45, 6, 46, 36, 39, 7, 8, 9, 10, 59, - 60, 61, 62, 43, 57, 69, 63, 37, 38, 39, - 58, 64, 65, 66, 37, 67, 68, 70, 25, 74, - 71, 72, 73, 89, 75, 90, 76, 91, 77, 78, - 79, 80, 81, 82, 92, 83, 84, 85, 39, 86, - 87, 88, 27, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 0, 0, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 0, 0, 37, - 0, 0, 37, 0, 0, 0, 37, 37, 37, 37, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 0, 0, 39, 0, 0, 39, 0, 0, 0, - 39, 39, 39, 39, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 0, 0, 25, 0, 0, - 25, 0, 0, 0, 25, 25, 25, 25, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, - 0, 27, 0, 0, 27, 18, 18, 18, 27, 27, - 27, 27, 0, 0, 0, 0, 0, 18, 18, 0, - 18, 18, 2, 2, 2, 18, 18, 18, 18, 0, - 0, 0, 0, 0, 0, 2, 0, 0, 2, 5, - 5, 5, 2, 2, 2, 2, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 5, 4, 4, 4, 5, - 5, 5, 5, 0, 3, 3, 3, 0, 0, 4, - 0, 0, 4, 0, 0, 0, 4, 4, 4, 4, - 3, 0, 0, 0, 3, 3, 3, 3, -}; -short yycheck[] = { 44, - 0, 9, 10, 283, 283, 256, 257, 258, 283, 259, - 260, 261, 262, 263, 264, 265, 266, 283, 269, 268, - 269, 272, 271, 283, 0, 276, 277, 278, 279, 273, - 274, 275, 276, 44, 44, 43, 270, 280, 281, 282, - 44, 270, 270, 284, 44, 284, 284, 283, 0, 284, - 283, 283, 283, 45, 284, 45, 283, 44, 284, 284, - 283, 283, 283, 283, 44, 284, 284, 283, 44, 283, - 283, 283, 0, 44, 267, 267, 284, 284, 284, 284, - 284, 284, 284, 284, 44, 283, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, -1, 0, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 270, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, -1, -1, 269, - -1, -1, 272, -1, -1, -1, 276, 277, 278, 279, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, -1, -1, 269, -1, -1, 272, -1, -1, -1, - 276, 277, 278, 279, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, -1, -1, 269, -1, -1, - 272, -1, -1, -1, 276, 277, 278, 279, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, - -1, 269, -1, -1, 272, 256, 257, 258, 276, 277, - 278, 279, -1, -1, -1, -1, -1, 268, 269, -1, - 271, 272, 256, 257, 258, 276, 277, 278, 279, -1, - -1, -1, -1, -1, -1, 269, -1, -1, 272, 256, - 257, 258, 276, 277, 278, 279, -1, -1, -1, -1, - -1, -1, 269, -1, -1, 272, 256, 257, 258, 276, - 277, 278, 279, -1, 256, 257, 258, -1, -1, 269, - -1, -1, 272, -1, -1, -1, 276, 277, 278, 279, - 272, -1, -1, -1, 276, 277, 278, 279, -}; -#define YYFINAL 1 -#ifndef YYDEBUG -#define YYDEBUG 0 -#endif -#define YYMAXTOKEN 284 -#if YYDEBUG -char *yyname[] = { -"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,"','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"DEVICE","CARD", -"ANONYMOUS","TUPLE","MANFID","VERSION","FUNCTION","PCI","BIND","CIS","TO", -"NEEDS_MTD","MODULE","OPTS","CLASS","REGION","JEDEC","DTYPE","DEFAULT","MTD", -"INCLUDE","EXCLUDE","RESERVE","IRQ_NO","PORT","MEMORY","STRING","NUMBER", -}; -char *yyrule[] = { -"$accept : list", -"list :", -"list : list adjust", -"list : list device", -"list : list mtd", -"list : list card", -"list : list opts", -"list : list mtd_opts", -"list : list error", -"adjust : INCLUDE resource", -"adjust : EXCLUDE resource", -"adjust : RESERVE resource", -"adjust : adjust ',' resource", -"resource : IRQ_NO NUMBER", -"resource : PORT NUMBER '-' NUMBER", -"resource : MEMORY NUMBER '-' NUMBER", -"device : DEVICE STRING", -"device : needs_mtd", -"device : module", -"device : class", -"card : CARD STRING", -"card : anonymous", -"card : tuple", -"card : manfid", -"card : pci", -"card : version", -"card : function", -"card : bind", -"card : cis", -"anonymous : card ANONYMOUS", -"tuple : card TUPLE NUMBER ',' NUMBER ',' STRING", -"manfid : card MANFID NUMBER ',' NUMBER", -"pci : card PCI NUMBER ',' NUMBER", -"version : card VERSION STRING", -"version : version ',' STRING", -"function : card FUNCTION NUMBER", -"cis : card CIS STRING", -"bind : card BIND STRING", -"bind : card BIND STRING TO NUMBER", -"bind : bind ',' STRING", -"bind : bind ',' STRING TO NUMBER", -"needs_mtd : device NEEDS_MTD", -"opts : MODULE STRING OPTS STRING", -"module : device MODULE STRING", -"module : module OPTS STRING", -"module : module ',' STRING", -"class : device CLASS STRING", -"region : REGION STRING", -"region : dtype", -"region : jedec", -"region : default", -"dtype : region DTYPE NUMBER", -"jedec : region JEDEC NUMBER NUMBER", -"default : region DEFAULT", -"mtd : region MTD STRING", -"mtd : mtd OPTS STRING", -"mtd_opts : MTD STRING OPTS STRING", -}; -#endif -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 500 -#define YYMAXDEPTH 500 -#endif -#endif -int yydebug; -int yynerrs; -int yyerrflag; -int yychar; -short *yyssp; -YYSTYPE *yyvsp; -YYSTYPE yyval; -YYSTYPE yylval; -short yyss[YYSTACKSIZE]; -YYSTYPE yyvs[YYSTACKSIZE]; -#define yystacksize YYSTACKSIZE -#line 468 "yacc_config.y" -void yyerror(char *msg, ...) -{ - va_list ap; - char str[256]; - - va_start(ap, msg); - sprintf(str, "config error, file '%s' line %d: ", - current_file, current_lineno); - vsprintf(str+strlen(str), msg, ap); -#if YYDEBUG - fprintf(stderr, "%s\n", str); -#else - syslog(LOG_ERR, "%s", str); -#endif - va_end(ap); -} - -static int add_binding(card_info_t *card, char *name, int fn) -{ - device_info_t *dev = root_device; - if (card->bindings == MAX_BINDINGS) { - yyerror("too many bindings\n"); - return -1; - } - for (; dev; dev = dev->next) - if (strcmp((char *)dev->dev_info, name) == 0) break; - if (dev == NULL) { - yyerror("unknown device: %s", name); - return -1; - } - card->device[card->bindings] = dev; - card->dev_fn[card->bindings] = fn; - card->bindings++; - free(name); - return 0; -} - -static int add_module(device_info_t *dev, char *name) -{ - if (dev->modules == MAX_MODULES) { - yyerror("too many modules"); - return -1; - } - dev->module[dev->modules] = name; - dev->opts[dev->modules] = NULL; - dev->modules++; - return 0; -} - -#if YYDEBUG -adjust_list_t *root_adjust = NULL; -device_info_t *root_device = NULL; -card_info_t *root_card = NULL, *blank_card = NULL, *root_func = NULL; -mtd_ident_t *root_mtd = NULL, *default_mtd = NULL; - -void main(int argc, char *argv[]) -{ - yydebug = 1; - if (argc > 1) - parse_configfile(argv[1]); -} -#endif -#line 426 "y.tab.c" -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab -int yylex(void); -int -yyparse() -{ - register int yym, yyn, yystate; -#if YYDEBUG - register char *yys; - extern char *getenv(); - - if (yys = getenv("YYDEBUG")) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } -#endif - - yynerrs = 0; - yyerrflag = 0; - yychar = (-1); - - yyssp = yyss; - yyvsp = yyvs; - *yyssp = yystate = 0; - -yyloop: - if ((yyn = yydefred[yystate])) goto yyreduce; - 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, yystate, yychar, yys); - } -#endif - } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); -#endif - if (yyssp >= yyss + yystacksize - 1) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - yychar = (-1); - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { - yyn = yytable[yyn]; - goto yyreduce; - } - if (yyerrflag) goto yyinrecovery; - yyerror("syntax error"); -#ifdef lint - goto yyerrlab; -#endif -yyerrlab: - ++yynerrs; -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); -#endif - if (yyssp >= yyss + yystacksize - 1) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yyssp); -#endif - if (yyssp <= yyss) goto yyabort; - --yyssp; - --yyvsp; - } - } - } - else - { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - yychar = (-1); - goto yyloop; - } -yyreduce: -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); -#endif - yym = yylen[yyn]; - yyval = yyvsp[1-yym]; - switch (yyn) - { -case 2: -#line 84 "yacc_config.y" -{ - adjust_list_t **tail = &root_adjust; - while (*tail != NULL) tail = &(*tail)->next; - *tail = yyvsp[0].adjust; - } -break; -case 3: -#line 90 "yacc_config.y" -{ - yyvsp[0].device->next = root_device; - root_device = yyvsp[0].device; - } -break; -case 4: -#line 95 "yacc_config.y" -{ - if (yyvsp[0].mtd->mtd_type == 0) { - yyerror("no ID method for this card"); - YYERROR; - } - if (yyvsp[0].mtd->module == NULL) { - yyerror("no MTD module specified"); - YYERROR; - } - yyvsp[0].mtd->next = root_mtd; - root_mtd = yyvsp[0].mtd; - } -break; -case 5: -#line 108 "yacc_config.y" -{ - if (yyvsp[0].card->ident_type == 0) { - yyerror("no ID method for this card"); - YYERROR; - } - if (yyvsp[0].card->bindings == 0) { - yyerror("no function bindings"); - YYERROR; - } - if (yyvsp[0].card->ident_type == FUNC_IDENT) { - yyvsp[0].card->next = root_func; - root_func = yyvsp[0].card; - } else { - yyvsp[0].card->next = root_card; - root_card = yyvsp[0].card; - } - } -break; -case 9: -#line 131 "yacc_config.y" -{ - yyvsp[0].adjust->adj.Action = ADD_MANAGED_RESOURCE; - yyval.adjust = yyvsp[0].adjust; - } -break; -case 10: -#line 136 "yacc_config.y" -{ - yyvsp[0].adjust->adj.Action = REMOVE_MANAGED_RESOURCE; - yyval.adjust = yyvsp[0].adjust; - } -break; -case 11: -#line 141 "yacc_config.y" -{ - yyvsp[0].adjust->adj.Action = ADD_MANAGED_RESOURCE; - yyvsp[0].adjust->adj.Attributes |= RES_RESERVED; - yyval.adjust = yyvsp[0].adjust; - } -break; -case 12: -#line 147 "yacc_config.y" -{ - yyvsp[0].adjust->adj.Action = yyvsp[-2].adjust->adj.Action; - yyvsp[0].adjust->adj.Attributes = yyvsp[-2].adjust->adj.Attributes; - yyvsp[0].adjust->next = yyvsp[-2].adjust; - yyval.adjust = yyvsp[0].adjust; - } -break; -case 13: -#line 156 "yacc_config.y" -{ - yyval.adjust = calloc(sizeof(adjust_list_t), 1); - yyval.adjust->adj.Resource = RES_IRQ; - yyval.adjust->adj.resource.irq.IRQ = yyvsp[0].num; - } -break; -case 14: -#line 162 "yacc_config.y" -{ - if ((yyvsp[0].num < yyvsp[-2].num) || (yyvsp[0].num > 0xffff)) { - yyerror("invalid port range"); - YYERROR; - } - yyval.adjust = calloc(sizeof(adjust_list_t), 1); - yyval.adjust->adj.Resource = RES_IO_RANGE; - yyval.adjust->adj.resource.io.BasePort = yyvsp[-2].num; - yyval.adjust->adj.resource.io.NumPorts = yyvsp[0].num - yyvsp[-2].num + 1; - } -break; -case 15: -#line 173 "yacc_config.y" -{ - if (yyvsp[0].num < yyvsp[-2].num) { - yyerror("invalid address range"); - YYERROR; - } - yyval.adjust = calloc(sizeof(adjust_list_t), 1); - yyval.adjust->adj.Resource = RES_MEMORY_RANGE; - yyval.adjust->adj.resource.memory.Base = yyvsp[-2].num; - yyval.adjust->adj.resource.memory.Size = yyvsp[0].num - yyvsp[-2].num + 1; - } -break; -case 16: -#line 186 "yacc_config.y" -{ - yyval.device = calloc(sizeof(device_info_t), 1); - yyval.device->refs = 1; - strcpy(yyval.device->dev_info, yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 20: -#line 198 "yacc_config.y" -{ - yyval.card = calloc(sizeof(card_info_t), 1); - yyval.card->refs = 1; - yyval.card->name = yyvsp[0].str; - } -break; -case 29: -#line 214 "yacc_config.y" -{ - if (yyvsp[-1].card->ident_type != 0) { - yyerror("ID method already defined"); - YYERROR; - } - if (blank_card) { - yyerror("Anonymous card already defined"); - YYERROR; - } - yyvsp[-1].card->ident_type = BLANK_IDENT; - blank_card = yyvsp[-1].card; - } -break; -case 30: -#line 229 "yacc_config.y" -{ - if (yyvsp[-6].card->ident_type != 0) { - yyerror("ID method already defined"); - YYERROR; - } - yyvsp[-6].card->ident_type = TUPLE_IDENT; - yyvsp[-6].card->id.tuple.code = yyvsp[-4].num; - yyvsp[-6].card->id.tuple.ofs = yyvsp[-2].num; - yyvsp[-6].card->id.tuple.info = yyvsp[0].str; - } -break; -case 31: -#line 242 "yacc_config.y" -{ - if (yyvsp[-4].card->ident_type & EXCL_IDENT) { - yyerror("ID method already defined"); - YYERROR; - } - yyvsp[-4].card->ident_type = MANFID_IDENT; - yyvsp[-4].card->manfid.manf = yyvsp[-2].num; - yyvsp[-4].card->manfid.card = yyvsp[0].num; - } -break; -case 32: -#line 253 "yacc_config.y" -{ - if (yyvsp[-4].card->ident_type != 0) { - yyerror("ID method already defined"); - YYERROR; - } - yyvsp[-4].card->ident_type = PCI_IDENT; - yyvsp[-4].card->manfid.manf = yyvsp[-2].num; - yyvsp[-4].card->manfid.card = yyvsp[0].num; - } -break; -case 33: -#line 264 "yacc_config.y" -{ - if (yyvsp[-2].card->ident_type & EXCL_IDENT) { - yyerror("ID method already defined\n"); - YYERROR; - } - yyvsp[-2].card->ident_type = VERS_1_IDENT; - yyvsp[-2].card->id.vers.ns = 1; - yyvsp[-2].card->id.vers.pi[0] = yyvsp[0].str; - } -break; -case 34: -#line 274 "yacc_config.y" -{ - if (yyvsp[-2].card->id.vers.ns == 4) { - yyerror("too many version strings"); - YYERROR; - } - yyvsp[-2].card->id.vers.pi[yyvsp[-2].card->id.vers.ns] = yyvsp[0].str; - yyvsp[-2].card->id.vers.ns++; - } -break; -case 35: -#line 285 "yacc_config.y" -{ - if (yyvsp[-2].card->ident_type != 0) { - yyerror("ID method already defined\n"); - YYERROR; - } - yyvsp[-2].card->ident_type = FUNC_IDENT; - yyvsp[-2].card->id.func.funcid = yyvsp[0].num; - } -break; -case 36: -#line 296 "yacc_config.y" -{ yyvsp[-2].card->cis_file = strdup(yyvsp[0].str); } -break; -case 37: -#line 300 "yacc_config.y" -{ - if (add_binding(yyvsp[-2].card, yyvsp[0].str, 0) != 0) - YYERROR; - } -break; -case 38: -#line 305 "yacc_config.y" -{ - if (add_binding(yyvsp[-4].card, yyvsp[-2].str, yyvsp[0].num) != 0) - YYERROR; - } -break; -case 39: -#line 310 "yacc_config.y" -{ - if (add_binding(yyvsp[-2].card, yyvsp[0].str, 0) != 0) - YYERROR; - } -break; -case 40: -#line 315 "yacc_config.y" -{ - if (add_binding(yyvsp[-4].card, yyvsp[-2].str, yyvsp[0].num) != 0) - YYERROR; - } -break; -case 41: -#line 322 "yacc_config.y" -{ - yyvsp[-1].device->needs_mtd = 1; - } -break; -case 42: -#line 328 "yacc_config.y" -{ - device_info_t *d; - int i, found = 0; - for (d = root_device; d; d = d->next) { - for (i = 0; i < d->modules; i++) - if (strcmp(yyvsp[-2].str, d->module[i]) == 0) break; - if (i < d->modules) { - if (d->opts[i]) - free(d->opts[i]); - d->opts[i] = strdup(yyvsp[0].str); - found = 1; - } - } - free(yyvsp[-2].str); free(yyvsp[0].str); - if (!found) { - yyerror("module name not found!"); - YYERROR; - } - } -break; -case 43: -#line 350 "yacc_config.y" -{ - if (add_module(yyvsp[-2].device, yyvsp[0].str) != 0) - YYERROR; - } -break; -case 44: -#line 355 "yacc_config.y" -{ - if (yyvsp[-2].device->opts[yyvsp[-2].device->modules-1] == NULL) { - yyvsp[-2].device->opts[yyvsp[-2].device->modules-1] = yyvsp[0].str; - } else { - yyerror("too many options"); - YYERROR; - } - } -break; -case 45: -#line 364 "yacc_config.y" -{ - if (add_module(yyvsp[-2].device, yyvsp[0].str) != 0) - YYERROR; - } -break; -case 46: -#line 371 "yacc_config.y" -{ - if (yyvsp[-2].device->class != NULL) { - yyerror("extra class string"); - YYERROR; - } - yyvsp[-2].device->class = yyvsp[0].str; - } -break; -case 47: -#line 381 "yacc_config.y" -{ - yyval.mtd = calloc(sizeof(mtd_ident_t), 1); - yyval.mtd->refs = 1; - yyval.mtd->name = yyvsp[0].str; - } -break; -case 51: -#line 392 "yacc_config.y" -{ - if (yyvsp[-2].mtd->mtd_type != 0) { - yyerror("ID method already defined"); - YYERROR; - } - yyvsp[-2].mtd->mtd_type = DTYPE_MTD; - yyvsp[-2].mtd->dtype = yyvsp[0].num; - } -break; -case 52: -#line 403 "yacc_config.y" -{ - if (yyvsp[-3].mtd->mtd_type != 0) { - yyerror("ID method already defined"); - YYERROR; - } - yyvsp[-3].mtd->mtd_type = JEDEC_MTD; - yyvsp[-3].mtd->jedec_mfr = yyvsp[-1].num; - yyvsp[-3].mtd->jedec_info = yyvsp[0].num; - } -break; -case 53: -#line 415 "yacc_config.y" -{ - if (yyvsp[-1].mtd->mtd_type != 0) { - yyerror("ID method already defined"); - YYERROR; - } - if (default_mtd) { - yyerror("Default MTD already defined"); - YYERROR; - } - yyvsp[-1].mtd->mtd_type = DEFAULT_MTD; - default_mtd = yyvsp[-1].mtd; - } -break; -case 54: -#line 430 "yacc_config.y" -{ - if (yyvsp[-2].mtd->module != NULL) { - yyerror("extra MTD entry"); - YYERROR; - } - yyvsp[-2].mtd->module = yyvsp[0].str; - } -break; -case 55: -#line 438 "yacc_config.y" -{ - if (yyvsp[-2].mtd->opts == NULL) { - yyvsp[-2].mtd->opts = yyvsp[0].str; - } else { - yyerror("too many options"); - YYERROR; - } - } -break; -case 56: -#line 449 "yacc_config.y" -{ - mtd_ident_t *m; - int found = 0; - for (m = root_mtd; m; m = m->next) - if (strcmp(yyvsp[-2].str, m->module) == 0) break; - if (m) { - if (m->opts) free(m->opts); - m->opts = strdup(yyvsp[0].str); - found = 1; - } - free(yyvsp[-2].str); free(yyvsp[0].str); - if (!found) { - yyerror("MTD name not found!"); - YYERROR; - } - } -break; -#line 966 "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); -} -- cgit v1.2.1