LIBETH_XDP_DEFINE_RUN_PROG(9)
π LIBETH_XDP_DEFINE_RUN_PROG π
okay so bestie, this is a page from the Kernel API Manual (libeth_xdp_define_run_prog(9), section 9, iykyk) and it's literally just one macro that builds a whole function for you, so let's get into it β¨
π NAME π
LIBETH_XDP_DEFINE_RUN_PROG β define a driver XDP program run function π¦
Like, it makes the function. You don't write the function. The macro writes the function. main character energy, honestly π
πΈ SYNOPSIS πΈ
LIBETH_XDP_DEFINE_RUN_PROG (name , flush );
that's it. that's the whole call. two things in, one function out π
β¨ ARGUMENTS β¨
nameβ the name of the function you want to define π·οΈ like, whatever you call it is what it's gonna be called, no capflushβ the driver callback that flushes an`XDP_TX`bulk πΏπ«§ (yes, it's a bulk, and yes, someone's gotta flush it)
π«Ά SEE ALSO π«Ά
okay this is the part where the page just dumps the entire friend group and honestly? iconic. no gatekeeping here, the whole ./include/net/libeth/xdp.h fam shows up π
- Kernel file
./include/net/libeth/xdp.h struct libeth_xdp_buff(9)__LIBETH_XDP_ONSTACK_BUFF(9)LIBETH_XDP_ONSTACK_BUFF(9)libeth_xdpsq_num(9)libeth_xdpsq_shared(9)libeth_xdpsq_id(9)libeth_xdpsq_get(9)libeth_xdpsq_put(9)libeth_xdpsq_lock(9)libeth_xdpsq_unlock(9)libeth_xdpsq_deinit_timer(9)libeth_xdpsq_queue_timer(9)libeth_xdpsq_run_timer(9)enum (anonymous)(9)enum (anonymous)(9)struct libeth_xdp_tx_frame(9)struct libeth_xdp_tx_bulk(9)LIBETH_XDP_ONSTACK_BULK(9)struct libeth_xdpsq(9)struct libeth_xdp_tx_desc(9)libeth_xdp_ptr_to_priv(9)libeth_xdp_priv_to_ptr(9)libeth_xdp_tx_xmit_bulk(9)libeth_xdp_tx_queue_head(9)libeth_xdp_tx_queue_frag(9)libeth_xdp_tx_queue_bulk(9)libeth_xdp_tx_fill_stats(9)libeth_xdp_tx_fill_buf(9)__libeth_xdp_tx_flush_bulk(9)libeth_xdp_tx_flush_bulk(9)libeth_xdp_xmit_init_bulk(9)libeth_xdp_xmit_frame_dma(9)libeth_xdp_xmit_queue_head(9)libeth_xdp_xmit_queue_frag(9)libeth_xdp_xmit_queue_bulk(9)libeth_xdp_xmit_fill_buf(9)libeth_xdp_xmit_flush_bulk(9)__libeth_xdp_xmit_do_bulk(9)libeth_xdp_xmit_do_bulk(9)libeth_xdp_tx_init_bulk(9)libeth_xdp_init_buff(9)libeth_xdp_save_buff(9)libeth_xdp_return_stash(9)libeth_xdp_return_buff(9)libeth_xdp_prepare_buff(9)libeth_xdp_process_buff(9)libeth_xdp_buff_stats_frags(9)__libeth_xdp_run_prog(9)__libeth_xdp_run_flush(9)libeth_xdp_run_prog(9)__libeth_xdp_run_pass(9)libeth_xdp_run_pass(9)libeth_xdp_finalize_rx(9)LIBETH_XDP_DEFINE_TIMER(9)LIBETH_XDP_DEFINE_FLUSH_TX(9)LIBETH_XDP_DEFINE_FLUSH_XMIT(9)LIBETH_XDP_DEFINE_RUN_PASS(9)LIBETH_XDP_DEFINE_RUN(9)LIBETH_XDP_DEFINE_FINALIZE(9)libeth_xdp_buff_to_rq(9)libeth_xdpmo_rx_hash(9)__libeth_xdp_complete_tx(9)libeth_xdp_set_features(9)libeth_xdp_set_features_noredir(9)
also bestie, notice enum (anonymous)(9) shows up twice β that's not a typo on my end, that's literally what the page says, so I'm keeping it fr fr π
and that's the whole page! before you go β the source file lives at ./include/net/libeth and this edition is dated October 2026 ποΈβ¨ so yeah, go define that run function, you're gonna slay it πππ¦
π¦ 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