No edit summary |
No edit summary |
||
Line 23: | Line 23: | ||
'''NOTE:''' this table currently is only showing the selectors, the input / output will be documented later. | '''NOTE:''' this table currently is only showing the selectors, the input / output will be documented later. | ||
where | |||
<source lang="c"> | |||
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; | |||
</source> |
Revision as of 11:17, 30 January 2020
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;