ENUM IDPF_STATE(9)
π enum idpf_state(9) β the bring-up state machine, explained in the group chat
okay so bestie, gather round, because this is a kernel API Manual page (section 9, the kernel-api girlies know) and it's literally all about enum idpf_state β the state machine that handles bring up. that's it, that's the whole vibe. it's a little enum that walks you through waking an idpf thing up, step by step, in order, no skipping. π
β¨ NAME β¨
enum idpf_state β the state machine to handle bring up. yes queen, it's giving "getting out of bed in the morning" but for a network driver. π¦
πΈ SYNOPSIS πΈ
enum idpf_state {
__IDPF_VER_CHECK ,
__IDPF_GET_CAPS ,
__IDPF_INIT_SW ,
__IDPF_STATE_LAST
};
like, look at her. four members. clean. tiny. iconic. and you can't reorder them, more on that below. π
β Constants β
__IDPF_VER_CHECKβ negotiate virtchnl version. first things first, bestie: you gotta agree on which virtchnl version you're speaking before you say literally anything else. communication is key fr fr π¬__IDPF_GET_CAPSβ negotiate capabilities. now you find out what this thing can actually do, and you sort out the capabilities together. vibe check, but for hardware. β¨__IDPF_INIT_SWβ init based on given capabilities. the software init step, and ngl it's built off the capabilities you just negotiated β so like, don't skip the previous step, that would be a whole mess π__IDPF_STATE_LASTβ must be last, used to determine size. she's the sentinel, she's the boundary, she's the reason the enum knows how big it is. must be last, do not move her, do not pass go π periodt
π«Ά SEE ALSO π«Ά
Kernel file ./drivers/net/ethernet/intel/idpf/idpf.h β and then the whole extended friend group, all section 9, all linked:
- struct
idpf_mac_filter(9) - enum
idpf_flags(9) - enum
idpf_cap_field(9) - enum
idpf_vport_state(9) - struct
idpf_netdev_priv(9) - struct
idpf_reset_reg(9) - struct
idpf_vport_max_q(9) - struct
idpf_reg_ops(9) - struct
idpf_dev_ops(9) - enum
idpf_vport_reset_cause(9) - enum
idpf_vport_flags(9) - struct
idpf_tstamp_stats(9) - struct
idpf_q_vec_rsrc(9) - struct
idpf_vport(9) - enum
idpf_user_flags(9) - struct
idpf_rss_data(9) - struct
idpf_q_coalesce(9) - struct
idpf_vport_user_config_data(9) - enum
idpf_vport_config_flags(9) - struct
idpf_avail_queue_info(9) - struct
idpf_vector_info(9) - struct
idpf_vector_lifo(9) - struct
idpf_queue_id_reg_chunk(9) - struct
idpf_queue_id_reg_info(9) - struct
idpf_vport_config(9) - struct
idpf_adapter(9) idpf_is_queue_model_split(9)idpf_is_rdma_cap_ena(9)idpf_get_reserved_vecs(9)idpf_get_reserved_rdma_vecs(9)idpf_get_default_vports(9)idpf_get_max_vports(9)idpf_get_max_tx_bufs(9)idpf_get_min_tx_pkt_len(9)idpf_is_reset_detected(9)idpf_is_reset_in_prog(9)idpf_netdev_to_vport(9)idpf_netdev_to_adapter(9)idpf_is_feature_ena(9)idpf_get_max_tx_hdr_size(9)idpf_vport_ctrl_lock(9)idpf_vport_ctrl_unlock(9)
lowkey a full reading list, but likeβ¦ they're all your besties too, so it's fine π
sign-off time π§π β this whole thing comes from the source tree at ./drivers/net/ethernet/intel/idpf, dated October 2026, living in section 9 of the kernel api manual as enum idpf_state(9). go drink some water and go read idpf.h, ily, bye ππ¦
π¦ 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