summaryrefslogtreecommitdiff
path: root/util/sconfig/sconfig.l
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2019-04-12 14:42:17 +0200
committerPatrick Georgi <pgeorgi@google.com>2019-05-07 16:04:56 +0000
commitac24d3c3118f0ffbf7f26e0ef867c58dbdcc98e3 (patch)
treee847a4cfb66338b9a5da452046308a4d4c6f1239 /util/sconfig/sconfig.l
parent1a930584482c1cafb7ed02a9c37fcfe7cb61fb3f (diff)
downloadcoreboot-ac24d3c3118f0ffbf7f26e0ef867c58dbdcc98e3.tar.xz
sconfig: Add SMBIOS type 9 entries
Add the new field 'smbios_slot_desc', which takes 2 to 4 arguments. The field is valid for PCI devices and only compiled if SMBIOS table generation is enabled. smbios_slot_desc arguments: 1. slot type 2. slot lenth 3. slot designation (optional) 4. slot data width (optional) Example: device pci 1c.1 on smbios_slot_desc "21" "3" "MINI-PCI-FULL" "8" end # PCIe Port #2 Integrated Wireless LAN Tested on Lenovo T520. Change-Id: If95aae3c322d3da47637613b9a872ba1f7af9080 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32307 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Diffstat (limited to 'util/sconfig/sconfig.l')
-rwxr-xr-xutil/sconfig/sconfig.l73
1 files changed, 37 insertions, 36 deletions
diff --git a/util/sconfig/sconfig.l b/util/sconfig/sconfig.l
index b21cca54b1..87de6e2763 100755
--- a/util/sconfig/sconfig.l
+++ b/util/sconfig/sconfig.l
@@ -21,40 +21,41 @@ int linenum = 0;
%}
%option nodebug
%%
-[ \t]+ {}
-#.*\n {linenum++;}
-\r?\n {linenum++;}
-chip {return(CHIP);}
-device {return(DEVICE);}
-register {return(REGISTER);}
-on {yylval.number=1; return(BOOL);}
-off {yylval.number=0; return(BOOL);}
-hidden {yylval.number=3; return(HIDDEN);}
-pci {yylval.number=PCI; return(BUS);}
-ioapic {yylval.number=IOAPIC; return(BUS);}
-pnp {yylval.number=PNP; return(BUS);}
-i2c {yylval.number=I2C; return(BUS);}
-lapic {yylval.number=APIC; return(BUS);}
-cpu_cluster {yylval.number=CPU_CLUSTER; return(BUS);}
-cpu {yylval.number=CPU; return(BUS);}
-domain {yylval.number=DOMAIN; return(BUS);}
-generic {yylval.number=GENERIC; return(BUS);}
-mmio {yylval.number=MMIO; return(BUS);}
-spi {yylval.number=SPI; return(BUS);}
-usb {yylval.number=USB; 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);}
-= {return(EQUALS);}
-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);}
+[ \t]+ {}
+#.*\n {linenum++;}
+\r?\n {linenum++;}
+chip {return(CHIP);}
+device {return(DEVICE);}
+register {return(REGISTER);}
+on {yylval.number=1; return(BOOL);}
+off {yylval.number=0; return(BOOL);}
+hidden {yylval.number=3; return(HIDDEN);}
+pci {yylval.number=PCI; return(BUS);}
+ioapic {yylval.number=IOAPIC; return(BUS);}
+pnp {yylval.number=PNP; return(BUS);}
+i2c {yylval.number=I2C; return(BUS);}
+lapic {yylval.number=APIC; return(BUS);}
+cpu_cluster {yylval.number=CPU_CLUSTER; return(BUS);}
+cpu {yylval.number=CPU; return(BUS);}
+domain {yylval.number=DOMAIN; return(BUS);}
+generic {yylval.number=GENERIC; return(BUS);}
+mmio {yylval.number=MMIO; return(BUS);}
+spi {yylval.number=SPI; return(BUS);}
+usb {yylval.number=USB; 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);}
+smbios_slot_desc {return(SLOT_DESC);}
+= {return(EQUALS);}
+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);}
%%