STRUCT PSE_CONTROLLER_DEV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct pse_controller_dev β€” the PSE controller entity that might provide multiple PSE controls. Periodt. This page is living in the Kernel API Manual, and it's giving "one controller, multiple PSE controls" energy. Slay. πŸ¦‹

✨ SYNOPSIS ✨

Okay bestie, here's the struct in all its iconic, exact glory:

       struct pse_controller_dev {
           const struct pse_controller_ops *ops;
           struct module *owner;
           struct list_head list;
           struct list_head pse_control_head;
           struct device *dev;
           int of_pse_n_cells;
           unsigned int nr_lines;
           struct mutex lock;
           enum ethtool_pse_types types;
           struct pse_pi *pi;
           bool no_of_pse_pi;
           int irq;
           unsigned int pis_prio_max;
           u32 supp_budget_eval_strategies;
           struct work_struct ntf_work;
           struct pse_ntf *ntf_fifo;
           spinlock_t ntf_fifo_lock;
        };

🌸 Members 🌸

Vibe check on every single field, because they all matter, no cap:

  • ops β€” a pointer to device specific struct pse_controller_ops. That's the ops hookup, iykyk. πŸ‘‘
  • owner β€” the kernel module of the PSE controller driver. Gotta know who owns it, fr fr. 🫢
  • list β€” internal list of PSE controller devices. Lowkey the group chat of controllers. πŸ’…
  • pse_control_head β€” head of internal list of requested PSE controls. Head of the list, head of the class. πŸŽ€
  • dev β€” corresponding driver model device struct. The literal device bestie. 🌸
  • of_pse_n_cells β€” number of cells in PSE line specifiers. Counting cells like it's a spreadsheet, periodt. ✨
  • nr_lines β€” number of PSE controls in this controller device. That's the line count, bestie. πŸ”₯
  • lock β€” the mutex for serialization access to the PSE controller. She keeps things from getting messy. πŸ’€
  • types β€” types of the PSE controller. Plural types, plural vibes. 🌈
  • pi β€” table of PSE PIs described in this controller device. Table? More like a whole roster. πŸ‘‘
  • no_of_pse_pi β€” flag set if the pse_pis devicetree node is not used. Not me checking devicetree nodes... πŸ™ˆ
  • irq β€” PSE interrupt. The interrupt queen herself. ⚑
  • pis_prio_max β€” Maximum value allowed for the PSE PIs priority. Big priority energy. πŸ’…
  • supp_budget_eval_strategies β€” budget evaluation strategies supported by the PSE. Long name, main character responsibility. 😭
  • ntf_work β€” workqueue for PSE notification management. Handling notifications like a boss. 🧚
  • ntf_fifo β€” PSE notifications FIFO. First in, first out, iconic behavior. πŸ“
  • ntf_fifo_lock β€” protect ntf_fifo writer. Don't let those writers race, bestie. πŸ”’

πŸŽ€ SEE ALSO πŸŽ€

Kernel file ./include/linux/pse-pd/pse.h is the source bestie, and here's the whole linked entourage:

  • struct pse_irq_desc(9)
  • struct pse_control_config(9)
  • struct pse_admin_state(9)
  • struct pse_pw_status(9)
  • struct pse_ext_state_info(9)
  • struct pse_pw_limit_ranges(9)
  • struct ethtool_pse_control_status(9)
  • struct pse_controller_ops(9)
  • struct pse_pi_pairset(9)
  • struct pse_pi(9)
  • struct pse_ntf(9)
  • enum pse_budget_eval_strategies(9)

Source/version: ./include/linux/pse-pd Β· date: October 2026 Β· page: struct pse_controller_dev(9) β€” that's the whole tea β˜•, now go be the main character of your kernel docs πŸ’œβœ¨

πŸ“¦ where this page comes from