net/ethtool/module_fw.h

Source file repositories/reference/linux-study-clean/net/ethtool/module_fw.h

File Facts

System
Linux kernel
Corpus path
net/ethtool/module_fw.h
Extension
.h
Size
2370 bytes
Lines
76
Domain
Networking Core
Bucket
Sockets, Protocols, Packet Path, And Network Policy
Inferred role
Networking Core: implementation source
Status
source implementation candidate

Why This File Exists

Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ethnl_module_fw_flash_ntf_params {
	u32 portid;
	u32 seq;
	bool closed_sock;
};

/**
 * struct ethtool_module_fw_flash_params - module firmware flashing parameters
 * @password: Module password. Only valid when @pass_valid is set.
 * @password_valid: Whether the module password is valid or not.
 */
struct ethtool_module_fw_flash_params {
	__be32 password;
	u8 password_valid:1;
};

/**
 * struct ethtool_cmis_fw_update_params - CMIS firmware update specific
 *						parameters
 * @dev: Pointer to the net_device to be flashed.
 * @params: Module firmware flashing parameters.
 * @ntf_params: Module firmware flashing notification parameters.
 * @fw: Firmware to flash.
 */
struct ethtool_cmis_fw_update_params {
	struct net_device *dev;
	struct ethtool_module_fw_flash_params params;
	struct ethnl_module_fw_flash_ntf_params ntf_params;
	const struct firmware *fw;
};

/**
 * struct ethtool_module_fw_flash - module firmware flashing
 * @list: List node for &module_fw_flash_work_list.
 * @dev_tracker: Refcount tracker for @dev.
 * @work: The flashing firmware work.
 * @fw_update: CMIS firmware update specific parameters.
 */
struct ethtool_module_fw_flash {
	struct list_head list;
	netdevice_tracker dev_tracker;
	struct work_struct work;
	struct ethtool_cmis_fw_update_params fw_update;
};

void ethnl_module_fw_flash_sock_destroy(struct ethnl_sock_priv *sk_priv);

void
ethnl_module_fw_flash_ntf_err(struct net_device *dev,
			      struct ethnl_module_fw_flash_ntf_params *params,
			      char *err_msg, char *sub_err_msg);
void
ethnl_module_fw_flash_ntf_start(struct net_device *dev,
				struct ethnl_module_fw_flash_ntf_params *params);
void
ethnl_module_fw_flash_ntf_complete(struct net_device *dev,
				   struct ethnl_module_fw_flash_ntf_params *params);
void
ethnl_module_fw_flash_ntf_in_progress(struct net_device *dev,
				      struct ethnl_module_fw_flash_ntf_params *params,
				      u64 done, u64 total);

void ethtool_cmis_fw_update(struct ethtool_cmis_fw_update_params *params);

Annotation

Implementation Notes