STRUCT GENWQE_DEV(9)
π NAME π
struct genwqe_dev β GenWQE device information
okay so this is the kernel API manual page for it, bestie, and it's genuinely the whole vibe of "everything you need to know about one GenWQE card, in one struct." Let's get into it β¨
β¨ SYNOPSIS β¨
struct genwqe_dev {
enum genwqe_card_state card_state;
spinlock_t print_lock;
int card_idx;
u64 flags;
struct genwqe_ffdc ffdc[GENWQE_DBG_UNITS];
struct task_struct *card_thread;
wait_queue_head_t queue_waitq;
struct ddcb_queue queue;
unsigned int irqs_processed;
struct task_struct *health_thread;
wait_queue_head_t health_waitq;
int use_platform_recovery;
dev_t devnum_genwqe;
const struct class *class_genwqe;
struct device *dev;
struct cdev cdev_genwqe;
struct dentry *debugfs_root;
struct dentry *debugfs_genwqe;
struct pci_dev *pci_dev;
void __iomem *mmio;
unsigned long mmio_len;
int num_vfs;
u32 vf_jobtimeout_msec[GENWQE_MAX_VFS];
int is_privileged;
u64 slu_unitcfg;
u64 app_unitcfg;
u64 softreset;
u64 err_inject;
u64 last_gfir;
char app_name[5];
spinlock_t file_lock;
struct list_head file_list;
int ddcb_software_timeout;
int skip_recovery;
int kill_timeout;
};
like, look at her. so many fields. she's built π
πΈ Members πΈ
not every field gets a lil blurb down here, and that's fine β but the ones that do? iconic. here's the breakdown π
card_stateβ card operation state, see above πffdcβ First Failure Data Capture buffers, one for each unit π₯card_threadβ the working thread that operates the DDCB queuequeueβ the DDCB queue itselfhealth_threadβ the card monitoring thread (only for PFs, fyi)health_waitqβ the wait queue used inhealth_threadpci_devβ the associated PCI device (function)mmioβ base address of the 64-bit register spacemmio_lenβ length of the register areafile_lockβ the lock that protects access tofile_listfile_listβ list of every process with open GenWQE file descriptors ποΈ
π¦ Description π¦
so this struct is lowkey the main character of the whole show π It contains all the information you need to communicate with a GenWQE card. It gets initialized when a GenWQE device is found, and destroyed when it goes away β birth and death of a card, no cap.
she holds the data to maintain the queue, plus the data needed to feed the user interfaces. so basically: the queue-keeper AND the people-feeder. multi-hyphenate queen π
π SEE ALSO π
the kernel file ./drivers/misc/genwqe/card_base.h, and also these besties who are always in the group chat:
struct genwqe_reg(9)struct dma_mapping(9)struct ddcb_queue(9)enum genwqe_requ_state(9)struct genwqe_sgl(9)struct ddcb_requ(9)struct genwqe_file(9)genwqe_get_slu_id(9)genwqe_write_vreg(9)genwqe_read_vreg(9)__genwqe_execute_ddcb(9)__genwqe_execute_raw_ddcb(9)genwqe_is_privileged(9)
ngl bestie, if you got here you probably actually need to talk to a GenWQE card, and that's so valid of you π«Ά go read the other pages too, they're all linked above π
okay that's the whole page!! she came from ./drivers/misc/genwqe, dated October 2026 β stamped and certified, 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