ENUM ES58X_ERR(9)
β¨ 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
- 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