AppleEmbeddedNVMeController is a kernel extension for managing the NAND (disk) of via Peripheral Component Interconnect Express (PCIe) bus.
Methods
Selector | Action | Input | Output |
---|---|---|---|
2 | sendNVMECommand | struct NVMeCommand* | __n128 unknown |
3 | isBFHMode | - | bool bfhMode |
4 | performBFH | - | - |
5 | getNANDDescriptor | - | - |
6 | setNVMeState | - | - |
7 | setPCIPortState | - | - |
8 | setBFHGPIO | uint64_t value | uint64_t unknown |
NOTE: this table currently is only showing the selectors, the input / output will be documented later.
where
typedef union __attribute__((aligned(8))) __n128
{
uint64_t n128_u64[2];
uint32_t n128_u32[4];
uint16_t n128_u16[8];
uint8_t n128_u8[16];
int64_t n128_i64[2];
int32_t n128_i32[4];
int16_t n128_i16[8];
int8_t n128_i8[16];
float n128_f32[4];
double n128_f64[2];
} __n128;
enum AppleEmbeddedNVMeControllerAction {
kNVMECTL_sendNVMECommandAction = 2,
kNVMECTL_isBFHModeAction = 3,
kNVMECTL_performBFHAction = 4,
kNVMECTL_getNandDescriptorAction = 5,
kNVMECTL_setNVMeStateAction = 6,
kNVMECTL_setPCIPortStateAction = 7,
kNVMECTL_setBFHGPIOAction = 8,
};
typedef struct NVMeIdentifyControllerStruct {
char unknown[0x1000];
} NVMeIdentifyControllerStruct;
typedef struct NVMeCommand {
} *NVMeCommand;
typedef struct FTLVersion {
uint8_t clogMajor;
uint8_t clogMinor;
uint8_t dm;
} FTLVersion;