STRUCT ES58X_OPERATORS(9)
π
struct es58x_operators(9) π
okay bestie, you're in the Kernel API Manual and this is the page for struct es58x_operators(9) β the little squad of function pointers that handle encoding/decoding the TX/RX messages. no cap, it's giving βpluggable device behaviorβ energy. π¦
β¨ NAME β¨
struct es58x_operators β function pointers used to encode/decode the TX/RX messages. periodt. π
π SYNOPSIS π
struct es58x_operators {
u16 (*get_msg_len)(const union es58x_urb_cmd *urb_cmd);
int (*handle_urb_cmd)(struct es58x_device *es58x_dev, const union
es58x_urb_cmd *urb_cmd);
void (*fill_urb_header)(union es58x_urb_cmd *urb_cmd, u8 cmd_type,
u8 cmd_id, u8 channel_idx, u16 cmd_len);
int (*tx_can_msg)(struct es58x_priv *priv, const struct sk_buff
*skb);
int (*enable_channel)(struct es58x_priv *priv);
int (*disable_channel)(struct es58x_priv *priv);
int (*reset_device)(struct es58x_device *es58x_dev);
int (*get_timestamp)(struct es58x_device *es58x_dev);
};
π«Ά Members π«Ά
get_msg_lenβ grabs themsg_lenfield of theurb_cmd. The offset ofmsg_leninsideurb_cmddepends of the device model. iykyk, it's per-device behavior. πΈhandle_urb_cmdβ decodes the URB command received from the device and dispatches it to the relevant sub function. main character energy for incoming messages fr fr. πfill_urb_headerβ fills the header ofurb_cmd. cute little header moment. πtx_can_msgβ encodes a TX CAN message and adds it to the bulk buffercmd_bufofes58x_dev. slay, get that message queued. π₯enable_channelβ starts the CAN channel. go bestie go. β¨disable_channelβ stops the CAN channel. okay bye channel. πreset_deviceβ full reset of the device. N.B: this feature is only present on the ES581.4. For ES58X FD devices, this field is set toNULL. very important, don't forget theNULLvibe. πget_timestampβ requests a timestamp from the ES58X device. time check, but make it kernel. β
π SEE ALSO π
Kernel file ./drivers/net/can/usb/etas_es58x/es58x_core.h β and the whole squad is right here, no skips:
enum es58x_driver_info(9)enum es58x_physical_layer(9)enum es58x_sync_edge(9)enum es58x_flag(9)enum es58x_err(9)enum es58x_event(9)struct es58x_priv(9)struct es58x_parameters(9)struct es58x_sw_version(9)struct es58x_hw_revision(9)struct es58x_device(9)es58x_sizeof_es58x_device(9)es58x_check_msg_len(9)es58x_check_msg_max_len(9)es58x_msg_num_element(9)es58x_priv(9)ES58X_SIZEOF_URB_CMD(9)es58x_get_urb_cmd_len(9)es58x_get_netdev(9)es58x_get_raw_can_id(9)es58x_get_flags(9)
source/version: ./drivers/net/can/usb/etas_es58x β’ date: October 2026 β’ struct es58x_operators(9) πβ¨
π¦ 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