An EL2 monitor/hypervisor and toolchain that boots macOS 27 on the ASUS A16 (Snapdragon X2 Elite), with an Adreno Metal plug-in and IOGPU kext, and air2ir3, an AIR to Mesa ir3 shader compiler. MIT, with GPL-2.0 components listed in LICENSE and THIRD_PARTY_NOTICES.md. No Apple, Qualcomm, ASUS or Microsoft binaries are included.
27 lines
1.1 KiB
C
27 lines
1.1 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
#ifndef SNAP_SEP_BOOTSTRAP_H
|
|
#define SNAP_SEP_BOOTSTRAP_H
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
/* The selected virtual profile has no optional boot manifests. These offsets
|
|
* describe the AP-owned shared buffer; they grant no physical memory access. */
|
|
struct sep_bootstrap {
|
|
uint32_t panic_offset, panic_size, flags_offset, scot_offset;
|
|
uint32_t flags[4];
|
|
};
|
|
struct sep_bootstrap_reader {
|
|
void *ctx;
|
|
int (*read)(void *,uint32_t offset,size_t size,void *out);
|
|
};
|
|
enum sep_bootstrap_result {
|
|
SEP_BOOTSTRAP_OK, SEP_BOOTSTRAP_BAD_SIZE, SEP_BOOTSTRAP_BAD_DIRECTORY,
|
|
SEP_BOOTSTRAP_BAD_CONTENT, SEP_BOOTSTRAP_READ_FAILED
|
|
};
|
|
/* Parse the measured PNIC/FLAG/SCOT directory. The caller must first admit
|
|
* the entire DMA extent and serialize reads with mapping/ownership changes.
|
|
* Refusal leaves out untouched. No guest memory is written. */
|
|
enum sep_bootstrap_result sep_bootstrap_parse(const struct sep_bootstrap_reader *,
|
|
uint64_t size,struct sep_bootstrap *out);
|
|
#endif
|