This is xnu-11215.1.10. See this file in:
/*
 * Copyright (c) 2022 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
 *
 * This file contains Original Code and/or Modifications of Original Code
 * as defined in and that are subject to the Apple Public Source License
 * Version 2.0 (the 'License'). You may not use this file except in
 * compliance with the License. The rights granted to you under the License
 * may not be used to create, or enable the creation or redistribution of,
 * unlawful or unlicensed copies of an Apple operating system, or to
 * circumvent, violate, or enable the circumvention or violation of, any
 * terms of an Apple operating system software license agreement.
 *
 * Please obtain a copy of the License at
 * http://www.opensource.apple.com/apsl/ and read it before using this file.
 *
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
 *
 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
 */

/* Common LC_NOTE defintions for core files. */
#ifndef _CORE_NOTES_H_
#define _CORE_NOTES_H_

/*
 * Format of the "main bin spec" LC_NOTE payload as expected by LLDB
 */
#define MAIN_BIN_SPEC_DATA_OWNER "main bin spec"

typedef struct main_bin_spec_note {
	uint32_t version;       // currently 1
	uint32_t type;          // 0 == unspecified, 1 == kernel, 2 == user process, 3 == standalone (ie FW)
	uint64_t address;       // UINT64_MAX if address not specified
	uuid_t   uuid;          // all zeros if uuid not specified
	uint32_t log2_pagesize; // process page size in log base 2, e.g. 4k pages are 12. 0 for unspecified
	uint32_t unused;        // leave set to 0
} __attribute__((packed)) main_bin_spec_note_t;

#define MAIN_BIN_SPEC_VERSION 1
#define MAIN_BIN_SPEC_TYPE_KERNEL 1
#define MAIN_BIN_SPEC_TYPE_USER 2
#define MAIN_BIN_SPEC_TYPE_STANDALONE 3


/*
 * Format of the "load binary" LC_NOTE payload as expected by LLDB
 */
#define LOAD_BINARY_SPEC_DATA_OWNER "load binary"

#define LOAD_BINARY_NAME_BUF_SIZE 32
typedef struct load_binary_spec_note {
	uint32_t version;    // currently 1
	uuid_t   uuid;       // all zeroes if uuid not specified
	uint64_t address;    // virtual address where the macho is loaded, UINT64_MAX if unavail
	uint64_t slide;      // UINT64_MAX if slide not specified/unknown
	                     // 0 if there is no slide (the binary loaded at
	                     // the vmaddr in the file)
	/*
	 * name_cstring must be a NUL terminated C string, or empty ('\0')
	 * if unavailable.  NOTE: lldb's spec does not specify a length
	 * for the name, it just wants a NUL terminated string. But we
	 * specify a (maximum) length to avoid notes with dynamic length.
	 */
	char     name_cstring[LOAD_BINARY_NAME_BUF_SIZE];
} __attribute__((packed)) load_binary_spec_note_t;

#define LOAD_BINARY_SPEC_VERSION 1

/*
 * Format of the "addrable bits" LC_NOTE payload as expected by LLDB.
 */
#define ADDRABLE_BITS_DATA_OWNER "addrable bits"

typedef struct addrable_bits_note {
	uint32_t version;            // CURRENTLY 3
	uint32_t addressing_bits;    // # of bits in use for addressing
	uint64_t unused;             // zeroed
} __attribute__((packed)) addrable_bits_note_t;

#define ADDRABLE_BITS_VER 3


#define PANIC_CONTEXT_DATA_OWNER "panic context"

typedef struct panic_context_note {
	uuid_string_t kernel_uuid_string;
} __attribute__((packed)) panic_context_note_t;

#endif /* _CORE_NOTES_H_ */