diff options
-rw-r--r-- | gdb/ChangeLog | 2 | ||||
-rw-r--r-- | gdb/utils.c | 446 |
2 files changed, 219 insertions, 229 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 47ca1df..78f6521 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,7 @@ 2003-01-31 Andrew Cagney <ac131313@redhat.com> + * utils.c: Re-indent. + * config/djgpp/fnchange.lst: Delete nindy files. * nindy-share/ttyflush.c, nindy-share/stop.h: Delete files. * nindy-share/nindy.c, nindy-share/env.h: Delete files. diff --git a/gdb/utils.c b/gdb/utils.c index 9423029..9b047bc 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -48,7 +48,7 @@ #include "annotate.h" #include "filenames.h" -#include "inferior.h" /* for signed_pointer_to_address */ +#include "inferior.h" /* for signed_pointer_to_address */ #include <sys/param.h> /* For MAXPATHLEN */ @@ -114,7 +114,7 @@ static struct cleanup *final_cleanup_chain; /* cleaned up when gdb exits */ static struct cleanup *run_cleanup_chain; /* cleaned up on each 'run' */ static struct cleanup *exec_cleanup_chain; /* cleaned up on each execution command */ /* cleaned up on each error from within an execution command */ -static struct cleanup *exec_error_cleanup_chain; +static struct cleanup *exec_error_cleanup_chain; /* Pointer to what is left to do for an execution command after the target stops. Used only in asynchronous mode, by targets that @@ -268,7 +268,7 @@ make_my_cleanup (struct cleanup **pmy_chain, make_cleanup_ftype *function, void *arg) { register struct cleanup *new - = (struct cleanup *) xmalloc (sizeof (struct cleanup)); + = (struct cleanup *) xmalloc (sizeof (struct cleanup)); register struct cleanup *old_chain = *pmy_chain; new->next = *pmy_chain; @@ -442,7 +442,8 @@ add_continuation (void (*continuation_hook) (struct continuation_arg *), { struct continuation *continuation_ptr; - continuation_ptr = (struct continuation *) xmalloc (sizeof (struct continuation)); + continuation_ptr = + (struct continuation *) xmalloc (sizeof (struct continuation)); continuation_ptr->continuation_hook = continuation_hook; continuation_ptr->arg_list = arg_list; continuation_ptr->next = cmd_continuation; @@ -472,12 +473,12 @@ do_all_continuations (void) /* Work now on the list we have set aside. */ while (continuation_ptr) - { - (continuation_ptr->continuation_hook) (continuation_ptr->arg_list); - saved_continuation = continuation_ptr; - continuation_ptr = continuation_ptr->next; - xfree (saved_continuation); - } + { + (continuation_ptr->continuation_hook) (continuation_ptr->arg_list); + saved_continuation = continuation_ptr; + continuation_ptr = continuation_ptr->next; + xfree (saved_continuation); + } } /* Walk down the cmd_continuation list, and get rid of all the @@ -504,7 +505,8 @@ add_intermediate_continuation (void (*continuation_hook) { struct continuation *continuation_ptr; - continuation_ptr = (struct continuation *) xmalloc (sizeof (struct continuation)); + continuation_ptr = + (struct continuation *) xmalloc (sizeof (struct continuation)); continuation_ptr->continuation_hook = continuation_hook; continuation_ptr->arg_list = arg_list; continuation_ptr->next = intermediate_continuation; @@ -534,12 +536,12 @@ do_all_intermediate_continuations (void) /* Work now on the list we have set aside. */ while (continuation_ptr) - { - (continuation_ptr->continuation_hook) (continuation_ptr->arg_list); - saved_continuation = continuation_ptr; - continuation_ptr = continuation_ptr->next; - xfree (saved_continuation); - } + { + (continuation_ptr->continuation_hook) (continuation_ptr->arg_list); + saved_continuation = continuation_ptr; + continuation_ptr = continuation_ptr->next; + xfree (saved_continuation); + } } /* Walk down the cmd_continuation list, and get rid of all the @@ -556,9 +558,9 @@ discard_all_intermediate_continuations (void) xfree (continuation_ptr); } } - + /* Print a warning message. The first argument STRING is the warning message, used as an fprintf format string, the second is the va_list of arguments for that string. A warning is unfiltered (not @@ -590,7 +592,7 @@ vwarning (const char *string, va_list args) does not force the return to command level. */ void -warning (const char *string,...) +warning (const char *string, ...) { va_list args; va_start (args, string); @@ -612,7 +614,7 @@ verror (const char *string, va_list args) } NORETURN void -error (const char *string,...) +error (const char *string, ...) { va_list args; va_start (args, string); @@ -657,7 +659,7 @@ error_last_message (void) long len; return ui_file_xstrdup (gdb_lasterr, &len); } - + /* This is to be called by main() at the very beginning */ void @@ -685,8 +687,7 @@ struct internal_problem static void internal_vproblem (struct internal_problem *problem, -const char *file, int line, - const char *fmt, va_list ap) + const char *file, int line, const char *fmt, va_list ap) { static char msg[] = "Recursive internal problem.\n"; static int dejavu; @@ -702,7 +703,7 @@ const char *file, int line, case 1: dejavu = 2; fputs_unfiltered (msg, gdb_stderr); - abort (); /* NOTE: GDB has only three calls to abort(). */ + abort (); /* NOTE: GDB has only three calls to abort(). */ default: dejavu = 3; write (STDERR_FILENO, msg, sizeof (msg)); @@ -729,8 +730,8 @@ debugging may prove unreliable.\n"); { case AUTO_BOOLEAN_AUTO: /* Default (yes/batch case) is to quit GDB. When in batch mode - this lessens the likelhood of GDB going into an infinate - loop. */ + this lessens the likelhood of GDB going into an infinate + loop. */ quit_p = query ("Quit this debugging session? "); break; case AUTO_BOOLEAN_TRUE: @@ -747,8 +748,8 @@ debugging may prove unreliable.\n"); { case AUTO_BOOLEAN_AUTO: /* Default (yes/batch case) is to dump core. This leaves a GDB - `dropping' so that it is easier to see that something went - wrong in GDB. */ + `dropping' so that it is easier to see that something went + wrong in GDB. */ dump_core_p = query ("Create a core file of GDB? "); break; break; @@ -765,7 +766,7 @@ debugging may prove unreliable.\n"); if (quit_p) { if (dump_core_p) - abort (); /* NOTE: GDB has only three calls to abort(). */ + abort (); /* NOTE: GDB has only three calls to abort(). */ else exit (1); } @@ -774,7 +775,7 @@ debugging may prove unreliable.\n"); if (dump_core_p) { if (fork () == 0) - abort (); /* NOTE: GDB has only three calls to abort(). */ + abort (); /* NOTE: GDB has only three calls to abort(). */ } } @@ -786,8 +787,7 @@ static struct internal_problem internal_error_problem = { }; NORETURN void -internal_verror (const char *file, int line, - const char *fmt, va_list ap) +internal_verror (const char *file, int line, const char *fmt, va_list ap) { internal_vproblem (&internal_error_problem, file, line, fmt, ap); throw_exception (RETURN_ERROR); @@ -807,8 +807,7 @@ static struct internal_problem internal_warning_problem = { }; void -internal_vwarning (const char *file, int line, - const char *fmt, va_list ap) +internal_vwarning (const char *file, int line, const char *fmt, va_list ap) { internal_vproblem (&internal_warning_problem, file, line, fmt, ap); } @@ -923,13 +922,13 @@ quit (void) fprintf_unfiltered (gdb_stderr, "Quit\n"); #else if (job_control - /* If there is no terminal switching for this target, then we can't - possibly get screwed by the lack of job control. */ + /* If there is no terminal switching for this target, then we can't + possibly get screwed by the lack of job control. */ || current_target.to_terminal_ours == NULL) fprintf_unfiltered (gdb_stderr, "Quit\n"); else fprintf_unfiltered (gdb_stderr, - "Quit (expect signal SIGINT when the program is resumed)\n"); + "Quit (expect signal SIGINT when the program is resumed)\n"); #endif throw_exception (RETURN_QUIT); } @@ -962,7 +961,7 @@ request_quit (int signo) static void * mmalloc (void *md, size_t size) { - return malloc (size); /* NOTE: GDB's only call to malloc() */ + return malloc (size); /* NOTE: GDB's only call to malloc() */ } static void * @@ -971,19 +970,19 @@ mrealloc (void *md, void *ptr, size_t size) if (ptr == 0) /* Guard against old realloc's */ return mmalloc (md, size); else - return realloc (ptr, size); /* NOTE: GDB's only call to ralloc() */ + return realloc (ptr, size); /* NOTE: GDB's only call to ralloc() */ } static void * mcalloc (void *md, size_t number, size_t size) { - return calloc (number, size); /* NOTE: GDB's only call to calloc() */ + return calloc (number, size); /* NOTE: GDB's only call to calloc() */ } static void mfree (void *md, void *ptr) { - free (ptr); /* NOTE: GDB's only call to free() */ + free (ptr); /* NOTE: GDB's only call to free() */ } #endif /* USE_MMALLOC */ @@ -1032,9 +1031,10 @@ init_malloc (void *md) initialize_all_files(). */ fprintf_unfiltered - (gdb_stderr, "warning: failed to install memory consistency checks; "); - fprintf_unfiltered - (gdb_stderr, "configuration should define NO_MMCHECK or MMCHECK_FORCE\n"); + (gdb_stderr, + "warning: failed to install memory consistency checks; "); + fprintf_unfiltered (gdb_stderr, + "configuration should define NO_MMCHECK or MMCHECK_FORCE\n"); } mmtrace (); @@ -1051,12 +1051,12 @@ nomem (long size) if (size > 0) { internal_error (__FILE__, __LINE__, - "virtual memory exhausted: can't allocate %ld bytes.", size); + "virtual memory exhausted: can't allocate %ld bytes.", + size); } else { - internal_error (__FILE__, __LINE__, - "virtual memory exhausted."); + internal_error (__FILE__, __LINE__, "virtual memory exhausted."); } } @@ -1195,14 +1195,12 @@ xvasprintf (char **ret, const char *format, va_list ap) badly format string; or something else. */ if ((*ret) == NULL) internal_error (__FILE__, __LINE__, - "vasprintf returned NULL buffer (errno %d)", - errno); + "vasprintf returned NULL buffer (errno %d)", errno); /* A negative status with a non-NULL buffer shouldn't never happen. But to be sure. */ if (status < 0) internal_error (__FILE__, __LINE__, - "vasprintf call failed (errno %d)", - errno); + "vasprintf call failed (errno %d)", errno); } @@ -1282,7 +1280,7 @@ gdb_print_host_address (void *addr, struct ui_file *stream) /* VARARGS */ int -query (const char *ctlstr,...) +query (const char *ctlstr, ...) { va_list args; register int answer; @@ -1328,7 +1326,7 @@ query (const char *ctlstr,...) if (answer != '\n') do { - ans2 = fgetc (stdin); + ans2 = fgetc (stdin); clearerr (stdin); } while (ans2 != EOF && ans2 != '\n' && ans2 != '\r'); @@ -1368,7 +1366,7 @@ no_control_char_error (const char *start, const char *end) copy[len] = '\0'; error ("There is no control character `\\%s' in the `%s' character set.", - copy, target_charset ()); + copy, target_charset ()); } /* Parse a C escape sequence. STRING_PTR points to a variable @@ -1393,86 +1391,86 @@ parse_escape (char **string_ptr) register int c = *(*string_ptr)++; if (c_parse_backslash (c, &target_char)) return target_char; - else switch (c) - { - case '\n': - return -2; - case 0: - (*string_ptr)--; - return 0; - case '^': + else + switch (c) { - /* Remember where this escape sequence started, for reporting - errors. */ - char *sequence_start_pos = *string_ptr - 1; - - c = *(*string_ptr)++; - - if (c == '?') - { - /* XXXCHARSET: What is `delete' in the host character set? */ - c = 0177; - - if (! host_char_to_target (c, &target_char)) - error ("There is no character corresponding to `Delete' " - "in the target character set `%s'.", - host_charset ()); - - return target_char; - } - else if (c == '\\') - target_char = parse_escape (string_ptr); - else - { - if (! host_char_to_target (c, &target_char)) - no_control_char_error (sequence_start_pos, *string_ptr); - } - - /* Now target_char is something like `c', and we want to find - its control-character equivalent. */ - if (! target_char_to_control_char (target_char, &target_char)) - no_control_char_error (sequence_start_pos, *string_ptr); - - return target_char; - } + case '\n': + return -2; + case 0: + (*string_ptr)--; + return 0; + case '^': + { + /* Remember where this escape sequence started, for reporting + errors. */ + char *sequence_start_pos = *string_ptr - 1; - /* XXXCHARSET: we need to use isdigit and value-of-digit - methods of the host character set here. */ - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - { - register int i = c - '0'; - register int count = 0; - while (++count < 3) - { - if ((c = *(*string_ptr)++) >= '0' && c <= '7') - { - i *= 8; - i += c - '0'; - } - else - { - (*string_ptr)--; - break; - } - } - return i; + c = *(*string_ptr)++; + + if (c == '?') + { + /* XXXCHARSET: What is `delete' in the host character set? */ + c = 0177; + + if (!host_char_to_target (c, &target_char)) + error ("There is no character corresponding to `Delete' " + "in the target character set `%s'.", host_charset ()); + + return target_char; + } + else if (c == '\\') + target_char = parse_escape (string_ptr); + else + { + if (!host_char_to_target (c, &target_char)) + no_control_char_error (sequence_start_pos, *string_ptr); + } + + /* Now target_char is something like `c', and we want to find + its control-character equivalent. */ + if (!target_char_to_control_char (target_char, &target_char)) + no_control_char_error (sequence_start_pos, *string_ptr); + + return target_char; + } + + /* XXXCHARSET: we need to use isdigit and value-of-digit + methods of the host character set here. */ + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + { + register int i = c - '0'; + register int count = 0; + while (++count < 3) + { + if ((c = *(*string_ptr)++) >= '0' && c <= '7') + { + i *= 8; + i += c - '0'; + } + else + { + (*string_ptr)--; + break; + } + } + return i; + } + default: + if (!host_char_to_target (c, &target_char)) + error + ("The escape sequence `\%c' is equivalent to plain `%c', which" + " has no equivalent\n" "in the `%s' character set.", c, c, + target_charset ()); + return target_char; } - default: - if (! host_char_to_target (c, &target_char)) - error ("The escape sequence `\%c' is equivalent to plain `%c', which" - " has no equivalent\n" - "in the `%s' character set.", - c, c, target_charset ()); - return target_char; - } } /* Print the character C on STREAM as part of the contents of a literal @@ -1548,15 +1546,16 @@ fputstr_unfiltered (const char *str, int quoter, struct ui_file *stream) } void -fputstrn_unfiltered (const char *str, int n, int quoter, struct ui_file *stream) +fputstrn_unfiltered (const char *str, int n, int quoter, + struct ui_file *stream) { int i; for (i = 0; i < n; i++) printchar (str[i], fputs_unfiltered, fprintf_unfiltered, stream, quoter); } - + /* Number of lines per page or UINT_MAX if paging is disabled. */ static unsigned int lines_per_page; /* Number of chars per line or UINT_MAX if line folding is disabled. */ @@ -1906,8 +1905,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, while (*lineptr) { /* Possible new page. */ - if (filter && - (lines_printed >= lines_per_page - 1)) + if (filter && (lines_printed >= lines_per_page - 1)) prompt_for_continue (); while (*lineptr && *lineptr != '\n') @@ -1955,7 +1953,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, if (wrap_column) { fputs_unfiltered (wrap_indent, stream); - *wrap_pointer = '\0'; /* Null-terminate saved stuff */ + *wrap_pointer = '\0'; /* Null-terminate saved stuff */ fputs_unfiltered (wrap_buffer, stream); /* and eject it */ /* FIXME, this strlen is what prevents wrap_indent from containing tabs. However, if we recurse to print it @@ -2169,7 +2167,7 @@ vprintf_unfiltered (const char *format, va_list args) } void -fprintf_filtered (struct ui_file * stream, const char *format,...) +fprintf_filtered (struct ui_file *stream, const char *format, ...) { va_list args; va_start (args, format); @@ -2178,7 +2176,7 @@ fprintf_filtered (struct ui_file * stream, const char *format,...) } void -fprintf_unfiltered (struct ui_file * stream, const char *format,...) +fprintf_unfiltered (struct ui_file *stream, const char *format, ...) { va_list args; va_start (args, format); @@ -2190,7 +2188,8 @@ fprintf_unfiltered (struct ui_file * stream, const char *format,...) Called as fprintfi_filtered (spaces, stream, format, ...); */ void -fprintfi_filtered (int spaces, struct ui_file * stream, const char *format,...) +fprintfi_filtered (int spaces, struct ui_file *stream, const char *format, + ...) { va_list args; va_start (args, format); @@ -2202,7 +2201,7 @@ fprintfi_filtered (int spaces, struct ui_file * stream, const char *format,...) void -printf_filtered (const char *format,...) +printf_filtered (const char *format, ...) { va_list args; va_start (args, format); @@ -2212,7 +2211,7 @@ printf_filtered (const char *format,...) void -printf_unfiltered (const char *format,...) +printf_unfiltered (const char *format, ...) { va_list args; va_start (args, format); @@ -2224,7 +2223,7 @@ printf_unfiltered (const char *format,...) Called as printfi_filtered (spaces, format, ...); */ void -printfi_filtered (int spaces, const char *format,...) +printfi_filtered (int spaces, const char *format, ...) { va_list args; va_start (args, format); @@ -2288,8 +2287,8 @@ print_spaces_filtered (int n, struct ui_file *stream) demangling is off, the name is printed in its "raw" form. */ void -fprintf_symbol_filtered (struct ui_file *stream, char *name, enum language lang, - int arg_mode) +fprintf_symbol_filtered (struct ui_file *stream, char *name, + enum language lang, int arg_mode) { char *demangled; @@ -2312,8 +2311,8 @@ fprintf_symbol_filtered (struct ui_file *stream, char *name, enum language lang, break; case language_objc: /* Commented out until ObjC handling is enabled. */ - /*demangled = objc_demangle (name);*/ - /*break;*/ + /*demangled = objc_demangle (name); */ + /*break; */ default: demangled = NULL; break; @@ -2373,11 +2372,11 @@ int subset_compare (char *string_to_compare, char *template_string) { int match; - if (template_string != (char *) NULL && string_to_compare != (char *) NULL && - strlen (string_to_compare) <= strlen (template_string)) - match = (strncmp (template_string, - string_to_compare, - strlen (string_to_compare)) == 0); + if (template_string != (char *) NULL && string_to_compare != (char *) NULL + && strlen (string_to_compare) <= strlen (template_string)) + match = + (strncmp + (template_string, string_to_compare, strlen (string_to_compare)) == 0); else match = 0; return match; @@ -2428,15 +2427,13 @@ initialize_utils (void) add_show_from_set (add_set_cmd ("demangle", class_support, var_boolean, (char *) &demangle, - "Set demangling of encoded C++/ObjC names when displaying symbols.", - &setprintlist), - &showprintlist); + "Set demangling of encoded C++/ObjC names when displaying symbols.", + &setprintlist), &showprintlist); add_show_from_set (add_set_cmd ("pagination", class_support, var_boolean, (char *) &pagination_enabled, - "Set state of pagination.", &setlist), - &showlist); + "Set state of pagination.", &setlist), &showlist); if (xdb_commands) { @@ -2450,15 +2447,13 @@ initialize_utils (void) (add_set_cmd ("sevenbit-strings", class_support, var_boolean, (char *) &sevenbit_strings, "Set printing of 8-bit characters in strings as \\nnn.", - &setprintlist), - &showprintlist); + &setprintlist), &showprintlist); add_show_from_set (add_set_cmd ("asm-demangle", class_support, var_boolean, (char *) &asm_demangle, "Set demangling of C++/ObjC names in disassembly listings.", - &setprintlist), - &showprintlist); + &setprintlist), &showprintlist); } /* Machine specific function to handle SIGWINCH signal. */ @@ -2466,9 +2461,7 @@ initialize_utils (void) #ifdef SIGWINCH_HANDLER_BODY SIGWINCH_HANDLER_BODY #endif - /* print routines to handle variable size regs, etc. */ - /* temporary storage using circular buffer */ #define NUMCELLS 16 #define CELLSIZE 32 @@ -2517,19 +2510,17 @@ decimal2str (char *paddr_str, char *sign, ULONGEST addr) switch (i) { case 1: - sprintf (paddr_str, "%s%lu", - sign, temp[0]); + sprintf (paddr_str, "%s%lu", sign, temp[0]); break; case 2: - sprintf (paddr_str, "%s%lu%09lu", - sign, temp[1], temp[0]); + sprintf (paddr_str, "%s%lu%09lu", sign, temp[1], temp[0]); break; case 3: - sprintf (paddr_str, "%s%lu%09lu%09lu", - sign, temp[2], temp[1], temp[0]); + sprintf (paddr_str, "%s%lu%09lu%09lu", sign, temp[2], temp[1], temp[0]); break; default: - internal_error (__FILE__, __LINE__, "failed internal consistency check"); + internal_error (__FILE__, __LINE__, + "failed internal consistency check"); } } @@ -2595,8 +2586,7 @@ phex_nz (ULONGEST l, int sizeof_l) if (high == 0) sprintf (str, "%lx", (unsigned long) (l & 0xffffffff)); else - sprintf (str, "%lx%08lx", - high, (unsigned long) (l & 0xffffffff)); + sprintf (str, "%lx%08lx", high, (unsigned long) (l & 0xffffffff)); break; } case 4: @@ -2666,7 +2656,7 @@ string_to_core_addr (const char *my_string) { if (isdigit (my_string[i])) addr = (my_string[i] - '0') + (addr * 16); - else if (isxdigit (my_string[i])) + else if (isxdigit (my_string[i])) addr = (tolower (my_string[i]) - 'a' + 0xa) + (addr * 16); else internal_error (__FILE__, __LINE__, "invalid hex"); @@ -2785,8 +2775,7 @@ xfullpath (const char *filename) #ifdef HAVE_DOS_BASED_FILE_SYSTEM /* We need to be careful when filename is of the form 'd:foo', which is equivalent of d:./foo, which is totally different from d:/foo. */ - if (strlen (dir_name) == 2 && - isalpha (dir_name[0]) && dir_name[1] == ':') + if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':') { dir_name[2] = '.'; dir_name[3] = '\000'; @@ -2815,61 +2804,60 @@ xfullpath (const char *filename) unsigned long gnu_debuglink_crc32 (unsigned long crc, unsigned char *buf, size_t len) { - static const unsigned long crc32_table[256] = - { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, - 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, - 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, - 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, - 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, - 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, - 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, - 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, - 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, - 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, - 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, - 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, - 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, - 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, - 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, - 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, - 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, - 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, - 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, - 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, - 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, - 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, - 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, - 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, - 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, - 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, - 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, - 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, - 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, - 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, - 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, - 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, - 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, - 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, - 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, - 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, - 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, - 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, - 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, - 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, - 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, - 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, - 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, - 0x2d02ef8d - }; + static const unsigned long crc32_table[256] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d + }; unsigned char *end; crc = ~crc & 0xffffffff; |