STRUCT IL_SCALE_TBL_INFO(9)
π¦ struct il_scale_tbl_info(9)
okay so we are literally in the Kernel API Manual right now, and today's main character is struct il_scale_tbl_info β the struct that the NAME section says is all about tx params and success history for all rates. that's the whole pitch. slay. π
β¨ NAME β¨
struct il_scale_tbl_info β tx params and success history for all rates. periodt. that's what it does, that's what it is.
πΈ SYNOPSIS πΈ
here's the whole struct, bestie, copy it exactly, do not freestyle:
struct il_scale_tbl_info {
enum il_table_type lq_type;
u8 ant_type;
u8 is_SGI;
u8 is_ht40;
u8 is_dup;
u8 action;
u8 max_search;
s32 *expected_tpt;
u32 current_rate;
struct il_rate_scale_data win[RATE_COUNT];
};
not me counting the fields to make sure nothing got lost π there's ten of them, bestie. ten. count them yourself if you don't trust me (you should trust me).
π DESCRIPTION π
π Members
okay so here's the thing β the manpage gives us the members in the SYNOPSIS but then justβ¦ doesn't describe them. iconic of it honestly. so here's the roster, and I'm not gonna make up meanings that aren't in the source, because that's a no:
enum il_table_type lq_typeβ a field, of typeenum il_table_type. that's what the page gives us. it's giving mysterious. π΅οΈu8 ant_typeβ a lil'u8. that's it, that's the entry.u8 is_SGIβu8flag field, exact spellingis_SGIwith the capital letters, don't @ me.u8 is_ht40β anotheru8, lowercase this time. the inconsistency is a vibe, not a typo, type it exactly.u8 is_dupβu8. yes. again.u8 actionβu8. we love a short field name.u8 max_searchβu8. sounds important. page isn't telling. π€s32 *expected_tptβ a pointer to ans32, so like, actual memory, be careful bestie.u32 current_rateβ au32, no pointer, chill.struct il_rate_scale_data win[RATE_COUNT]β an array ofstruct il_rate_scale_data, indexed byRATE_COUNT. whole array, right there in the struct. π«Ά
fr fr the original Members section is empty. I'm not out here inventing documentation, I'm just formatting what's there. the facts stay the same even when the vibe changes π
π« the actual description π«
There are two of these in struct il_lq_sta β one for "active", and one for "search".
that's it. two of them. one active, one search. and honestly? that's kind of the whole tea. π₯
π SEE ALSO π
the kernel file lives at ./drivers/net/wireless/intel/iwlegacy/common.h, and here's the whole friend group, in order, no one left out:
struct il_device_cmd(9)struct il_device_cmd_huge(9)struct il_rx_queue(9)struct il_ht_agg(9)struct il_vif_priv(9)struct il_hw_params(9)struct il_cfg(9)il_clear_driver_stations(9)il_sta_id_or_broadcast(9)il_queue_inc_wrap(9)il_queue_dec_wrap(9)il_beacon_time_mask_low(9)il_beacon_time_mask_high(9)struct il_rb_status(9)struct il_tfd_tb(9)struct il_tfd(9)struct il_rate_scale_data(9)struct il_lq_sta(9)il3945_rate_scale_init(9)
go read them, bestie, they're all right there. iykyk π§
and that's the page! π source path got cut off at ./drivers/net/wireless/intel/i..., dated October 2026, and it's filed under struct il_scale_tbl_info(9) in case you forgot where you were. mwah, go write some iwlegacy code, ily πβ¨
π¦ 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