# magic.c File Reference

`#include "magick/studio.h"`
`#include "magick/blob.h"`
`#include "magick/client.h"`
`#include "magick/configure.h"`
`#include "magick/exception.h"`
`#include "magick/exception-private.h"`
`#include "magick/hashmap.h"`
`#include "magick/magic.h"`
`#include "magick/memory_.h"`
`#include "magick/semaphore.h"`
`#include "magick/string_.h"`
`#include "magick/token.h"`
`#include "magick/utility.h"`
`#include "magick/xml-tree.h"`

## Defines

#define | MagicFilename "magic.xml"

## Functions

static MagickBooleanType | InitializeMagicList (ExceptionInfo *)
static MagickBooleanType | LoadMagicLists (const char *, ExceptionInfo *)
static void * | DestroyMagicElement (void *magic_info)
MagickExport void | DestroyMagicList (void)
MagickExport const MagicInfo * | GetMagicInfo (const unsigned char *magic, const size_t length, ExceptionInfo *exception)
static int | MagicInfoCompare (const void *x, const void *y)
MagickExport const MagicInfo ** | GetMagicInfoList (const char *pattern, unsigned long *number_aliases, ExceptionInfo *exception)
static int | MagicCompare (const void *x, const void *y)
MagickExport char ** | GetMagicList (const char *pattern, unsigned long *number_aliases, ExceptionInfo *exception)
MagickExport const char * | GetMagicName (const MagicInfo *magic_info)
MagickExport MagickBooleanType | ListMagicInfo (FILE *file, ExceptionInfo *exception)
static MagickBooleanType | LoadMagicList (const char *xml, const char *filename, const unsigned long depth, ExceptionInfo *exception)

## Variables

static const char * | MagicMap
static LinkedListInfo * | magic_list = (LinkedListInfo *) NULL
static SemaphoreInfo * | magic_semaphore = (SemaphoreInfo *) NULL
static volatile MagickBooleanType | instantiate_magic = MagickFalse

## Define Documentation

#define MagicFilename "magic.xml"

## Function Documentation

static void* DestroyMagicElement | ( | void * | magic_info | ) | `[static]`

MagickExport void DestroyMagicList | ( | void |  | ) |

MagickExport const MagicInfo* GetMagicInfo | ( | const unsigned char * | magic,
|  | const size_t | length,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport const MagicInfo** GetMagicInfoList | ( | const char * | pattern,
|  | unsigned long * | number_aliases,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport char** GetMagicList | ( | const char * | pattern,
|  | unsigned long * | number_aliases,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport const char* GetMagicName | ( | const MagicInfo * | magic_info | ) |

static MagickBooleanType InitializeMagicList | ( | ExceptionInfo * | exception | ) | `[static]`

MagickExport MagickBooleanType ListMagicInfo | ( | FILE * | file,
|  | ExceptionInfo * | exception |
| ) |  |  |

static MagickBooleanType LoadMagicList | ( | const char * | xml,
|  | const char * | filename,
|  | const unsigned long | depth,
|  | ExceptionInfo * | exception |
| ) |  |  | `[static]`

static MagickBooleanType LoadMagicLists | ( | const char * | filename,
|  | ExceptionInfo * | exception |
| ) |  |  |

static int MagicCompare | ( | const void * | x,
|  | const void * | y |
| ) |  |  | `[static]`

static int MagicInfoCompare | ( | const void * | x,
|  | const void * | y |
| ) |  |  | `[static]`

## Variable Documentation

volatile MagickBooleanType instantiate_magic = MagickFalse`[static]`

LinkedListInfo* magic_list = (LinkedListInfo *) NULL`[static]`

SemaphoreInfo* magic_semaphore = (SemaphoreInfo *) NULL`[static]`

const char* MagicMap `[static]`