#include <kern/ext_paniclog.h>

kern/ext_paniclog.h Kernel.framework

includes: Kernel/sys/queue.h, uuid/uuid.h, os/base.h
10 macros · 2 enums · 2 typedefs

macroEXT_PANICLOG_ENABLE

#define EXT_PANICLOG_ENABLE 1

macroEXT_PANICLOG_VERSION

#define EXT_PANICLOG_VERSION 2

macroMAX_DATA_ID_SIZE

#define MAX_DATA_ID_SIZE 32

macroMAX_EXT_PANICLOG_SIZE

#define MAX_EXT_PANICLOG_SIZE 32 * 1024

macroMAX_EXT_PANICLOG_LOGS

#define MAX_EXT_PANICLOG_LOGS 100

macroOTHER_LOG_REQUIRED_SIZE

From the panic log metrics, we estimate that the paniclog takes up ~15K bytes and other log takes ~1K bytes. This 64K bytes ensures that we have enough space for other log and nested panics
#define OTHER_LOG_REQUIRED_SIZE (64 * 1024)

macroPANIC_WITH_DATA_UUID

#define PANIC_WITH_DATA_UUID "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"

macroPANIC_WITH_DATA_MAX_LEN

#define PANIC_WITH_DATA_MAX_LEN 2048

macroPANIC_WITH_DATA_DATA_ID

#define PANIC_WITH_DATA_DATA_ID "Panic with Data Buffer"

macroEXTPANICLOG_ENTITLEMENT

#define EXTPANICLOG_ENTITLEMENT "com.apple.private.allow-ext_paniclog"

enumext_paniclog_flags_t

These flags are set internally and are passed along with each handle in the extensible paniclog to be processed by DumpPanic.
underlying type uint32_t
EXT_PANICLOG_FLAGS_NONE0
EXT_PANICLOG_FLAGS_ADD_SEPARATE_KEY1

typedefext_paniclog_flags_t

typedef enum ext_paniclog_flags_t ext_paniclog_flags_t;

enumext_paniclog_create_options_t

underlying type uint32_t
EXT_PANICLOG_OPTIONS_NONE0
EXT_PANICLOG_OPTIONS_WITH_BUFFER1
EXT_PANICLOG_OPTIONS_ADD_SEPARATE_KEY2

typedefext_paniclog_create_options_t

typedef enum ext_paniclog_create_options_t ext_paniclog_create_options_t;