#ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include typedef struct { char *name; int size; int abi_size; } Struct; #ifdef HAVE_CPU_I386 #include "struct_i386.h" #define HAVE_ABI_SIZES #else /* in case someone wants to generate a new arch */ #include "struct_i386.h" #endif int main (int argc, char *argv[]) { int i; if (argc > 1) { g_print ("/* Generated by GStreamer-%s */\n", GST_VERSION); g_print ("Struct list[] = {\n"); for (i = 0; list[i].name; i++) { g_print (" { \"%s\", sizeof (%s), %d },\n", list[i].name, list[i].name, list[i].size); } g_print (" { NULL, 0, 0}\n"); g_print ("};\n"); } else { g_print ("Run './struct_size regen' to regenerate structs.h\n"); #ifdef HAVE_ABI_SIZES { gboolean ok = TRUE; for (i = 0; list[i].name; i++) { if (list[i].size != list[i].abi_size) { ok = FALSE; g_print ("sizeof(%s) is %d, expected %d\n", list[i].name, list[i].size, list[i].abi_size); } } if (ok) { g_print ("All structures expected size\n"); } else { g_print ("failed\n"); exit (1); } } #else g_print ("No structure size list was generated for this architecture\n"); g_print ("ignoring\n"); #endif } exit (0); }