/**************************************************************************** * try_add_layout_file_entry * * Attempt to add the given CMOS entry to our internal repository. Exit with * an error message on failure. ****************************************************************************/ static void try_add_layout_file_entry(const cmos_entry_t * cmos_entry) { const cmos_entry_t *conflict; switch (add_cmos_entry(cmos_entry, &conflict)) { case OK: return; case CMOS_AREA_OUT_OF_RANGE: fprintf(stderr, "%s: Error on line %d of CMOS layout file. Area " "covered by entry %s is out of range.\n", prog_name, line_num, cmos_entry->name); break; case CMOS_AREA_TOO_WIDE: fprintf(stderr, "%s: Error on line %d of CMOS layout file. Area " "covered by entry %s is too wide.\n", prog_name, line_num, cmos_entry->name); break; case LAYOUT_ENTRY_OVERLAP: fprintf(stderr, "%s: Error on line %d of CMOS layout file. Layouts " "overlap for entries %s and %s.\n", prog_name, line_num, cmos_entry->name, conflict->name); break; case LAYOUT_ENTRY_BAD_LENGTH: /* Silently ignore entries with zero length. Although this should * never happen in practice, we should handle the case in a * reasonable manner just to be safe. */ return; default: BUG(); } exit(1); }
/**************************************************************************** * try_add_cmos_table_entry * * Attempt to add a CMOS entry to our internal repository. Exit with an * error message on failure. ****************************************************************************/ static void try_add_cmos_table_entry(cmos_entry_t * cmos_entry) { const cmos_entry_t *conflict; switch (add_cmos_entry(cmos_entry, &conflict)) { case OK: return; case CMOS_AREA_OUT_OF_RANGE: fprintf(stderr, "%s: Bad CMOS option layout in CMOS option table entry " "%s.\n", prog_name, cmos_entry->name); break; case CMOS_AREA_TOO_WIDE: fprintf(stderr, "%s: Area too wide for CMOS option table entry %s.\n", prog_name, cmos_entry->name); break; case LAYOUT_ENTRY_OVERLAP: fprintf(stderr, "%s: CMOS option table entries %s and %s have overlapping " "layouts.\n", prog_name, cmos_entry->name, conflict->name); break; case LAYOUT_ENTRY_BAD_LENGTH: /* Silently ignore entries with zero length. Although this should * never happen in practice, we should handle the case in a * reasonable manner just to be safe. */ return; default: BUG(); } exit(1); }