STRUCT ES58X_FD_URB_CMD(9)
πΈ NAME πΈ
okay so bestie, welcome to the Kernel API Manual page for struct es58x_fd_urb_cmd(9) π and it's literally all about commands received from or sent to the ES58X FD device. no cap, that's the whole vibe.
β¨ SYNOPSIS β¨
here's the struct in all its glory, pls admire the layout:
struct es58x_fd_urb_cmd {
__le16 SOF;
u8 cmd_type;
u8 cmd_id;
u8 channel_idx;
__le16 msg_len;
union {
struct es58x_fd_tx_conf_msg tx_conf_msg;
u8 tx_can_msg_buf[ES58X_FD_TX_BULK_MAX * ES58X_FD_CANFD_TX_LEN];
u8 rx_can_msg_buf[ES58X_FD_RX_BULK_MAX * ES58X_FD_CANFD_RX_LEN];
struct es58x_fd_echo_msg echo_msg[ES58X_FD_ECHO_BULK_MAX];
struct es58x_fd_rx_event_msg rx_event_msg;
struct es58x_fd_tx_ack_msg tx_ack_msg;
__le64 timestamp;
__le32 rx_cmd_ret_le32;
u8 raw_msg[];
};
__le16 reserved_for_crc16_do_not_use;
};
π«Ά Members π«Ά
SOFβ Start of Frame. iconic little opener β¨cmd_typeβ Command Type (type: enum es58x_fd_cmd_type). and bestie, the CRC calculation starts at this position. noted. πcmd_idβ Command ID (type: enum es58x_fd_cmd_id).channel_idxβ Channel index starting at0.msg_lenβ Length of the message, excluding CRC (i.e. length of the union).{unnamed_union}β anonymous. it's the union, no name needed π«Άtx_conf_msgβ Channel configuration.tx_can_msg_bufβ Concatenation of Tx messages. Type is"u8[]"instead of"struct es58x_fd_tx_msg[]"because the structure has a flexible size.rx_can_msg_bufβ Concatenation Rx messages. Type is"u8[]"instead of"struct es58x_fd_rx_msg[]"because the structure has a flexible size.echo_msgβ Array of echo messages (e.g. Tx messages being looped back).rx_event_msgβ Error or event message.tx_ack_msgβ Tx acknowledgment message.timestampβ Timestamp reply.rx_cmd_ret_le32β Rx 32 bits return code (type: enum es58x_cmd_ret_code_u32).raw_msgβ Message raw payload.reserved_for_crc16_do_not_useβ The structure ends with a CRC16. Because the structures in above union are of variable lengths, we can not predict the offset of the CRC in advance. Use functionses58x_get_crcandes58x_set_crcto manipulate it. bestie, this one is giving "do not touch" energy for a reason π
π SEE ALSO π
Kernel file ./drivers/net/can/usb/etas_es58x/es58x_fd.h, enum es58x_fd_ctrlmode(9), and struct es58x_fd_tx_conf_msg(9). those are the see-also besties, go say hi π
mwah π this page comes from ./drivers/net/can/usb/etas_es58x, with the October 2026 date vibe β and that's the whole cute little footer fantasy, 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