STRUCT EDAC_ECS_OPS(9)
π struct edac_ecs_ops(9) β Kernel API Manual
okay bestie, welcome to the ECS device operations vibe check β¨ this is struct edac_ecs_ops, and the headline is: every single element is optional. no cap. all of them. it's giving "choose your own adventure" but make it kernel π
β¨ SYNOPSIS β¨
struct edac_ecs_ops {
int (*get_log_entry_type)(struct device *dev, void *drv_data, int fru_id, u32 *val);
int (*set_log_entry_type)(struct device *dev, void *drv_data, int fru_id, u32 val);
int (*get_mode)(struct device *dev, void *drv_data, int fru_id, u32 *val);
int (*set_mode)(struct device *dev, void *drv_data, int fru_id, u32 val);
int (*reset)(struct device *dev, void *drv_data, int fru_id, u32 val);
int (*get_threshold)(struct device *dev, void *drv_data, int fru_id, u32 *threshold);
int (*set_threshold)(struct device *dev, void *drv_data, int fru_id, u32 threshold);
};
like, look at that. a whole little squad of function pointers, all riding the same struct device *dev, void *drv_data, int fru_id trio π«Ά iconic.
π Members π
okay so here's the roster, one by one, and yes they're all optional so don't come for me π
get_log_entry_typeβ reads the log entry type value. that's it, that's the whole job πΈset_log_entry_typeβ sets the log entry type value. the setter to the getter's getter, if you will β¨get_modeβ reads the mode value πset_modeβ sets the mode value πresetβ resets the ECS counter. clean slate energy, we love a fresh start π¦get_thresholdβ reads the threshold count per gigabits of memory cells. yes, per gigabits, that's the unit, don't @ me πset_thresholdβ sets the threshold count per gigabits of memory cells. same unit, different direction π«
π SEE ALSO π
if you're the kind of bestie who likes to click through the whole friend group, here's everybody π
Kernel file ./include/linux/edac.h:
enum dev_type(9)enum hw_event_mc_err_type(9)enum mem_type(9)enum edac_type(9)enum scrub_type(9)enum edac_mc_layer_type(9)struct edac_mc_layer(9)struct rank_info(9)struct edac_raw_error_desc(9)edac_get_dimm(9)struct edac_scrub_ops(9)struct edac_mem_repair_ops(9)
ngl the fact that literally every element here is optional is the whole personality of this struct. it's a menu, bestie, not a contract π
fr fr that's the whole page π«Ά source lives in ./include/linux, dated October 2026, and it's filed under struct edac_ecs_ops(9) β go read the real thing when you need the deep lore, mwah π periodt.
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms