int main (int argc, char **argv) { int i; if (argc < 2) { fprintf(stderr, "usage: %s filename [more filenames...]\n", argv[0]); exit(EXIT_FAILURE); } for (i=1; i<argc; i++) print_power(argv[i]); return 0; }
static void print_cftable_entry_cb(cistpl_cftable_entry_cb_t *entry) { int i; printf("%scftable_entry_cb 0x%2.2x%s\n", indent, entry->index, (entry->flags & CISTPL_CFTABLE_DEFAULT) ? " [default]" : ""); if (entry->flags & ~CISTPL_CFTABLE_DEFAULT) { printf("%s ", indent); if (entry->flags & CISTPL_CFTABLE_MASTER) printf(" [master]"); if (entry->flags & CISTPL_CFTABLE_INVALIDATE) printf(" [invalidate]"); if (entry->flags & CISTPL_CFTABLE_VGA_PALETTE) printf(" [vga palette]"); if (entry->flags & CISTPL_CFTABLE_PARITY) printf(" [parity]"); if (entry->flags & CISTPL_CFTABLE_WAIT) printf(" [wait]"); if (entry->flags & CISTPL_CFTABLE_SERR) printf(" [serr]"); if (entry->flags & CISTPL_CFTABLE_FAST_BACK) printf(" [fast back]"); if (entry->flags & CISTPL_CFTABLE_BINARY_AUDIO) printf(" [binary audio]"); if (entry->flags & CISTPL_CFTABLE_PWM_AUDIO) printf(" [pwm audio]"); putchar('\n'); } if (entry->vcc.present) print_power("Vcc", &entry->vcc); if (entry->vpp1.present) print_power("Vpp1", &entry->vpp1); if (entry->vpp2.present) print_power("Vpp2", &entry->vpp2); if (entry->io) { printf("%s io_base", indent); for (i = 0; i < 8; i++) if (entry->io & (1<<i)) printf(" %d", i); putchar('\n'); } if (entry->irq.IRQInfo1) { printf("%s irq ", indent); if (entry->irq.IRQInfo1 & IRQ_INFO2_VALID) printf("mask 0x%4.4x", entry->irq.IRQInfo2); else printf("%u", entry->irq.IRQInfo1 & IRQ_MASK); if (entry->irq.IRQInfo1 & IRQ_LEVEL_ID) printf(" [level]"); if (entry->irq.IRQInfo1 & IRQ_PULSE_ID) printf(" [pulse]"); if (entry->irq.IRQInfo1 & IRQ_SHARE_ID) printf(" [shared]"); putchar('\n'); } if (entry->mem) { printf("%s mem_base", indent); for (i = 0; i < 8; i++) if (entry->mem & (1<<i)) printf(" %d", i); putchar('\n'); } if (verbose && entry->subtuples) printf("%s %d bytes in subtuples\n", indent, entry->subtuples); }
static void print_cftable_entry(cistpl_cftable_entry_t *entry) { int i; printf("%scftable_entry 0x%2.2x%s\n", indent, entry->index, (entry->flags & CISTPL_CFTABLE_DEFAULT) ? " [default]" : ""); if (entry->flags & ~CISTPL_CFTABLE_DEFAULT) { printf("%s ", indent); if (entry->flags & CISTPL_CFTABLE_BVDS) printf(" [bvd]"); if (entry->flags & CISTPL_CFTABLE_WP) printf(" [wp]"); if (entry->flags & CISTPL_CFTABLE_RDYBSY) printf(" [rdybsy]"); if (entry->flags & CISTPL_CFTABLE_MWAIT) printf(" [mwait]"); if (entry->flags & CISTPL_CFTABLE_AUDIO) printf(" [audio]"); if (entry->flags & CISTPL_CFTABLE_READONLY) printf(" [readonly]"); if (entry->flags & CISTPL_CFTABLE_PWRDOWN) printf(" [pwrdown]"); putchar('\n'); } if (entry->vcc.present) print_power("Vcc", &entry->vcc); if (entry->vpp1.present) print_power("Vpp1", &entry->vpp1); if (entry->vpp2.present) print_power("Vpp2", &entry->vpp2); if ((entry->timing.wait != 0) || (entry->timing.ready != 0) || (entry->timing.reserved != 0)) { printf("%s timing", indent); if (entry->timing.wait != 0) { printf(" wait "); print_time(entry->timing.wait, entry->timing.waitscale); } if (entry->timing.ready != 0) { printf(" ready "); print_time(entry->timing.ready, entry->timing.rdyscale); } if (entry->timing.reserved != 0) { printf(" reserved "); print_time(entry->timing.reserved, entry->timing.rsvscale); } putchar('\n'); } if (entry->io.nwin) { cistpl_io_t *io = &entry->io; printf("%s io", indent); for (i = 0; i < io->nwin; i++) { if (i) putchar(','); printf(" 0x%4.4x-0x%4.4x", io->win[i].base, io->win[i].base+io->win[i].len-1); } printf(" [lines=%d]", io->flags & CISTPL_IO_LINES_MASK); if (io->flags & CISTPL_IO_8BIT) printf(" [8bit]"); if (io->flags & CISTPL_IO_16BIT) printf(" [16bit]"); if (io->flags & CISTPL_IO_RANGE) printf(" [range]"); putchar('\n'); } if (entry->irq.IRQInfo1) { printf("%s irq ", indent); if (entry->irq.IRQInfo1 & IRQ_INFO2_VALID) printf("mask 0x%04x", entry->irq.IRQInfo2); else printf("%u", entry->irq.IRQInfo1 & IRQ_MASK); if (entry->irq.IRQInfo1 & IRQ_LEVEL_ID) printf(" [level]"); if (entry->irq.IRQInfo1 & IRQ_PULSE_ID) printf(" [pulse]"); if (entry->irq.IRQInfo1 & IRQ_SHARE_ID) printf(" [shared]"); putchar('\n'); } if (entry->mem.nwin) { cistpl_mem_t *mem = &entry->mem; printf("%s memory", indent); for (i = 0; i < mem->nwin; i++) { if (i) putchar(','); printf(" 0x%4.4x-0x%4.4x @ 0x%4.4x", mem->win[i].card_addr, mem->win[i].card_addr + mem->win[i].len-1, mem->win[i].host_addr); } putchar('\n'); } if (verbose && entry->subtuples) printf("%s %d bytes in subtuples\n", indent, entry->subtuples); }