include/linux/pse-pd/pse.h

Source file repositories/reference/linux-study-clean/include/linux/pse-pd/pse.h

File Facts

System
Linux kernel
Corpus path
include/linux/pse-pd/pse.h
Extension
.h
Size
14679 bytes
Lines
422
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ethtool_c33_pse_ext_state_info {
	enum ethtool_c33_pse_ext_state c33_pse_ext_state;
	union {
		enum ethtool_c33_pse_ext_substate_error_condition error_condition;
		enum ethtool_c33_pse_ext_substate_mr_pse_enable mr_pse_enable;
		enum ethtool_c33_pse_ext_substate_option_detect_ted option_detect_ted;
		enum ethtool_c33_pse_ext_substate_option_vport_lim option_vport_lim;
		enum ethtool_c33_pse_ext_substate_ovld_detected ovld_detected;
		enum ethtool_c33_pse_ext_substate_power_not_available power_not_available;
		enum ethtool_c33_pse_ext_substate_short_detected short_detected;
		u32 __c33_pse_ext_substate;
	};
};

struct ethtool_c33_pse_pw_limit_range {
	u32 min;
	u32 max;
};

/**
 * struct pse_irq_desc - notification sender description for IRQ based events.
 *
 * @name: the visible name for the IRQ
 * @map_event: driver callback to map IRQ status into PSE devices with events.
 */
struct pse_irq_desc {
	const char *name;
	int (*map_event)(int irq, struct pse_controller_dev *pcdev,
			 unsigned long *notifs,
			 unsigned long *notifs_mask);
};

/**
 * struct pse_control_config - PSE control/channel configuration.
 *
 * @podl_admin_control: set PoDL PSE admin control as described in
 *	IEEE 802.3-2018 30.15.1.2.1 acPoDLPSEAdminControl
 * @c33_admin_control: set PSE admin control as described in
 *	IEEE 802.3-2022 30.9.1.2.1 acPSEAdminControl
 */
struct pse_control_config {
	enum ethtool_podl_pse_admin_state podl_admin_control;
	enum ethtool_c33_pse_admin_state c33_admin_control;
};

/**
 * struct pse_admin_state - PSE operational state
 *
 * @podl_admin_state: operational state of the PoDL PSE
 *	functions. IEEE 802.3-2018 30.15.1.1.2 aPoDLPSEAdminState
 * @c33_admin_state: operational state of the PSE
 *	functions. IEEE 802.3-2022 30.9.1.1.2 aPSEAdminState
 */
struct pse_admin_state {
	enum ethtool_podl_pse_admin_state podl_admin_state;
	enum ethtool_c33_pse_admin_state c33_admin_state;
};

/**
 * struct pse_pw_status - PSE power detection status
 *
 * @podl_pw_status: power detection status of the PoDL PSE.
 *	IEEE 802.3-2018 30.15.1.1.3 aPoDLPSEPowerDetectionStatus:
 * @c33_pw_status: power detection status of the PSE.
 *	IEEE 802.3-2022 30.9.1.1.5 aPSEPowerDetectionStatus:
 */
struct pse_pw_status {
	enum ethtool_podl_pse_pw_d_status podl_pw_status;
	enum ethtool_c33_pse_pw_d_status c33_pw_status;
};

/**
 * struct pse_ext_state_info - PSE extended state information
 *
 * @c33_ext_state_info: extended state information of the PSE
 */
struct pse_ext_state_info {
	struct ethtool_c33_pse_ext_state_info c33_ext_state_info;
};

/**
 * struct pse_pw_limit_ranges - PSE power limit configuration range
 *
 * @c33_pw_limit_ranges: supported power limit configuration range. The driver
 *			 is in charge of the memory allocation.
 */
struct pse_pw_limit_ranges {
	struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges;
};

Annotation

Implementation Notes