STRUCT ES58X_FD_URB_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 at 0.
  • 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 functions es58x_get_crc and es58x_set_crc to 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