BRL-CAD
|
Global registry of recognized magic numbers. More...
Files | |
file | magic.h |
Global registry of recognized magic numbers. | |
Macros | |
#define | BU_AVS_MAGIC 0x41765321 |
#define | BU_BITV_MAGIC 0x62697476 |
#define | BU_COLOR_MAGIC 0x6275636c |
#define | BU_EXTERNAL_MAGIC 0x768dbbd0 |
#define | BU_HASH_ENTRY_MAGIC 0x48454e54 |
#define | BU_HASH_RECORD_MAGIC 0x68617368 |
#define | BU_HASH_TBL_MAGIC 0x48415348 |
#define | BU_HIST_MAGIC 0x48697374 |
#define | BU_HOOK_LIST_MAGIC 0x90d5dead |
#define | BU_IMAGE_FILE_MAGIC 0x6269666d |
#define | BU_LIST_HEAD_MAGIC 0x01016580 |
#define | BU_MAPPED_FILE_MAGIC 0x4d617066 |
#define | BU_OBSERVER_MAGIC 0x65796573 |
#define | BU_PTBL_MAGIC 0x7074626c |
#define | BU_RB_LIST_MAGIC 0x72626c73 |
#define | BU_RB_NODE_MAGIC 0x72626e6f |
#define | BU_RB_PKG_MAGIC 0x7262706b |
#define | BU_RB_TREE_MAGIC 0x72627472 |
#define | BU_VLB_MAGIC 0x5f564c42 |
#define | BU_VLS_MAGIC 0x89333bbb |
#define | BN_GAUSS_MAGIC 0x1e886880 |
#define | BN_POLY_MAGIC 0x506f4c79 |
#define | BN_SPM_MAGIC 0x41278678 |
#define | BN_TABDATA_MAGIC 0x53736d70 |
#define | BN_TABLE_MAGIC 0x53706374 |
#define | BN_TOL_MAGIC 0x98c734bb |
#define | BN_UNIF_MAGIC 0x00be7460 |
#define | BN_VERT_TREE_MAGIC 0x56455254 |
#define | BV_VLBLOCK_MAGIC 0x981bd112 |
#define | BV_VLIST_MAGIC 0x98237474 |
#define | BG_TESS_TOL_MAGIC 0xb9090dab |
#define | RT_ARBN_INTERNAL_MAGIC 0x18236461 |
#define | RT_ARB_INTERNAL_MAGIC 0x9befd010 |
#define | RT_ARS_INTERNAL_MAGIC 0x77ddbbe3 |
#define | RT_BINUNIF_INTERNAL_MAGIC 0x42696e55 |
#define | RT_BOT_INTERNAL_MAGIC 0x626f7472 |
#define | RT_BREP_INTERNAL_MAGIC 0x42524550 |
#define | RT_CLINE_INTERNAL_MAGIC 0x43767378 |
#define | RT_DATUM_INTERNAL_MAGIC 0x6461746d |
#define | RT_DSP_INTERNAL_MAGIC 0x00000de6 |
#define | RT_EBM_INTERNAL_MAGIC 0xf901b231 |
#define | RT_EHY_INTERNAL_MAGIC 0xaaccee91 |
#define | RT_ELL_INTERNAL_MAGIC 0x93bb23ff |
#define | RT_EPA_INTERNAL_MAGIC 0xaaccee90 |
#define | RT_ETO_INTERNAL_MAGIC 0xaaccee92 |
#define | RT_EXTRUDE_INTERNAL_MAGIC 0x65787472 |
#define | RT_GRIP_INTERNAL_MAGIC 0x31196205 |
#define | RT_HALF_INTERNAL_MAGIC 0xaa87bbdd |
#define | RT_HF_INTERNAL_MAGIC 0x4846494d |
#define | RT_HYP_INTERNAL_MAGIC 0x68797065 |
#define | RT_JOINT_INTERNAL_MAGIC 0x4a6f696e |
#define | RT_METABALL_INTERNAL_MAGIC 0x62616c6c |
#define | RT_NURB_INTERNAL_MAGIC 0x002b2bdd |
#define | RT_PART_INTERNAL_MAGIC 0xaaccee87 |
#define | RT_PG_INTERNAL_MAGIC 0x9bfed887 |
#define | RT_PIPE_INTERNAL_MAGIC 0x7dd7bb3e |
#define | RT_REVOLVE_INTERNAL_MAGIC 0x7265766C |
#define | RT_RHC_INTERNAL_MAGIC 0xaaccee89 |
#define | RT_RPC_INTERNAL_MAGIC 0xaaccee88 |
#define | RT_SKETCH_INTERNAL_MAGIC 0x736b6574 |
#define | RT_SUBMODEL_INTERNAL_MAGIC 0x7375626d |
#define | RT_SUPERELL_INTERNAL_MAGIC 0xff93bb23 |
#define | RT_TGC_INTERNAL_MAGIC 0xaabbdd87 |
#define | RT_TOR_INTERNAL_MAGIC 0x9bffed87 |
#define | RT_VOL_INTERNAL_MAGIC 0x987ba1d0 |
#define | RT_PNTS_INTERNAL_MAGIC 0x706e7473 |
#define | RT_ANNOT_INTERNAL_MAGIC 0x616e6e6f |
#define | RT_HRT_INTERNAL_MAGIC 0x6872743f |
#define | RT_SCRIPT_INTERNAL_MAGIC 0x73637269 |
#define | NMG_EDGEUSE2_MAGIC 0x91919191 |
#define | NMG_EDGEUSE_MAGIC 0x90909090 |
#define | NMG_EDGE_G_CNURB_MAGIC 0x636e7262 |
#define | NMG_EDGE_G_LSEG_MAGIC 0x6c696768 |
#define | NMG_EDGE_MAGIC 0x33333333 |
#define | NMG_FACEUSE_MAGIC 0x56565656 |
#define | NMG_FACE_G_PLANE_MAGIC 0x726b6e65 |
#define | NMG_FACE_G_SNURB_MAGIC 0x736e7262 |
#define | NMG_FACE_MAGIC 0x45454545 |
#define | NMG_INTER_STRUCT_MAGIC 0x99912120 |
#define | NMG_KNOT_VECTOR_MAGIC 0x6b6e6f74 |
#define | NMG_LOOPUSE_MAGIC 0x78787878 |
#define | NMG_LOOP_A_MAGIC 0x6420224c |
#define | NMG_LOOP_MAGIC 0x67676767 |
#define | NMG_MODEL_MAGIC 0x12121212 |
#define | NMG_RADIAL_MAGIC 0x52614421 |
#define | NMG_RAY_DATA_MAGIC 0x01651771 |
#define | NMG_REGION_A_MAGIC 0x696e6720 |
#define | NMG_REGION_MAGIC 0x23232323 |
#define | NMG_RT_HIT_MAGIC 0x48697400 |
#define | NMG_RT_HIT_SUB_MAGIC 0x48696d00 |
#define | NMG_RT_MISS_MAGIC 0x4d697300 |
#define | NMG_SHELL_A_MAGIC 0x65207761 |
#define | NMG_SHELL_MAGIC 0x71077345 |
#define | NMG_VERTEXUSE_A_CNURB_MAGIC 0x20416e64 |
#define | NMG_VERTEXUSE_A_PLANE_MAGIC 0x69676874 |
#define | NMG_VERTEXUSE_MAGIC 0x12341234 |
#define | NMG_VERTEX_G_MAGIC 0x72737707 |
#define | NMG_VERTEX_MAGIC 0x00123123 |
#define | RT_ANP_MAGIC 0x41507270 |
#define | RT_AP_MAGIC 0x4170706c |
#define | RT_COMB_MAGIC 0x436f6d49 |
#define | RT_CONSTRAINT_MAGIC 0x7063696d |
#define | RT_MATERIAL_MAGIC 0x54414d55 |
#define | RT_CTS_MAGIC 0x98989123 |
#define | RT_DB_TRAVERSE_MAGIC 0x64627472 |
#define | RT_DBTS_MAGIC 0x64627473 |
#define | RT_DB_INTERNAL_MAGIC 0x0dbbd867 |
#define | RT_DIR_MAGIC 0x05551212 |
#define | RT_FUNCTAB_MAGIC 0x46754e63 |
#define | RT_HIT_MAGIC 0x20686974 |
#define | RT_HTBL_MAGIC 0x6874626c |
#define | RT_PIECELIST_MAGIC 0x70636c73 |
#define | RT_PIECESTATE_MAGIC 0x70637374 |
#define | RT_RAY_MAGIC 0x78726179 |
#define | RT_REGION_MAGIC 0xdffb8001 |
#define | RT_SEG_MAGIC 0x98bcdef1 |
#define | RT_SOLTAB2_MAGIC 0x92bfcde2 |
#define | RT_SOLTAB_MAGIC 0x92bfcde0 |
#define | RT_TREE_MAGIC 0x91191191 |
#define | RT_WDB_MAGIC 0x5f576462 |
#define | GED_CMD_MAGIC 0x65786563 |
#define | FB_MAGIC 0xfbfb00fb |
#define | FB_WGL_MAGIC 0x574f4642 |
#define | FB_OGL_MAGIC 0x584f4642 |
#define | FB_X24_MAGIC 0x58324642 |
#define | FB_TK_MAGIC 0x544b4642 |
#define | FB_QT_MAGIC 0x51544642 |
#define | FB_QTGL_MAGIC 0x51474642 |
#define | FB_DEBUG_MAGIC 0x44424642 |
#define | FB_DISK_MAGIC 0x44494642 |
#define | FB_STK_MAGIC 0x53544642 |
#define | FB_MEMORY_MAGIC 0x4d454642 |
#define | FB_REMOTE_MAGIC 0x524d4642 |
#define | FB_NULL_MAGIC 0x4e554642 |
#define | FB_SWFB_MAGIC 0x51474642 |
#define | ANIMATE_MAGIC 0x414e4963 |
#define | BV_MAGIC 0x62766965 |
#define | CURVE_BEZIER_MAGIC 0x62657a69 |
#define | CURVE_CARC_MAGIC 0x63617263 |
#define | CURVE_LSEG_MAGIC 0x6c736567 |
#define | CURVE_NURB_MAGIC 0x6e757262 |
#define | ANN_TSEG_MAGIC 0x74736567 |
#define | DB5_RAW_INTERNAL_MAGIC 0x64357269 |
#define | DBI_MAGIC 0x57204381 |
#define | DB_FULL_PATH_MAGIC 0x64626670 |
#define | DM_MAGIC 0x444d4d4d |
#define | LIGHT_MAGIC 0xdbddbdb7 |
#define | MF_MAGIC 0x55968058 |
#define | PIXEL_EXT_MAGIC 0x50787400 |
#define | PL_MAGIC 0x0beef00d |
#define | PT_HD_MAGIC 0x87687680 |
#define | PT_MAGIC 0x87687681 |
#define | RESOURCE_MAGIC 0x83651835 |
#define | RTI_MAGIC 0x99101658 |
#define | WDB_METABALLPT_MAGIC 0x6d627074 |
#define | WDB_PIPESEG_MAGIC 0x9723ffef |
#define | WMEMBER_MAGIC 0x43128912 |
#define | ICV_IMAGE_MAGIC 0x6269666d |
#define | BU_CKMAG(_ptr, _magic, _str) |
Routines involved with handling "magic numbers" used to identify various in-memory data structures. More... | |
Functions | |
NORETURN void | bu_badmagic (const uint32_t *ptr, uint32_t magic, const char *str, const char *file, int line) |
const char * | bu_identify_magic (uint32_t magic) |
Routines involved with handling "magic numbers" used to identify various in-memory data structures. More... | |
Global registry of recognized magic numbers.
Magic numbers provide a means to perform run-time sanity checks for memory corruption and uninitialized data.
The one ugly thing about this implementation is that every BRL-CAD structure needs to have its magic number registered here and in the header.
This file is part of LIBBU even though it provides magic numbers for structures in other libraries.
The defines should be considered PRIVATE (even though they are not) and should NEVER be referenced by value.
#define NMG_EDGEUSE2_MAGIC 0x91919191 |
#define RT_DIR_MAGIC 0x05551212 |
#define BU_CKMAG | ( | _ptr, | |
_magic, | |||
_str | |||
) |
Routines involved with handling "magic numbers" used to identify various in-memory data structures.
Macros to check and validate a structure pointer, given that the first entry in the structure is a magic number. ((void)(1?0:((_ptr), void(), 0)))
NORETURN void bu_badmagic | ( | const uint32_t * | ptr, |
uint32_t | magic, | ||
const char * | str, | ||
const char * | file, | ||
int | line | ||
) |
This function is called when there is something wrong with a pointer. It's primarily a support routine for BU_CKMAG macro, but may be used elsewhere. This function never returns.
const char * bu_identify_magic | ( | uint32_t | magic | ) |
Routines involved with handling "magic numbers" used to identify various in-memory data structures.
Given a number which has been found in the magic number field of a structure (which is typically the first entry), determine what kind of structure this magic number pertains to. This is called by the macro BU_CK_MAGIC() to provide a "hint" as to what sort of pointer error might have been made.