1521fa314SDavid van Moolenbroek# Derived from libc errlist.awk 2521fa314SDavid van Moolenbroek 3521fa314SDavid van MoolenbroekBEGIN { 4521fa314SDavid van Moolenbroek printf("/* This file is automatically generated by error.awk */\n\n"); 5521fa314SDavid van Moolenbroek printf("#include \"inc.h\"\n\n"); 6521fa314SDavid van Moolenbroek printf("static const char *const errors[] = {\n"); 7521fa314SDavid van Moolenbroek} 8521fa314SDavid van Moolenbroek/^#define/ { 9521fa314SDavid van Moolenbroek name = $2; 10521fa314SDavid van Moolenbroek if (name == "ELAST") 11521fa314SDavid van Moolenbroek next; 12521fa314SDavid van Moolenbroek number = $3; 13521fa314SDavid van Moolenbroek if (number == "(_SIGN") 14521fa314SDavid van Moolenbroek number = $4; 15521fa314SDavid van Moolenbroek if (number < 0 || number == "EAGAIN") 16521fa314SDavid van Moolenbroek next; 17521fa314SDavid van Moolenbroek printf("\t[%s] = \"%s\",\n", name, name); 18521fa314SDavid van Moolenbroek} 19521fa314SDavid van MoolenbroekEND { 20521fa314SDavid van Moolenbroek printf("};\n\n"); 21521fa314SDavid van Moolenbroek printf("const char *\nget_error_name(int err)\n{\n\n"); 22*b58e161cSDavid van Moolenbroek printf("\tif (err >= 0 && (unsigned int)err < __arraycount(errors) &&\n"); 23521fa314SDavid van Moolenbroek printf("\t errors[err] != NULL)\n"); 24521fa314SDavid van Moolenbroek printf("\t\treturn errors[err];\n"); 25521fa314SDavid van Moolenbroek printf("\telse\n"); 26521fa314SDavid van Moolenbroek printf("\t\treturn NULL;\n"); 27521fa314SDavid van Moolenbroek printf("}\n"); 28521fa314SDavid van Moolenbroek} 29