STRUCT ISSEI_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct issei_device(9) πŸŽ€

okay bestie, welcome to the Kernel API Manual ✨ this page is all about struct issei_device and it's genuinely a lot, so grab a snack πŸ“


πŸ’– NAME πŸ’–

struct issei_device β€” the issei device, like, the whole vibe of one πŸ¦‹


✨ SYNOPSIS ✨

struct issei_device {
    struct device *parent;
    struct device dev;
    struct cdev *cdev;
    u32 minor;
    wait_queue_head_t wait_has_data;
    bool has_data;
    bool power_down;
    wait_queue_head_t wait_rst_state;
    enum issei_rst_state rst_state;
    u16 fw_protocol_ver;
    u16 fw_version[4];
    struct task_struct *process_thread;
    u8 reset_count;
    u8 all_reset_count;
    struct mutex client_lock;
    struct list_head host_client_list;
    u16 host_client_last_id;
    u8 host_client_count;
    struct kset *fw_clients;
    struct list_head fw_client_list;
    struct list_head write_queue;
    ktime_t last_write_ts;
    struct issei_dma dma;
    const struct issei_hw_ops *ops;
    char hw[];
};

no cap, that's the entire struct, copied character for character πŸ’…


🌸 Members 🌸

okay so now we go member by member, main-character style πŸ‘‘

  • parent β€” the parent device object, aka who brought you into this world 🫢
  • dev β€” the associated device object that goes with it
  • cdev β€” the character device, the classic /dev situation
  • minor β€” the allocated minor number, the numbers are real πŸ”’
  • wait_has_data β€” a wait queue for data, so people can chill until there's something to do
  • has_data β€” literally just "there are data to process" β€” iconic, no notes
  • power_down β€” the device is powering down, wrap it up πŸ’€
  • wait_rst_state β€” the waitqueue for reset state processing, so you wait pretty for the reset
  • rst_state β€” the reset state itself
  • fw_protocol_ver β€” the protocol version, iykyk
  • fw_version β€” the firmware version
  • process_thread β€” the worker thread doing the actual labor 😭
  • reset_count β€” number of consecutive link reset attempts (consecutive!! important!!)
  • all_reset_count β€” the cumulative number of link reset attempts, the big-picture total
  • client_lock β€” a mutex to protect the client lists and the write queue πŸ”’ do not skip this one bestie
  • host_client_list β€” the host clients list
  • host_client_last_id β€” the last allocated host client id
  • host_client_count β€” number of active host clients
  • fw_client_list β€” the firmware clients list
  • write_queue β€” the write queue, exactly what it says πŸŽ€
  • last_write_ts β€” the last write timestamp, so you always know when the last write happened ⏰
  • dma β€” the DMA memory configuration
  • ops β€” the hardware operations
  • hw β€” hw-specific data, the flexible little tail of the struct 🧚

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/misc/issei/issei_dev.h β€” start there, fr fr
  • struct issei_write_buf(9)
  • struct issei_hw_ops(9)
  • enum issei_rst_state(9)

and that's the whole page, periodt πŸ’œ this little beauty lives in ./drivers/misc/issei and the version is dated October 2026 β€” go off, issei device, we're obsessed 🌈⭐

struct issei_device(9) πŸŽ€

πŸ“¦ where this page comes from