diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2023-01-10 15:22:58 +0100 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2023-04-11 16:23:28 +0000 |
commit | e84b095d3a238ae5fd734c4c186132a4e07eea07 (patch) | |
tree | 24e2c7a3ed9050e26d5a1511e8946ced86f19cd5 /util | |
parent | 8b8400a889abadbbd2156d4a35a27203068766f1 (diff) |
util/sconfig: Remove unused ioapic and irq keywords
Ioapic information in the devicetree was only used to set up mptables
but this generic driver was removed (ca5a793 drivers/generic/ioapic:
Drop poor implementation).
This removes the unused remainders from mainboard devicetrees.
Remove ioapic setup from sconfig.
Change-Id: Ib3fef0bf923ab3f02f3aeed2e55cf662a3dc3a1b
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71789
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Diffstat (limited to 'util')
-rw-r--r-- | util/sconfig/lex.yy.c_shipped | 383 | ||||
-rw-r--r-- | util/sconfig/main.c | 43 | ||||
-rw-r--r-- | util/sconfig/sconfig.h | 11 | ||||
-rw-r--r-- | util/sconfig/sconfig.l | 3 | ||||
-rw-r--r-- | util/sconfig/sconfig.tab.c_shipped | 343 | ||||
-rw-r--r-- | util/sconfig/sconfig.tab.h_shipped | 28 | ||||
-rw-r--r-- | util/sconfig/sconfig.y | 7 |
7 files changed, 362 insertions, 456 deletions
diff --git a/util/sconfig/lex.yy.c_shipped b/util/sconfig/lex.yy.c_shipped index 8d26db5cda..3fc7ddcc4c 100644 --- a/util/sconfig/lex.yy.c_shipped +++ b/util/sconfig/lex.yy.c_shipped @@ -349,8 +349,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 51 -#define YY_END_OF_BUFFER 52 +#define YY_NUM_RULES 48 +#define YY_END_OF_BUFFER 49 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -358,31 +358,30 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[209] = +static const flex_int16_t yy_accept[197] = { 0, - 0, 0, 52, 50, 1, 3, 50, 50, 50, 45, - 45, 42, 46, 50, 46, 46, 46, 46, 46, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 43, 50, - 1, 3, 50, 0, 50, 50, 0, 2, 45, 46, - 50, 50, 50, 10, 50, 50, 46, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 35, 50, 50, - 50, 50, 50, 16, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 49, 49, 50, 0, 44, 50, 50, - 50, 25, 50, 50, 34, 39, 50, 50, 50, 50, - 50, 23, 50, 50, 33, 50, 50, 50, 17, 7, - - 50, 20, 22, 50, 9, 50, 50, 29, 50, 30, - 8, 50, 0, 47, 50, 4, 50, 50, 50, 50, - 50, 50, 31, 50, 50, 50, 50, 32, 28, 50, - 50, 50, 50, 50, 48, 48, 6, 50, 50, 50, - 13, 50, 50, 50, 50, 50, 50, 50, 15, 50, - 50, 50, 50, 5, 26, 50, 50, 18, 50, 21, - 50, 14, 50, 50, 50, 50, 50, 27, 37, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 11, 50, - 50, 50, 50, 12, 50, 19, 50, 50, 50, 50, - 36, 50, 50, 50, 24, 50, 50, 38, 50, 50, - - 50, 50, 50, 50, 41, 50, 40, 0 + 0, 0, 49, 47, 1, 3, 47, 47, 47, 43, + 43, 40, 44, 44, 44, 44, 44, 44, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 41, 47, 1, + 3, 47, 0, 47, 47, 0, 2, 43, 44, 47, + 47, 10, 47, 47, 44, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 34, 47, 47, 47, 47, + 47, 16, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 46, 46, 47, 0, 42, 47, 47, 24, 47, + 47, 33, 37, 47, 47, 47, 47, 47, 22, 47, + 32, 47, 47, 47, 17, 7, 47, 20, 21, 47, + + 9, 47, 47, 28, 47, 29, 8, 47, 0, 47, + 4, 47, 47, 47, 47, 47, 47, 30, 47, 47, + 47, 31, 27, 47, 47, 47, 47, 47, 45, 45, + 6, 47, 47, 47, 13, 47, 47, 47, 47, 47, + 47, 15, 47, 47, 47, 47, 5, 25, 47, 47, + 18, 47, 47, 14, 47, 47, 47, 47, 47, 26, + 35, 47, 47, 47, 47, 47, 47, 47, 11, 47, + 47, 47, 47, 12, 19, 47, 47, 47, 47, 47, + 47, 47, 23, 47, 47, 36, 47, 47, 47, 47, + 47, 47, 39, 47, 38, 0 + } ; static const YY_CHAR yy_ec[256] = @@ -393,14 +392,14 @@ static const YY_CHAR yy_ec[256] = 1, 2, 1, 5, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 8, 7, 9, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, - 10, 1, 1, 1, 11, 11, 11, 11, 12, 12, - 1, 1, 13, 1, 1, 1, 1, 14, 1, 1, - 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 16, 1, 17, 18, 19, 20, - - 21, 22, 23, 24, 25, 1, 1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 1, 1, 40, 1, 1, 1, 1, 1, 1, + 10, 1, 1, 1, 11, 11, 11, 11, 11, 11, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 12, 1, 13, 14, 15, 16, + + 17, 18, 19, 20, 21, 1, 1, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 1, 1, 36, 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, @@ -417,148 +416,142 @@ static const YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static const YY_CHAR yy_meta[41] = +static const YY_CHAR yy_meta[37] = { 0, 1, 2, 2, 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 } ; -static const flex_int16_t yy_base[216] = +static const flex_int16_t yy_base[204] = { 0, - 0, 0, 282, 0, 279, 283, 277, 39, 43, 40, - 241, 0, 46, 264, 56, 60, 64, 67, 72, 56, - 252, 74, 71, 77, 82, 255, 81, 242, 0, 0, - 272, 283, 110, 268, 115, 119, 269, 283, 0, 116, - 119, 256, 245, 0, 244, 233, 125, 240, 235, 245, - 243, 247, 234, 236, 240, 240, 234, 240, 225, 227, - 229, 228, 230, 0, 109, 226, 220, 220, 122, 230, - 222, 228, 128, 0, 283, 145, 240, 0, 233, 226, - 212, 225, 215, 222, 0, 0, 212, 218, 215, 206, - 214, 0, 212, 202, 0, 211, 201, 200, 0, 0, - - 203, 0, 0, 209, 0, 201, 200, 0, 191, 0, - 0, 218, 217, 0, 188, 0, 201, 200, 193, 197, - 187, 183, 0, 193, 181, 187, 194, 0, 0, 181, - 188, 175, 178, 167, 0, 283, 0, 179, 183, 175, - 0, 174, 176, 172, 174, 179, 163, 168, 0, 161, - 161, 160, 157, 0, 0, 169, 171, 0, 155, 172, - 158, 0, 165, 169, 150, 150, 157, 0, 0, 156, - 148, 147, 23, 157, 143, 153, 143, 135, 0, 139, - 133, 131, 136, 0, 125, 0, 119, 125, 128, 120, - 0, 135, 101, 109, 0, 94, 88, 0, 72, 74, - - 70, 66, 49, 37, 0, 47, 0, 283, 49, 161, - 163, 165, 167, 169, 171 + 0, 0, 265, 0, 262, 266, 260, 35, 39, 36, + 228, 0, 48, 51, 55, 75, 61, 58, 22, 240, + 62, 81, 75, 74, 243, 82, 230, 0, 0, 256, + 266, 104, 252, 109, 74, 253, 266, 0, 108, 111, + 234, 0, 233, 222, 123, 229, 224, 234, 232, 236, + 223, 225, 229, 229, 223, 0, 215, 217, 219, 218, + 220, 0, 66, 216, 210, 210, 115, 220, 212, 218, + 121, 0, 266, 134, 226, 0, 217, 203, 216, 206, + 213, 0, 0, 203, 209, 206, 197, 205, 0, 203, + 0, 203, 193, 192, 0, 0, 195, 0, 0, 201, + + 0, 193, 192, 0, 183, 0, 0, 206, 205, 180, + 0, 193, 192, 185, 189, 179, 175, 0, 185, 173, + 187, 0, 0, 174, 181, 168, 171, 160, 0, 266, + 0, 172, 176, 168, 0, 167, 169, 165, 167, 157, + 162, 0, 155, 155, 154, 151, 0, 0, 163, 165, + 0, 149, 153, 0, 160, 164, 145, 145, 152, 0, + 0, 144, 143, 45, 153, 139, 149, 119, 0, 136, + 130, 128, 133, 0, 0, 117, 123, 126, 118, 133, + 114, 127, 0, 121, 129, 0, 116, 107, 103, 93, + 63, 49, 0, 57, 0, 266, 45, 155, 157, 159, + + 161, 163, 165 } ; -static const flex_int16_t yy_def[216] = +static const flex_int16_t yy_def[204] = { 0, - 208, 1, 208, 209, 208, 208, 209, 210, 211, 209, - 10, 209, 10, 209, 10, 10, 10, 10, 10, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 208, 208, 210, 212, 213, 211, 214, 208, 10, 10, - 10, 209, 209, 209, 209, 209, 10, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 208, 213, 215, 41, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 208, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 208, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - - 209, 209, 209, 209, 209, 209, 209, 0, 208, 208, - 208, 208, 208, 208, 208 + 196, 1, 196, 197, 196, 196, 197, 198, 199, 197, + 10, 197, 10, 10, 10, 10, 10, 10, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 196, + 196, 198, 200, 201, 199, 202, 196, 10, 10, 10, + 197, 197, 197, 197, 10, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 196, 201, 203, 40, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + + 197, 197, 197, 197, 197, 197, 197, 197, 196, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 196, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 0, 196, 196, 196, 196, + + 196, 196, 196 } ; -static const flex_int16_t yy_nxt[324] = +static const flex_int16_t yy_nxt[303] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 10, 12, - 13, 13, 14, 4, 4, 4, 15, 13, 16, 17, - 18, 19, 20, 21, 22, 4, 23, 4, 24, 25, - 4, 26, 27, 4, 28, 4, 4, 4, 4, 29, - 34, 34, 180, 35, 37, 38, 39, 39, 39, 30, - 40, 40, 40, 40, 40, 181, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 207, 40, 40, 40, 206, - 40, 40, 40, 40, 40, 40, 53, 205, 40, 40, - 40, 43, 56, 45, 47, 54, 204, 60, 44, 46, - 61, 203, 48, 202, 50, 49, 51, 62, 63, 201, - - 66, 57, 58, 200, 64, 59, 65, 70, 52, 67, - 71, 34, 34, 68, 74, 72, 77, 77, 199, 30, - 37, 38, 40, 40, 40, 78, 78, 78, 198, 78, - 78, 40, 40, 40, 197, 78, 78, 78, 78, 78, - 78, 100, 101, 105, 106, 110, 77, 77, 111, 112, - 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, - 83, 33, 33, 36, 36, 34, 34, 76, 76, 37, - 37, 77, 77, 186, 185, 184, 183, 182, 179, 178, - 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, - 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, - - 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, - 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, - 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, - 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, - 117, 116, 115, 114, 113, 109, 108, 107, 104, 103, - 102, 99, 98, 97, 96, 95, 94, 93, 92, 91, - 90, 89, 88, 87, 86, 85, 84, 82, 81, 80, - 79, 38, 75, 31, 73, 69, 55, 42, 41, 32, - 31, 208, 3, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208 + 13, 4, 14, 13, 15, 16, 17, 18, 19, 20, + 21, 4, 22, 4, 23, 24, 4, 25, 26, 4, + 27, 4, 4, 4, 4, 28, 33, 33, 51, 34, + 36, 37, 38, 38, 38, 29, 39, 52, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 170, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 54, 195, 41, 171, 43, 36, 37, 194, 49, 42, + 44, 39, 39, 39, 48, 55, 56, 193, 64, 57, + 50, 45, 61, 58, 96, 97, 59, 65, 62, 46, + + 63, 66, 47, 60, 68, 33, 33, 69, 72, 192, + 75, 75, 70, 29, 39, 39, 39, 76, 76, 76, + 191, 76, 190, 76, 76, 76, 76, 76, 76, 39, + 39, 39, 101, 102, 106, 75, 75, 107, 108, 189, + 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, + 178, 177, 176, 175, 80, 32, 32, 35, 35, 33, + 33, 74, 74, 36, 36, 75, 75, 174, 173, 172, + 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, + 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, + 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, + + 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, + 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, + 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, + 109, 105, 104, 103, 100, 99, 98, 95, 94, 93, + 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, + 82, 81, 79, 78, 77, 37, 73, 30, 71, 67, + 53, 40, 31, 30, 196, 3, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + + 196, 196 } ; -static const flex_int16_t yy_chk[324] = +static const flex_int16_t yy_chk[303] = { 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, - 8, 8, 173, 8, 9, 9, 10, 10, 10, 209, - 10, 10, 13, 13, 13, 173, 10, 10, 10, 10, - 10, 10, 15, 15, 15, 206, 16, 16, 16, 204, - 17, 17, 17, 18, 18, 18, 20, 203, 19, 19, - 19, 15, 22, 16, 17, 20, 202, 23, 15, 16, - 23, 201, 17, 200, 18, 17, 19, 23, 24, 199, - - 25, 22, 22, 197, 24, 22, 24, 27, 19, 25, - 27, 33, 33, 25, 33, 27, 35, 35, 196, 35, - 36, 36, 40, 40, 40, 41, 41, 41, 194, 41, - 41, 47, 47, 47, 193, 41, 41, 41, 41, 41, - 41, 65, 65, 69, 69, 73, 76, 76, 73, 76, - 192, 190, 189, 188, 187, 185, 183, 182, 181, 180, - 47, 210, 210, 211, 211, 212, 212, 213, 213, 214, - 214, 215, 215, 178, 177, 176, 175, 174, 172, 171, - 170, 167, 166, 165, 164, 163, 161, 160, 159, 157, - 156, 153, 152, 151, 150, 148, 147, 146, 145, 144, - - 143, 142, 140, 139, 138, 134, 133, 132, 131, 130, - 127, 126, 125, 124, 122, 121, 120, 119, 118, 117, - 115, 113, 112, 109, 107, 106, 104, 101, 98, 97, - 96, 94, 93, 91, 90, 89, 88, 87, 84, 83, - 82, 81, 80, 79, 77, 72, 71, 70, 68, 67, - 66, 63, 62, 61, 60, 59, 58, 57, 56, 55, - 54, 53, 52, 51, 50, 49, 48, 46, 45, 43, - 42, 37, 34, 31, 28, 26, 21, 14, 11, 7, - 5, 3, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208 + 1, 1, 1, 1, 1, 1, 8, 8, 19, 8, + 9, 9, 10, 10, 10, 197, 10, 19, 10, 10, + 10, 10, 10, 10, 13, 13, 13, 14, 14, 14, + 164, 15, 15, 15, 18, 18, 18, 17, 17, 17, + 21, 194, 14, 164, 15, 35, 35, 192, 18, 14, + 15, 16, 16, 16, 17, 21, 21, 191, 24, 21, + 18, 16, 23, 22, 63, 63, 22, 24, 23, 16, + + 23, 24, 16, 22, 26, 32, 32, 26, 32, 190, + 34, 34, 26, 34, 39, 39, 39, 40, 40, 40, + 189, 40, 188, 40, 40, 40, 40, 40, 40, 45, + 45, 45, 67, 67, 71, 74, 74, 71, 74, 187, + 185, 184, 182, 181, 180, 179, 178, 177, 176, 173, + 172, 171, 170, 168, 45, 198, 198, 199, 199, 200, + 200, 201, 201, 202, 202, 203, 203, 167, 166, 165, + 163, 162, 159, 158, 157, 156, 155, 153, 152, 150, + 149, 146, 145, 144, 143, 141, 140, 139, 138, 137, + 136, 134, 133, 132, 128, 127, 126, 125, 124, 121, + + 120, 119, 117, 116, 115, 114, 113, 112, 110, 109, + 108, 105, 103, 102, 100, 97, 94, 93, 92, 90, + 88, 87, 86, 85, 84, 81, 80, 79, 78, 77, + 75, 70, 69, 68, 66, 65, 64, 61, 60, 59, + 58, 57, 55, 54, 53, 52, 51, 50, 49, 48, + 47, 46, 44, 43, 41, 36, 33, 30, 27, 25, + 20, 11, 7, 5, 3, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + + 196, 196 } ; static yy_state_type yy_last_accepting_state; @@ -823,13 +816,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 209 ) + if ( yy_current_state >= 197 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 283 ); + while ( yy_base[yy_current_state] != 266 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -937,127 +930,115 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -{yylval.number=IOAPIC; return(BUS);} +{yylval.number=PNP; return(BUS);} YY_BREAK case 22: YY_RULE_SETUP -{yylval.number=PNP; return(BUS);} +{yylval.number=I2C; return(BUS);} YY_BREAK case 23: YY_RULE_SETUP -{yylval.number=I2C; return(BUS);} +{yylval.number=CPU_CLUSTER; return(BUS);} YY_BREAK case 24: YY_RULE_SETUP -{yylval.number=CPU_CLUSTER; return(BUS);} +{yylval.number=CPU; return(BUS);} YY_BREAK case 25: YY_RULE_SETUP -{yylval.number=CPU; return(BUS);} +{yylval.number=DOMAIN; return(BUS);} YY_BREAK case 26: YY_RULE_SETUP -{yylval.number=DOMAIN; return(BUS);} +{yylval.number=GENERIC; return(BUS);} YY_BREAK case 27: YY_RULE_SETUP -{yylval.number=GENERIC; return(BUS);} +{yylval.number=MMIO; return(BUS);} YY_BREAK case 28: YY_RULE_SETUP -{yylval.number=MMIO; return(BUS);} +{yylval.number=SPI; return(BUS);} YY_BREAK case 29: YY_RULE_SETUP -{yylval.number=SPI; return(BUS);} +{yylval.number=USB; return(BUS);} YY_BREAK case 30: YY_RULE_SETUP -{yylval.number=USB; return(BUS);} +{yylval.number=GPIO; return(BUS);} YY_BREAK case 31: YY_RULE_SETUP -{yylval.number=GPIO; return(BUS);} +{yylval.number=MDIO; return(BUS);} YY_BREAK case 32: YY_RULE_SETUP -{yylval.number=MDIO; return(BUS);} +{yylval.number=IRQ; return(RESOURCE);} YY_BREAK case 33: YY_RULE_SETUP -{yylval.number=IRQ; return(RESOURCE);} +{yylval.number=DRQ; return(RESOURCE);} YY_BREAK case 34: YY_RULE_SETUP -{yylval.number=DRQ; return(RESOURCE);} +{yylval.number=IO; return(RESOURCE);} YY_BREAK case 35: YY_RULE_SETUP -{yylval.number=IO; return(RESOURCE);} +{return(INHERIT);} YY_BREAK case 36: YY_RULE_SETUP -{return(IOAPIC_IRQ);} +{return(SUBSYSTEMID);} YY_BREAK case 37: YY_RULE_SETUP -{return(INHERIT);} +{return(END);} YY_BREAK case 38: YY_RULE_SETUP -{return(SUBSYSTEMID);} +{return(SLOT_DESC);} YY_BREAK case 39: YY_RULE_SETUP -{return(END);} +{return(SMBIOS_DEV_INFO);} YY_BREAK case 40: YY_RULE_SETUP -{return(SLOT_DESC);} +{return(EQUALS);} YY_BREAK case 41: YY_RULE_SETUP -{return(SMBIOS_DEV_INFO);} +{return(PIPE);} YY_BREAK case 42: YY_RULE_SETUP -{return(EQUALS);} +{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} YY_BREAK case 43: YY_RULE_SETUP -{return(PIPE);} +{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} YY_BREAK case 44: YY_RULE_SETUP {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} YY_BREAK case 45: -YY_RULE_SETUP -{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} - YY_BREAK -case 46: -YY_RULE_SETUP -{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} - YY_BREAK -case 47: -YY_RULE_SETUP -{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(PCIINT);} - YY_BREAK -case 48: -/* rule 48 can match eol */ +/* rule 45 can match eol */ YY_RULE_SETUP {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);} YY_BREAK -case 49: -/* rule 49 can match eol */ +case 46: +/* rule 46 can match eol */ YY_RULE_SETUP {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);} YY_BREAK -case 50: +case 47: YY_RULE_SETUP {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);} YY_BREAK -case 51: +case 48: YY_RULE_SETUP ECHO; YY_BREAK @@ -1357,7 +1338,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 209 ) + if ( yy_current_state >= 197 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -1385,11 +1366,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 209 ) + if ( yy_current_state >= 197 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 208); + yy_is_jam = (yy_current_state == 196); return yy_is_jam ? 0 : yy_current_state; } diff --git a/util/sconfig/main.c b/util/sconfig/main.c index 6618a45b1a..aa79f1e187 100644 --- a/util/sconfig/main.c +++ b/util/sconfig/main.c @@ -881,10 +881,6 @@ static struct device *new_device_with_path(struct bus *parent, new_d->path = ".type=DEVICE_PATH_DOMAIN,{.domain={ .domain = 0x%x }}"; break; - case IOAPIC: - new_d->path = ".type=DEVICE_PATH_IOAPIC,{.ioapic={ .ioapic_id = 0x%x }}"; - break; - case GENERIC: new_d->path = ".type=DEVICE_PATH_GENERIC,{.generic={ .id = 0x%x, .subid = 0x%x }}"; break; @@ -1084,33 +1080,6 @@ void add_pci_subsystem_ids(struct bus *bus, int vendor, int device, dev->inherit_subsystem = inherit; } -void add_ioapic_info(struct bus *bus, int apicid, const char *_srcpin, - int irqpin) -{ - int srcpin; - struct device *dev = bus->dev; - - if (!_srcpin || strlen(_srcpin) < 4 || strncasecmp(_srcpin, "INT", 3) || - _srcpin[3] < 'A' || _srcpin[3] > 'D') { - printf("ERROR: malformed ioapic_irq args: %s\n", _srcpin); - exit(1); - } - - srcpin = _srcpin[3] - 'A'; - - if (dev->bustype != PCI && dev->bustype != DOMAIN) { - printf("ERROR: ioapic config only allowed for PCI devices\n"); - exit(1); - } - - if (srcpin > 3) { - printf("ERROR: srcpin '%d' invalid\n", srcpin); - exit(1); - } - dev->pci_irq_info[srcpin].ioapic_irq_pin = irqpin; - dev->pci_irq_info[srcpin].ioapic_dst_id = apicid; -} - static int dev_has_children(struct device *dev) { struct bus *bus = dev->bus; @@ -1269,7 +1238,6 @@ static struct chip_instance *get_chip_instance(const struct device *dev) static void pass1(FILE *fil, FILE *head, struct device *ptr, struct device *next) { - int pin; struct chip_instance *chip_ins = get_chip_instance(ptr); int has_children = dev_has_children(ptr); @@ -1333,17 +1301,6 @@ static void pass1(FILE *fil, FILE *head, struct device *ptr, struct device *next if (ptr->probe) fprintf(fil, "\t.probe_list = %s_probe_list,\n", ptr->name); fprintf(fil, "#if !DEVTREE_EARLY\n"); - for (pin = 0; pin < 4; pin++) { - if (ptr->pci_irq_info[pin].ioapic_irq_pin > 0) - fprintf(fil, - "\t.pci_irq_info[%d].ioapic_irq_pin = %d,\n", - pin, ptr->pci_irq_info[pin].ioapic_irq_pin); - - if (ptr->pci_irq_info[pin].ioapic_dst_id > 0) - fprintf(fil, - "\t.pci_irq_info[%d].ioapic_dst_id = %d,\n", - pin, ptr->pci_irq_info[pin].ioapic_dst_id); - } fprintf(fil, "\t.chip_ops = &%s_ops,\n", chip_ins->chip->name_underscore); if (chip_ins == &mainboard_instance) diff --git a/util/sconfig/sconfig.h b/util/sconfig/sconfig.h index c2a43af5cf..cb8f7b36ef 100644 --- a/util/sconfig/sconfig.h +++ b/util/sconfig/sconfig.h @@ -24,11 +24,6 @@ struct reg { struct reg *next; }; -struct pci_irq_info { - int ioapic_irq_pin; - int ioapic_dst_id; -}; - struct fw_config_option; struct fw_config_option { const char *name; @@ -150,9 +145,6 @@ struct device { /* Type of bus that exists under this device. */ int bustype; - /* PCI IRQ info. */ - struct pci_irq_info pci_irq_info[4]; - /* Pointer to bus of parent on which this device resides. */ struct bus *parent; @@ -210,9 +202,6 @@ void add_resource(struct bus *bus, int type, int index, int base); void add_pci_subsystem_ids(struct bus *bus, int vendor, int device, int inherit); -void add_ioapic_info(struct bus *bus, int apicid, const char *_srcpin, - int irqpin); - void add_slot_desc(struct bus *bus, char *type, char *length, char *designation, char *data_width); diff --git a/util/sconfig/sconfig.l b/util/sconfig/sconfig.l index f18fb0e637..0e4e708adb 100644 --- a/util/sconfig/sconfig.l +++ b/util/sconfig/sconfig.l @@ -28,7 +28,6 @@ off {yylval.number=0; return(BOOL);} hidden {yylval.number=3; return(STATUS);} mandatory {yylval.number=5; return(STATUS);} pci {yylval.number=PCI; return(BUS);} -ioapic {yylval.number=IOAPIC; return(BUS);} pnp {yylval.number=PNP; return(BUS);} i2c {yylval.number=I2C; return(BUS);} cpu_cluster {yylval.number=CPU_CLUSTER; return(BUS);} @@ -43,7 +42,6 @@ mdio {yylval.number=MDIO; return(BUS);} irq {yylval.number=IRQ; return(RESOURCE);} drq {yylval.number=DRQ; return(RESOURCE);} io {yylval.number=IO; return(RESOURCE);} -ioapic_irq {return(IOAPIC_IRQ);} inherit {return(INHERIT);} subsystemid {return(SUBSYSTEMID);} end {return(END);} @@ -54,7 +52,6 @@ smbios_dev_info {return(SMBIOS_DEV_INFO);} 0x[0-9a-fA-F.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} [0-9.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} [0-9a-fA-F.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} -INT[A-D] {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(PCIINT);} \"\"[^\"]+\"\" {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);} \"[^\"]+\" {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);} [^ \n\t]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);} diff --git a/util/sconfig/sconfig.tab.c_shipped b/util/sconfig/sconfig.tab.c_shipped index dc09332c14..cb60fb59a7 100644 --- a/util/sconfig/sconfig.tab.c_shipped +++ b/util/sconfig/sconfig.tab.c_shipped @@ -142,54 +142,51 @@ enum yysymbol_kind_t YYSYMBOL_NUMBER = 29, /* NUMBER */ YYSYMBOL_SUBSYSTEMID = 30, /* SUBSYSTEMID */ YYSYMBOL_INHERIT = 31, /* INHERIT */ - YYSYMBOL_IOAPIC_IRQ = 32, /* IOAPIC_IRQ */ - YYSYMBOL_IOAPIC = 33, /* IOAPIC */ - YYSYMBOL_PCIINT = 34, /* PCIINT */ - YYSYMBOL_GENERIC = 35, /* GENERIC */ - YYSYMBOL_SPI = 36, /* SPI */ - YYSYMBOL_USB = 37, /* USB */ - YYSYMBOL_MMIO = 38, /* MMIO */ - YYSYMBOL_GPIO = 39, /* GPIO */ - YYSYMBOL_MDIO = 40, /* MDIO */ - YYSYMBOL_FW_CONFIG_TABLE = 41, /* FW_CONFIG_TABLE */ - YYSYMBOL_FW_CONFIG_FIELD = 42, /* FW_CONFIG_FIELD */ - YYSYMBOL_FW_CONFIG_OPTION = 43, /* FW_CONFIG_OPTION */ - YYSYMBOL_FW_CONFIG_PROBE = 44, /* FW_CONFIG_PROBE */ - YYSYMBOL_PIPE = 45, /* PIPE */ - YYSYMBOL_OPS = 46, /* OPS */ - YYSYMBOL_YYACCEPT = 47, /* $accept */ - YYSYMBOL_devtree = 48, /* devtree */ - YYSYMBOL_chipchild_nondev = 49, /* chipchild_nondev */ - YYSYMBOL_chipchild = 50, /* chipchild */ - YYSYMBOL_chipchildren = 51, /* chipchildren */ - YYSYMBOL_chipchildren_dev = 52, /* chipchildren_dev */ - YYSYMBOL_devicechildren = 53, /* devicechildren */ - YYSYMBOL_chip = 54, /* chip */ - YYSYMBOL_55_1 = 55, /* @1 */ - YYSYMBOL_device = 56, /* device */ - YYSYMBOL_57_2 = 57, /* @2 */ - YYSYMBOL_58_3 = 58, /* @3 */ - YYSYMBOL_alias = 59, /* alias */ - YYSYMBOL_status = 60, /* status */ - YYSYMBOL_resource = 61, /* resource */ - YYSYMBOL_reference = 62, /* reference */ - YYSYMBOL_registers = 63, /* registers */ - YYSYMBOL_subsystemid = 64, /* subsystemid */ - YYSYMBOL_ioapic_irq = 65, /* ioapic_irq */ - YYSYMBOL_smbios_slot_desc = 66, /* smbios_slot_desc */ - YYSYMBOL_smbios_dev_info = 67, /* smbios_dev_info */ - YYSYMBOL_fw_config_table = 68, /* fw_config_table */ - YYSYMBOL_fw_config_table_children = 69, /* fw_config_table_children */ - YYSYMBOL_fw_config_field_children = 70, /* fw_config_field_children */ - YYSYMBOL_fw_config_field_bits = 71, /* fw_config_field_bits */ - YYSYMBOL_fw_config_field_bits_repeating = 72, /* fw_config_field_bits_repeating */ - YYSYMBOL_fw_config_field = 73, /* fw_config_field */ - YYSYMBOL_74_4 = 74, /* $@4 */ - YYSYMBOL_75_5 = 75, /* $@5 */ - YYSYMBOL_76_6 = 76, /* $@6 */ - YYSYMBOL_fw_config_option = 77, /* fw_config_option */ - YYSYMBOL_fw_config_probe = 78, /* fw_config_probe */ - YYSYMBOL_ops = 79 /* ops */ + YYSYMBOL_PCIINT = 32, /* PCIINT */ + YYSYMBOL_GENERIC = 33, /* GENERIC */ + YYSYMBOL_SPI = 34, /* SPI */ + YYSYMBOL_USB = 35, /* USB */ + YYSYMBOL_MMIO = 36, /* MMIO */ + YYSYMBOL_GPIO = 37, /* GPIO */ + YYSYMBOL_MDIO = 38, /* MDIO */ + YYSYMBOL_FW_CONFIG_TABLE = 39, /* FW_CONFIG_TABLE */ + YYSYMBOL_FW_CONFIG_FIELD = 40, /* FW_CONFIG_FIELD */ + YYSYMBOL_FW_CONFIG_OPTION = 41, /* FW_CONFIG_OPTION */ + YYSYMBOL_FW_CONFIG_PROBE = 42, /* FW_CONFIG_PROBE */ + YYSYMBOL_PIPE = 43, /* PIPE */ + YYSYMBOL_OPS = 44, /* OPS */ + YYSYMBOL_YYACCEPT = 45, /* $accept */ + YYSYMBOL_devtree = 46, /* devtree */ + YYSYMBOL_chipchild_nondev = 47, /* chipchild_nondev */ + YYSYMBOL_chipchild = 48, /* chipchild */ + YYSYMBOL_chipchildren = 49, /* chipchildren */ + YYSYMBOL_chipchildren_dev = 50, /* chipchildren_dev */ + YYSYMBOL_devicechildren = 51, /* devicechildren */ + YYSYMBOL_chip = 52, /* chip */ + YYSYMBOL_53_1 = 53, /* @1 */ + YYSYMBOL_device = 54, /* device */ + YYSYMBOL_55_2 = 55, /* @2 */ + YYSYMBOL_56_3 = 56, /* @3 */ + YYSYMBOL_alias = 57, /* alias */ + YYSYMBOL_status = 58, /* status */ + YYSYMBOL_resource = 59, /* resource */ + YYSYMBOL_reference = 60, /* reference */ + YYSYMBOL_registers = 61, /* registers */ + YYSYMBOL_subsystemid = 62, /* subsystemid */ + YYSYMBOL_smbios_slot_desc = 63, /* smbios_slot_desc */ + YYSYMBOL_smbios_dev_info = 64, /* smbios_dev_info */ + YYSYMBOL_fw_config_table = 65, /* fw_config_table */ + YYSYMBOL_fw_config_table_children = 66, /* fw_config_table_children */ + YYSYMBOL_fw_config_field_children = 67, /* fw_config_field_children */ + YYSYMBOL_fw_config_field_bits = 68, /* fw_config_field_bits */ + YYSYMBOL_fw_config_field_bits_repeating = 69, /* fw_config_field_bits_repeating */ + YYSYMBOL_fw_config_field = 70, /* fw_config_field */ + YYSYMBOL_71_4 = 71, /* $@4 */ + YYSYMBOL_72_5 = 72, /* $@5 */ + YYSYMBOL_73_6 = 73, /* $@6 */ + YYSYMBOL_fw_config_option = 74, /* fw_config_option */ + YYSYMBOL_fw_config_probe = 75, /* fw_config_probe */ + YYSYMBOL_ops = 76 /* ops */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -517,19 +514,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 113 +#define YYLAST 94 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 47 +#define YYNTOKENS 45 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 33 +#define YYNNTS 32 /* YYNRULES -- Number of rules. */ -#define YYNRULES 62 +#define YYNRULES 60 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 108 +#define YYNSTATES 103 /* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 301 +#define YYMAXUTOK 299 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -572,8 +569,7 @@ static const yytype_int8 yytranslate[] = 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46 + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 }; #if YYDEBUG @@ -582,11 +578,11 @@ static const yytype_uint8 yyrline[] = { 0, 26, 26, 26, 26, 29, 29, 29, 30, 30, 31, 31, 32, 32, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 36, 36, 45, 45, 53, - 53, 61, 63, 67, 67, 69, 72, 75, 78, 81, - 84, 87, 90, 93, 96, 99, 103, 106, 106, 109, - 109, 112, 118, 118, 121, 120, 125, 125, 133, 133, - 139, 143, 146 + 34, 34, 34, 34, 36, 36, 45, 45, 53, 53, + 61, 63, 67, 67, 69, 72, 75, 78, 81, 84, + 87, 90, 93, 96, 100, 103, 103, 106, 106, 109, + 115, 115, 118, 117, 122, 122, 130, 130, 136, 140, + 143 }; #endif @@ -606,13 +602,12 @@ static const char *const yytname[] = "REGISTER", "ALIAS", "REFERENCE", "ASSOCIATION", "BOOL", "STATUS", "MANDATORY", "BUS", "RESOURCE", "END", "EQUALS", "HEX", "STRING", "PCI", "PNP", "I2C", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "SLOT_DESC", - "SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", - "IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO", - "GPIO", "MDIO", "FW_CONFIG_TABLE", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION", - "FW_CONFIG_PROBE", "PIPE", "OPS", "$accept", "devtree", - "chipchild_nondev", "chipchild", "chipchildren", "chipchildren_dev", - "devicechildren", "chip", "@1", "device", "@2", "@3", "alias", "status", - "resource", "reference", "registers", "subsystemid", "ioapic_irq", + "SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", "PCIINT", + "GENERIC", "SPI", "USB", "MMIO", "GPIO", "MDIO", "FW_CONFIG_TABLE", + "FW_CONFIG_FIELD", "FW_CONFIG_OPTION", "FW_CONFIG_PROBE", "PIPE", "OPS", + "$accept", "devtree", "chipchild_nondev", "chipchild", "chipchildren", + "chipchildren_dev", "devicechildren", "chip", "@1", "device", "@2", "@3", + "alias", "status", "resource", "reference", "registers", "subsystemid", "smbios_slot_desc", "smbios_dev_info", "fw_config_table", "fw_config_table_children", "fw_config_field_children", "fw_config_field_bits", "fw_config_field_bits_repeating", @@ -627,7 +622,7 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-49) +#define YYPACT_NINF (-51) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -641,17 +636,17 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int8 yypact[] = { - -49, 6, -49, 8, -49, -49, -49, -49, 1, 45, - -49, 18, -49, 12, 24, 25, 45, 3, -49, -49, - -49, -49, -6, 37, 26, 41, 49, -49, -49, 45, - 29, 14, -49, 19, 55, 46, 47, -49, -49, -49, - -49, -49, 33, -49, -12, -49, -49, -49, 50, 19, - -49, -49, -7, 29, 14, -49, -49, 51, -49, -49, - -49, -49, -49, -49, 2, 40, 0, -49, -49, -49, - 42, -49, 53, 43, 44, 48, 57, 58, -49, -49, - -49, -49, -49, -49, -49, -49, -49, -49, 7, 61, - 62, 63, 52, 32, 65, -49, -49, 54, 67, -49, - 59, 56, -49, -49, 69, -49, -49, -49 + -51, 12, -51, 6, -51, -51, -51, -51, -3, 49, + -51, 7, -51, 10, 23, 24, 49, 14, -51, -51, + -51, -51, 16, 26, 17, 33, 42, -51, -51, 49, + 28, 18, -51, 11, 53, 38, 43, -51, -51, -51, + -51, -51, 34, -51, -12, -51, -51, -51, 45, 11, + -51, -51, -8, 28, 18, -51, -51, 47, -51, -51, + -51, -51, -51, -51, -7, 37, 0, -51, -51, -51, + 39, -51, 50, 40, 41, 54, 55, -51, -51, -51, + -51, -51, -51, -51, -51, -51, 5, 58, 57, 59, + 46, 60, -51, -51, 51, 61, -51, 48, -51, -51, + 64, -51, -51 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -659,35 +654,35 @@ static const yytype_int8 yypact[] = means the default is an error. */ static const yytype_int8 yydefact[] = { - 2, 0, 1, 0, 48, 3, 4, 25, 0, 0, - 46, 0, 47, 0, 0, 0, 0, 0, 5, 11, - 7, 6, 58, 0, 0, 0, 0, 13, 26, 12, - 56, 53, 50, 0, 31, 0, 0, 9, 10, 8, - 51, 50, 0, 54, 0, 33, 34, 29, 0, 0, - 37, 36, 0, 0, 53, 50, 59, 0, 49, 24, - 32, 27, 57, 52, 0, 0, 0, 24, 55, 60, - 0, 30, 0, 0, 0, 0, 0, 0, 15, 14, - 16, 21, 17, 18, 19, 20, 22, 23, 0, 0, - 0, 45, 0, 0, 0, 62, 28, 0, 43, 44, - 38, 0, 61, 35, 42, 39, 40, 41 + 2, 0, 1, 0, 46, 3, 4, 24, 0, 0, + 44, 0, 45, 0, 0, 0, 0, 0, 5, 11, + 7, 6, 56, 0, 0, 0, 0, 13, 25, 12, + 54, 51, 48, 0, 30, 0, 0, 9, 10, 8, + 49, 48, 0, 52, 0, 32, 33, 28, 0, 0, + 36, 35, 0, 0, 51, 48, 57, 0, 47, 23, + 31, 26, 55, 50, 0, 0, 0, 23, 53, 58, + 0, 29, 0, 0, 0, 0, 0, 15, 14, 16, + 20, 17, 18, 19, 21, 22, 0, 0, 0, 43, + 0, 0, 60, 27, 0, 41, 42, 37, 59, 34, + 40, 38, 39 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -49, -49, 60, -49, -49, 72, 11, -1, -49, -28, - -49, -49, -49, 64, -49, -49, -48, -49, -49, -49, - -49, -49, -49, -33, 66, 38, -49, -49, -49, -49, - -49, -49, -49 + -51, -51, 62, -51, -51, 66, 19, -1, -51, -28, + -51, -51, -51, 35, -51, -51, -50, -51, -51, -51, + -51, -51, -16, 52, 29, -51, -51, -51, -51, -51, + -51, -51 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { 0, 1, 16, 38, 29, 17, 66, 18, 9, 19, - 67, 59, 49, 47, 80, 20, 21, 82, 83, 84, - 85, 6, 8, 44, 31, 43, 12, 55, 41, 32, - 58, 86, 87 + 67, 59, 49, 47, 79, 20, 21, 81, 82, 83, + 6, 8, 44, 31, 43, 12, 55, 41, 32, 58, + 84, 85 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -695,63 +690,59 @@ static const yytype_int8 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int8 yytable[] = { - 5, 39, 56, 3, 13, 14, 2, 62, 52, 3, - 3, 13, 14, 70, 71, 10, 68, 28, 81, 23, - 70, 96, 64, 30, 24, 7, 72, 73, 45, 46, - 74, 57, 75, 72, 73, 22, 57, 74, 79, 75, - 81, 25, 26, 11, 76, 57, 77, 4, 3, 13, - 14, 76, 15, 77, 33, 34, 35, 36, 40, 42, - 79, 48, 53, 50, 51, 78, 101, 60, 65, 69, - 90, 89, 91, 92, 94, 95, 97, 93, 88, 98, - 99, 100, 102, 103, 104, 106, 107, 78, 27, 37, - 105, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 0, 0, 0, 61 + 5, 39, 56, 3, 13, 14, 62, 68, 3, 13, + 14, 10, 2, 70, 71, 3, 80, 23, 70, 93, + 45, 46, 24, 7, 22, 52, 72, 73, 28, 57, + 74, 72, 73, 57, 57, 74, 80, 11, 78, 64, + 25, 26, 75, 33, 76, 30, 34, 75, 35, 76, + 36, 4, 3, 13, 14, 50, 15, 40, 78, 48, + 51, 42, 60, 53, 65, 77, 69, 88, 87, 89, + 90, 91, 92, 94, 95, 97, 96, 98, 100, 101, + 99, 102, 27, 63, 61, 77, 86, 0, 0, 0, + 0, 37, 0, 0, 54 }; static const yytype_int8 yycheck[] = { - 1, 29, 14, 3, 4, 5, 0, 14, 41, 3, - 3, 4, 5, 13, 14, 14, 14, 14, 66, 7, - 13, 14, 55, 29, 12, 17, 26, 27, 9, 10, - 30, 43, 32, 26, 27, 17, 43, 30, 66, 32, - 88, 17, 17, 42, 44, 43, 46, 41, 3, 4, - 5, 44, 7, 46, 17, 29, 15, 8, 29, 45, - 88, 6, 29, 17, 17, 66, 34, 17, 17, 29, - 17, 29, 29, 29, 17, 17, 15, 29, 67, 17, - 17, 29, 17, 29, 17, 29, 17, 88, 16, 29, - 31, -1, 54, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, - -1, -1, -1, 49 + 1, 29, 14, 3, 4, 5, 14, 14, 3, 4, + 5, 14, 0, 13, 14, 3, 66, 7, 13, 14, + 9, 10, 12, 17, 17, 41, 26, 27, 14, 41, + 30, 26, 27, 41, 41, 30, 86, 40, 66, 55, + 17, 17, 42, 17, 44, 29, 29, 42, 15, 44, + 8, 39, 3, 4, 5, 17, 7, 29, 86, 6, + 17, 43, 17, 29, 17, 66, 29, 17, 29, 29, + 29, 17, 17, 15, 17, 29, 17, 17, 17, 31, + 29, 17, 16, 54, 49, 86, 67, -1, -1, -1, + -1, 29, -1, -1, 42 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_int8 yystos[] = { - 0, 48, 0, 3, 41, 54, 68, 17, 69, 55, - 14, 42, 73, 4, 5, 7, 49, 52, 54, 56, - 62, 63, 17, 7, 12, 17, 17, 52, 14, 51, - 29, 71, 76, 17, 29, 15, 8, 49, 50, 56, - 29, 75, 45, 72, 70, 9, 10, 60, 6, 59, - 17, 17, 70, 29, 71, 74, 14, 43, 77, 58, - 17, 60, 14, 72, 70, 17, 53, 57, 14, 29, - 13, 14, 26, 27, 30, 32, 44, 46, 54, 56, - 61, 63, 64, 65, 66, 67, 78, 79, 53, 29, - 17, 29, 29, 29, 17, 17, 14, 15, 17, 17, - 29, 34, 17, 29, 17, 31, 29, 17 + 0, 46, 0, 3, 39, 52, 65, 17, 66, 53, + 14, 40, 70, 4, 5, 7, 47, 50, 52, 54, + 60, 61, 17, 7, 12, 17, 17, 50, 14, 49, + 29, 68, 73, 17, 29, 15, 8, 47, 48, 54, + 29, 72, 43, 69, 67, 9, 10, 58, 6, 57, + 17, 17, 67, 29, 68, 71, 14, 41, 74, 56, + 17, 58, 14, 69, 67, 17, 51, 55, 14, 29, + 13, 14, 26, 27, 30, 42, 44, 52, 54, 59, + 61, 62, 63, 64, 75, 76, 51, 29, 17, 29, + 29, 17, 17, 14, 15, 17, 17, 29, 17, 29, + 17, 31, 17 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int8 yyr1[] = { - 0, 47, 48, 48, 48, 49, 49, 49, 50, 50, - 51, 51, 52, 52, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 55, 54, 57, 56, 58, - 56, 59, 59, 60, 60, 61, 62, 63, 64, 64, - 65, 66, 66, 66, 67, 67, 68, 69, 69, 70, - 70, 71, 72, 72, 74, 73, 75, 73, 76, 73, - 77, 78, 79 + 0, 45, 46, 46, 46, 47, 47, 47, 48, 48, + 49, 49, 50, 50, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 53, 52, 55, 54, 56, 54, + 57, 57, 58, 58, 59, 60, 61, 62, 62, 63, + 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, + 69, 69, 71, 70, 72, 70, 73, 70, 74, 75, + 76 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -759,11 +750,11 @@ static const yytype_int8 yyr2[] = { 0, 2, 0, 2, 2, 1, 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 0, 5, 0, 8, 0, - 7, 0, 2, 1, 1, 4, 4, 4, 3, 4, - 4, 5, 4, 3, 3, 2, 3, 2, 0, 2, - 0, 2, 3, 0, 0, 7, 0, 6, 0, 5, - 3, 3, 2 + 2, 2, 2, 0, 0, 5, 0, 8, 0, 7, + 0, 2, 1, 1, 4, 4, 4, 3, 4, 5, + 4, 3, 3, 2, 3, 2, 0, 2, 0, 2, + 3, 0, 0, 7, 0, 6, 0, 5, 3, 3, + 2 }; @@ -1230,7 +1221,7 @@ yyreduce: { cur_parent = root_parent; } break; - case 25: /* @1: %empty */ + case 24: /* @1: %empty */ { (yyval.chip_instance) = new_chip_instance((yyvsp[0].string)); chip_enqueue_tail(cur_chip_instance); @@ -1238,113 +1229,109 @@ yyreduce: } break; - case 26: /* chip: CHIP STRING @1 chipchildren_dev END */ + case 25: /* chip: CHIP STRING @1 chipchildren_dev END */ { cur_chip_instance = chip_dequeue_tail(); } break; - case 27: /* @2: %empty */ + case 26: /* @2: %empty */ { (yyval.dev) = new_device_raw(cur_parent, cur_chip_instance, (yyvsp[-3].number), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].number)); cur_parent = (yyval.dev)->last_bus; } break; - case 28: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END */ + case 27: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END */ { cur_parent = (yyvsp[-2].dev)->parent; } break; - case 29: /* @3: %empty */ + case 28: /* @3: %empty */ { (yyval.dev) = new_device_reference(cur_parent, cur_chip_instance, (yyvsp[-1].string), (yyvsp[0].number)); cur_parent = (yyval.dev)->last_bus; } break; - case 30: /* device: DEVICE REFERENCE STRING status @3 devicechildren END */ + case 29: /* device: DEVICE REFERENCE STRING status @3 devicechildren END */ { cur_parent = (yyvsp[-2].dev)->parent; } break; - case 31: /* alias: %empty */ + case 30: /* alias: %empty */ { (yyval.string) = NULL; } break; - case 32: /* alias: ALIAS STRING */ + case 31: /* alias: ALIAS STRING */ { (yyval.string) = (yyvsp[0].string); } break; - case 35: /* resource: RESOURCE NUMBER EQUALS NUMBER */ + case 34: /* resource: RESOURCE NUMBER EQUALS NUMBER */ { add_resource(cur_parent, (yyvsp[-3].number), strtol((yyvsp[-2].string), NULL, 0), strtol((yyvsp[0].string), NULL, 0)); } break; - case 36: /* reference: REFERENCE STRING ASSOCIATION STRING */ + case 35: /* reference: REFERENCE STRING ASSOCIATION STRING */ { add_reference(cur_chip_instance, (yyvsp[0].string), (yyvsp[-2].string)); } break; - case 37: /* registers: REGISTER STRING EQUALS STRING */ + case 36: /* registers: REGISTER STRING EQUALS STRING */ { add_register(cur_chip_instance, (yyvsp[-2].string), (yyvsp[0].string)); } break; - case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER */ + case 37: /* subsystemid: SUBSYSTEMID NUMBER NUMBER */ { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-1].string), NULL, 16), strtol((yyvsp[0].string), NULL, 16), 0); } break; - case 39: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT */ + case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT */ { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-2].string), NULL, 16), strtol((yyvsp[-1].string), NULL, 16), 1); } break; - case 40: /* ioapic_irq: IOAPIC_IRQ NUMBER PCIINT NUMBER */ - { add_ioapic_info(cur_parent, strtol((yyvsp[-2].string), NULL, 16), (yyvsp[-1].string), strtol((yyvsp[0].string), NULL, 16)); } - break; - - case 41: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING */ + case 39: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING */ { add_slot_desc(cur_parent, (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string)); } break; - case 42: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING */ + case 40: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING */ { add_slot_desc(cur_parent, (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string), NULL); } break; - case 43: /* smbios_slot_desc: SLOT_DESC STRING STRING */ + case 41: /* smbios_slot_desc: SLOT_DESC STRING STRING */ { add_slot_desc(cur_parent, (yyvsp[-1].string), (yyvsp[0].string), NULL, NULL); } break; - case 44: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING */ + case 42: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING */ { add_smbios_dev_info(cur_parent, strtol((yyvsp[-1].string), NULL, 0), (yyvsp[0].string)); } break; - case 45: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER */ + case 43: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER */ { add_smbios_dev_info(cur_parent, strtol((yyvsp[0].string), NULL, 0), NULL); } break; - case 46: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END */ + case 44: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END */ { } break; - case 51: /* fw_config_field_bits: NUMBER NUMBER */ + case 49: /* fw_config_field_bits: NUMBER NUMBER */ { append_fw_config_bits(&cur_bits, strtoul((yyvsp[-1].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0)); } break; - case 54: /* $@4: %empty */ + case 52: /* $@4: %empty */ { cur_field = new_fw_config_field((yyvsp[-2].string), cur_bits); } break; - case 55: /* fw_config_field: FW_CONFIG_FIELD STRING fw_config_field_bits fw_config_field_bits_repeating $@4 fw_config_field_children END */ + case 53: /* fw_config_field: FW_CONFIG_FIELD STRING fw_config_field_bits fw_config_field_bits_repeating $@4 fw_config_field_children END */ { cur_bits = NULL; } break; - case 56: /* $@5: %empty */ + case 54: /* $@5: %empty */ { cur_bits = NULL; append_fw_config_bits(&cur_bits, strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0)); @@ -1352,29 +1339,29 @@ yyreduce: } break; - case 57: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END */ + case 55: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END */ { cur_bits = NULL; } break; - case 58: /* $@6: %empty */ + case 56: /* $@6: %empty */ { cur_field = get_fw_config_field((yyvsp[0].string)); } break; - case 59: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END */ + case 57: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END */ { cur_bits = NULL; } break; - case 60: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER */ + case 58: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER */ { add_fw_config_option(cur_field, (yyvsp[-1].string), strtoull((yyvsp[0].string), NULL, 0)); } break; - case 61: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING */ + case 59: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING */ { add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); } break; - case 62: /* ops: OPS STRING */ + case 60: /* ops: OPS STRING */ { add_device_ops(cur_parent, (yyvsp[0].string)); } break; diff --git a/util/sconfig/sconfig.tab.h_shipped b/util/sconfig/sconfig.tab.h_shipped index 2149db6f49..eb5b97cba8 100644 --- a/util/sconfig/sconfig.tab.h_shipped +++ b/util/sconfig/sconfig.tab.h_shipped @@ -83,21 +83,19 @@ extern int yydebug; NUMBER = 284, /* NUMBER */ SUBSYSTEMID = 285, /* SUBSYSTEMID */ INHERIT = 286, /* INHERIT */ - IOAPIC_IRQ = 287, /* IOAPIC_IRQ */ - IOAPIC = 288, /* IOAPIC */ - PCIINT = 289, /* PCIINT */ - GENERIC = 290, /* GENERIC */ - SPI = 291, /* SPI */ - USB = 292, /* USB */ - MMIO = 293, /* MMIO */ - GPIO = 294, /* GPIO */ - MDIO = 295, /* MDIO */ - FW_CONFIG_TABLE = 296, /* FW_CONFIG_TABLE */ - FW_CONFIG_FIELD = 297, /* FW_CONFIG_FIELD */ - FW_CONFIG_OPTION = 298, /* FW_CONFIG_OPTION */ - FW_CONFIG_PROBE = 299, /* FW_CONFIG_PROBE */ - PIPE = 300, /* PIPE */ - OPS = 301 /* OPS */ + PCIINT = 287, /* PCIINT */ + GENERIC = 288, /* GENERIC */ + SPI = 289, /* SPI */ + USB = 290, /* USB */ + MMIO = 291, /* MMIO */ + GPIO = 292, /* GPIO */ + MDIO = 293, /* MDIO */ + FW_CONFIG_TABLE = 294, /* FW_CONFIG_TABLE */ + FW_CONFIG_FIELD = 295, /* FW_CONFIG_FIELD */ + FW_CONFIG_OPTION = 296, /* FW_CONFIG_OPTION */ + FW_CONFIG_PROBE = 297, /* FW_CONFIG_PROBE */ + PIPE = 298, /* PIPE */ + OPS = 299 /* OPS */ }; typedef enum yytokentype yytoken_kind_t; #endif diff --git a/util/sconfig/sconfig.y b/util/sconfig/sconfig.y index 4f6ef87318..17ab9a5839 100644 --- a/util/sconfig/sconfig.y +++ b/util/sconfig/sconfig.y @@ -21,7 +21,7 @@ static struct fw_config_field_bits *cur_bits; uint64_t number; } -%token CHIP DEVICE REGISTER ALIAS REFERENCE ASSOCIATION BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT IOAPIC_IRQ IOAPIC PCIINT GENERIC SPI USB MMIO GPIO MDIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE PIPE OPS +%token CHIP DEVICE REGISTER ALIAS REFERENCE ASSOCIATION BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT PCIINT GENERIC SPI USB MMIO GPIO MDIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE PIPE OPS %% devtree: { cur_parent = root_parent; } | devtree chip | devtree fw_config_table; @@ -31,7 +31,7 @@ chipchild: device | chipchild_nondev; chipchildren: chipchildren chipchild | /* empty */ ; chipchildren_dev: device chipchildren | chipchild_nondev chipchildren_dev; -devicechildren: devicechildren device | devicechildren chip | devicechildren resource | devicechildren subsystemid | devicechildren ioapic_irq | devicechildren smbios_slot_desc | devicechildren smbios_dev_info | devicechildren registers | devicechildren fw_config_probe | devicechildren ops | /* empty */ ; +devicechildren: devicechildren device | devicechildren chip | devicechildren resource | devicechildren subsystemid | devicechildren smbios_slot_desc | devicechildren smbios_dev_info | devicechildren registers | devicechildren fw_config_probe | devicechildren ops | /* empty */ ; chip: CHIP STRING /* == path */ { $<chip_instance>$ = new_chip_instance($<string>2); @@ -81,9 +81,6 @@ subsystemid: SUBSYSTEMID NUMBER NUMBER subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT { add_pci_subsystem_ids(cur_parent, strtol($<string>2, NULL, 16), strtol($<string>3, NULL, 16), 1); }; -ioapic_irq: IOAPIC_IRQ NUMBER PCIINT NUMBER - { add_ioapic_info(cur_parent, strtol($<string>2, NULL, 16), $<string>3, strtol($<string>4, NULL, 16)); }; - smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING { add_slot_desc(cur_parent, $<string>2, $<string>3, $<string>4, $<string>5); }; |