ENUM ES58X_ERR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ enum es58x_err(9) ✨

okay so real quick bestie β€” this is a page from the Kernel API Manual, and it's literally all about enum es58x_err, aka CAN error detection πŸ’…. Buckle up, it's giving "small enum, big feelings".


πŸŽ€ NAME πŸŽ€

enum es58x_err β€” CAN error detection. no cap, that's the whole job.


✨ SYNOPSIS ✨

enum es58x_err {
    ES58X_ERR_OK ,
    ES58X_ERR_PROT_STUFF ,
    ES58X_ERR_PROT_FORM ,
    ES58X_ERR_ACK ,
    ES58X_ERR_PROT_BIT ,
    ES58X_ERR_PROT_CRC ,
    ES58X_ERR_PROT_BIT1 ,
    ES58X_ERR_PROT_BIT0 ,
    ES58X_ERR_PROT_OVERLOAD ,
    ES58X_ERR_PROT_UNSPEC

};

look at her. every member in its little slot. iconic. πŸ‘‘


🌸 Constants 🌸

okay now the main character section β€” every single constant, explained, no skips:

  • ES58X_ERR_OK β€” literally no errors. the good timeline 🫢
  • ES58X_ERR_PROT_STUFF β€” bit stuffing error: more than 5 consecutive equal bits. yeah, more than five in a row and the vibe check fails 😭
  • ES58X_ERR_PROT_FORM β€” frame format error. the frame simply isn't framing.
  • ES58X_ERR_ACK β€” received no ACK on transmission. you sent it and got left on read πŸ’€
  • ES58X_ERR_PROT_BIT β€” single bit error. one (1) bit off. one!
  • ES58X_ERR_PROT_CRC β€” incorrect 15, 17 or 21 bits CRC. those are the numbers, bestie, all three of them.
  • ES58X_ERR_PROT_BIT1 β€” unable to send recessive bit: tried to send recessive bit 1 but monitored dominant bit 0. she said recessive, the bus said dominant. embarrassing fr fr πŸ™ˆ
  • ES58X_ERR_PROT_BIT0 β€” unable to send dominant bit: tried to send dominant bit 0 but monitored recessive bit 1. the exact mirror of the above and equally not slaying.
  • ES58X_ERR_PROT_OVERLOAD β€” bus overload. the bus is going through it rn 🌧️
  • ES58X_ERR_PROT_UNSPEC β€” unspecified. we don't know and honestly we're not asking.

πŸ¦‹ Description πŸ¦‹

please please please go read ISO 11898-1:2015, section 10.11 "Error detection" and section 10.13 "Overload signaling" for additional details 🧚 like yes it's the actual spec, yes it's long, yes it ate. iykyk.


🫢 SEE ALSO 🫢

okay this list is LONG and we're getting through all of it, hold my iced coffee:

kernel file ./drivers/net/can/usb/etas_es58x/es58x_core.h enum es58x_driver_info(9), enum es58x_physical_layer(9), enum es58x_sync_edge(9), enum es58x_flag(9), enum es58x_event(9), struct es58x_priv(9), struct es58x_parameters(9), struct es58x_operators(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)


that's the whole page, bestie. ten constants, one enum, zero skips. go detect some errors responsibly πŸ’–

and that's a wrap! this little beauty lives in ./drivers/net/can/usb/etas_es58x and the version tag is dated October 2026 β€” stay hydrated and see you in the next man page, mwah πŸ’…πŸŽ€βœ¨

πŸ“¦ where this page comes from