Get information about the device's health
#include <hw/dcmd_sim_sdmmc.h> #define DCMD_SDMMC_DEVICE_HEALTH __DIOF(_DCMD_CAM, _SIM_SDMMC + 1, union _sdmmc_device_health)
Argument | Value |
---|---|
filedes | A file descriptor that you obtained by opening the device |
dcmd | DCMD_SDMMC_DEVICE_HEALTH |
dev_data_ptr | A pointer to a SDMMC_DEVICE_HEALTH structure |
n_bytes | sizeof(SDMMC_DEVICE_HEALTH) |
dev_info_ptr | NULL |
This command gets information about the device's health.
None.
A filled-in SDMMC_DEVICE_HEALTH structure:
typedef struct _sandisk_health { uint32_t mid; /* Manufacture ID */ uint8_t lifetime; uint8_t nv_avg_pe; /* NV Cache avg P/E cycle */ uint8_t eua_avg_pe; /* Enhanced User Area avg P/E cycle */ uint8_t mlc_avg_pe; /* MLC avg P/E cycle */ } SANDISK_HEALTH; typedef struct _samsung_health { uint32_t mid; /* Manufacture ID */ uint32_t bank0_rsvd_blocks; uint32_t bank1_rsvd_blocks; uint32_t bank2_rsvd_blocks; uint32_t bank3_rsvd_blocks; uint32_t init_bad_blocks; uint32_t runtime_bad_blocks; uint32_t slc_max_ec; /* SLC Maximum Erase Count */ uint32_t slc_min_ec; /* SLC Minimum Erase Count */ uint32_t slc_avg_ec; /* SLC Average Erase Count */ uint32_t mlc_max_ec; /* MLC Maximum Erase Count */ uint32_t mlc_min_ec; /* MLC Minimum Erase Count */ uint32_t mlc_avg_ec; /* MLC Average Erase Count */ uint32_t max_ec; /* Overall Maximum Erase Count */ uint32_t min_ec; /* Overall Minimum Erase Count */ uint32_t avg_ec; /* Overall Average Erase Count */ uint32_t read_reclaim; } SAMSUNG_HEALTH; typedef struct _toshiba_health { /* supported from v4.41 onwards */ uint32_t mid; /* Manufacture ID */ uint32_t lifetime_total; uint32_t lifetime_rsvd_blk; uint32_t lifetime_avg_pe; uint32_t mlc_max_pe; /* MLC Maximum P/E cycle range */ uint32_t mlc_avg_pe; /* MLC Average P/E cycle range */ uint32_t slc_max_pe; /* SLC Maximum P/E cycle range */ uint32_t slc_avg_pe; /* SLC Average P/E cycle range */ } TOSHIBA_HEALTH; typedef union _sdmmc_device_health { uint32_t mid; /* Manufacture ID */ SANDISK_HEALTH sandisk; SAMSUNG_HEALTH samsung; TOSHIBA_HEALTH toshiba; uint8_t bytes[512]; } SDMMC_DEVICE_HEALTH;
devctl() in the QNX Neutrino C Library Reference