drivers/thermal/thermal_netlink.h
Source file repositories/reference/linux-study-clean/drivers/thermal/thermal_netlink.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/thermal/thermal_netlink.h- Extension
.h- Size
- 4786 bytes
- Lines
- 179
- Domain
- Driver Families
- Bucket
- drivers/thermal
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct thermal_genl_cpu_capsstruct thermal_genl_notifystruct thermal_zone_devicestruct thermal_tripstruct thermal_cooling_deviceenum thermal_genl_multicast_groupsfunction thermal_netlink_initfunction thermal_notify_tz_createfunction thermal_genl_register_notifierfunction thermal_genl_unregister_notifierfunction thermal_notify_tz_deletefunction thermal_notify_tz_enablefunction thermal_notify_tz_disablefunction thermal_notify_tz_trip_downfunction thermal_notify_tz_trip_upfunction thermal_notify_tz_trip_changefunction thermal_notify_cdev_state_updatefunction thermal_notify_cdev_addfunction thermal_notify_cdev_deletefunction thermal_notify_tz_gov_changefunction thermal_genl_sampling_tempfunction thermal_genl_cpu_capability_eventfunction thermal_notify_threshold_addfunction thermal_notify_threshold_deletefunction thermal_notify_threshold_flushfunction thermal_notify_threshold_downfunction thermal_notify_threshold_upfunction thermal_netlink_exit
Annotated Snippet
struct thermal_genl_cpu_caps {
int cpu;
int performance;
int efficiency;
};
enum thermal_genl_multicast_groups {
THERMAL_GENL_SAMPLING_GROUP = 0,
THERMAL_GENL_EVENT_GROUP = 1,
THERMAL_GENL_MAX_GROUP = THERMAL_GENL_EVENT_GROUP,
};
#define THERMAL_NOTIFY_BIND 0
#define THERMAL_NOTIFY_UNBIND 1
struct thermal_genl_notify {
int mcgrp;
};
struct thermal_zone_device;
struct thermal_trip;
struct thermal_cooling_device;
/* Netlink notification function */
#ifdef CONFIG_THERMAL_NETLINK
int __init thermal_netlink_init(void);
void __init thermal_netlink_exit(void);
int thermal_genl_register_notifier(struct notifier_block *nb);
int thermal_genl_unregister_notifier(struct notifier_block *nb);
int thermal_notify_tz_create(const struct thermal_zone_device *tz);
int thermal_notify_tz_delete(const struct thermal_zone_device *tz);
int thermal_notify_tz_enable(const struct thermal_zone_device *tz);
int thermal_notify_tz_disable(const struct thermal_zone_device *tz);
int thermal_notify_tz_trip_down(const struct thermal_zone_device *tz,
const struct thermal_trip *trip);
int thermal_notify_tz_trip_up(const struct thermal_zone_device *tz,
const struct thermal_trip *trip);
int thermal_notify_tz_trip_change(const struct thermal_zone_device *tz,
const struct thermal_trip *trip);
int thermal_notify_cdev_state_update(const struct thermal_cooling_device *cdev,
int state);
int thermal_notify_cdev_add(const struct thermal_cooling_device *cdev);
int thermal_notify_cdev_delete(const struct thermal_cooling_device *cdev);
int thermal_notify_tz_gov_change(const struct thermal_zone_device *tz,
const char *name);
int thermal_genl_sampling_temp(int id, int temp);
int thermal_genl_cpu_capability_event(int count,
struct thermal_genl_cpu_caps *caps);
int thermal_notify_threshold_add(const struct thermal_zone_device *tz,
int temperature, int direction);
int thermal_notify_threshold_delete(const struct thermal_zone_device *tz,
int temperature, int direction);
int thermal_notify_threshold_flush(const struct thermal_zone_device *tz);
int thermal_notify_threshold_down(const struct thermal_zone_device *tz);
int thermal_notify_threshold_up(const struct thermal_zone_device *tz);
#else
static inline int thermal_netlink_init(void)
{
return 0;
}
static inline int thermal_notify_tz_create(const struct thermal_zone_device *tz)
{
return 0;
}
static inline int thermal_genl_register_notifier(struct notifier_block *nb)
{
return 0;
}
static inline int thermal_genl_unregister_notifier(struct notifier_block *nb)
{
return 0;
}
static inline int thermal_notify_tz_delete(const struct thermal_zone_device *tz)
{
return 0;
}
static inline int thermal_notify_tz_enable(const struct thermal_zone_device *tz)
{
return 0;
}
static inline int thermal_notify_tz_disable(const struct thermal_zone_device *tz)
{
return 0;
Annotation
- Detected declarations: `struct thermal_genl_cpu_caps`, `struct thermal_genl_notify`, `struct thermal_zone_device`, `struct thermal_trip`, `struct thermal_cooling_device`, `enum thermal_genl_multicast_groups`, `function thermal_netlink_init`, `function thermal_notify_tz_create`, `function thermal_genl_register_notifier`, `function thermal_genl_unregister_notifier`.
- Atlas domain: Driver Families / drivers/thermal.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.