STRUCT PPE_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

struct ppe_device β€” literally the private data for a PPE device, bestie. (This page lives in the Kernel API Manual, iykyk πŸ’…)


✨ SYNOPSIS ✨

struct ppe_device {
    struct device *dev;
    struct regmap *regmap;
    unsigned long clk_rate;
    unsigned int num_ports;
    struct dentry *debugfs_root;
    unsigned int num_icc_paths;
    struct icc_bulk_data icc_paths[];
};

🌸 Members 🌸

okay so here's the whole cast, no cap, every single one of them:

  • dev β€” the PPE device structure. the main character, honestly 🫢
  • regmap β€” the PPE register map. it's giving "where all the bits live" ✨
  • clk_rate β€” the PPE clock rate. tick tock, queen πŸ’…
  • num_ports β€” how many PPE ports there are. gotta count 'em πŸ“
  • debugfs_root β€” the debugfs root entry. lowkey iconic for poking around πŸ™ˆ
  • num_icc_paths β€” the number of interconnect paths. yes, we're counting these too πŸ¦‹
  • icc_paths β€” the interconnect path array. that [] at the end? flexible array member, she's that girl 🌈

πŸ‘‘ Description πŸ‘‘

So <purple>PPE device</purple> is the instance of PPE hardware, and the way it works is it's used to configure PPE packet process modules β€” like BM (buffer management), QM (queue management), and the scheduler. That's the whole vibe. it's the actual hardware instance you're holding onto, and it's what you pass around when you need to go configure stuff. periodt πŸ’–


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/net/ethernet/qualcomm/ppe/ppe.h β€” go read it, bestie, it's right there 🧚

fr fr, every member above is a real field, don't go renaming any of them 😭 the header file is the source of truth.

okay that's the whole page, bestie!! this came out of ./drivers/net/ethernet/qualcom... and it's dated October 2026 β€” so like, keep it in your notes, mwah πŸ’‹πŸ’œ

struct ppe_device(9) β€” slay, you're done. πŸ‘‘βœ¨

πŸ“¦ where this page comes from