STRUCT IWL_TIME_EVENT_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iwl_time_event_cmd(9) β€” like, the whole kernel API manual moment ✨

okay so bestie, welcome to the struct iwl_time_event_cmd page from the Kernel API Manual, section 9. this is the whole vibe: configuring Time Events with struct MAC_TIME_EVENT_DATA_API_S_VER_2 (see also with version 1, determined by IWL_UCODE_TLV_FLAGS) β€” and yes, it's the TIME_EVENT_CMD = 0x29 one. no cap. πŸŽ€


✨ NAME ✨

struct iwl_time_event_cmd β€” configuring Time Events with struct MAC_TIME_EVENT_DATA_API_S_VER_2 (see also with version 1, determined by IWL_UCODE_TLV_FLAGS) ( TIME_EVENT_CMD = 0x29 ) πŸ•


🌸 SYNOPSIS 🌸

this is the whole struct, and yeah, every field is doing its thing:

struct iwl_time_event_cmd {
    __le32 id_and_color;
    __le32 action;
    __le32 id;
    __le32 apply_time;
    __le32 max_delay;
    __le32 depends_on;
    __le32 interval;
    __le32 duration;
    u8 repeat;
    u8 max_frags;
    __le16 policy;
 };

πŸ¦‹ Members πŸ¦‹

like, the main characters of this struct, one by one πŸ’–

  • id_and_color β€” the ID and color of the relevant MAC, of type enum iwl_ctxt_id_and_color. it's giving "which MAC am i even talking about" energy.
  • action β€” the action to perform, one of enum iwl_ctxt_action. so, like, what are we even doing here πŸ‘€
  • id β€” okay bestie, this field has two meanings depending on the action: if the action is ADD, then it means the type of event to add. for all other actions it is the unique event ID assigned when the event was added by the FW. literally a dual-threat icon.
  • apply_time β€” when to start the Time Event (in GP2). the "start the timer for me" moment ⏰
  • max_delay β€” maximum delay to event's start (apply time), in TU. so it can be a lil late, but not too late, yk?
  • depends_on β€” the unique ID of the event we depend on (if any). it's giving codependent but make it firmware 🫢
  • interval β€” interval between repetitions, in TU.
  • duration β€” duration of event in TU. how long the whole thing lasts, periodt.
  • repeat β€” how many repetitions to do, can be TE_REPEAT_ENDLESS. yes, endless. go off πŸ”₯
  • max_frags β€” maximal number of fragments the Time Event can be divided to. chop it up, iconically.
  • policy β€” defines whether uCode shall notify the host or other uCode modules on event and/or fragment start and/or end, using one of TE_INDEPENDENT, TE_DEP_OTHER, TE_DEP_TSF, TE_EVENT_SOCIOPATHIC, using TE_ABSENCE, and using TE_NOTIF_*, of type enum iwl_time_event_policy. ngl "sociopathic event" is such a specific vibe and i respect it πŸ’€
okay quick vibe check: all the TE_* names and the enum types above are exact, so don't go renaming them in ur head β€” the FW will Not be amused πŸ™ˆ

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, they're the friend group:

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/time-event.h
  • enum iwl_time_event_policy(9)
  • struct iwl_time_event_resp(9)
  • struct iwl_time_event_notif(9)
  • enum iwl_session_prot_conf_id(9)
  • struct iwl_session_prot_cmd(9)
  • struct iwl_session_prot_notif(9)

and that's the page, bestie πŸ’œ this lil number came from ./drivers/net/wireless/intel/i... and it's dated October 2026, all about struct iwl_time_event_cmd(9). mwah, go configure some time events πŸ§šβœ¨πŸŽ€

πŸ“¦ where this page comes from