nfp_cpp_area_write(9)
π nfp_cpp_area_write(9) β from the Kernel API Manual, bestie π
okay so picture this: you've got a CPP area and you need to shove some data into it. that's it. that's the function. welcome to nfp_cpp_area_write, pulled straight out of the Kernel API Manual and delivered to you with love π
β¨ SYNOPSIS β¨
int nfp_cpp_area_write (struct nfp_cpp_area *area , unsigned long offset
, const void *kernel_vaddr , size_t length );
like, yes, the line break is weird, no, we're not fixing it, it's iconic π
πΈ ARGUMENTS πΈ
areaβ your CPP area handle π«Ά the main character of this whole operationoffsetβ how far into the CPP area you're going. yes it's an offset. yes you need it.kernel_vaddrβ the kernel address you're reading data from β (the data's home base, basically)lengthβ how many bytes you're writing. the byte count. the whole vibe check. π
π DESCRIPTION π
Write data to the indicated CPP region. that's the tea β you hand it a source, a destination offset, and a length, and it literally just writes the bytes fr fr.
β οΈ NOTE β οΈ
bestie please read this one, i'm begging π
offset and length must be 32-bit aligned values. not "roughly aligned", not "aligned-ish" β 32-bit aligned, periodt. π
And the area must have been locked down with an 'acquire' first. no acquire, no write. that's the rule. π
π₯ RETURN π₯
length of io, or -ERRNO π (so like, if it goes badly you get a negative errno and you get to go debug it, slay)
π SEE ALSO π
the source of truth, the kernel file itself:
./drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
and now, the extended family π (they're all in here, every single one, no cap):
struct nfp_cpp(9)nfp_cpp_free(9)nfp_cpp_model(9)nfp_cpp_interface(9)nfp_cpp_serial(9)nfp_cpp_area_alloc_with_name(9)nfp_cpp_area_alloc(9)nfp_cpp_area_alloc_acquire(9)nfp_cpp_area_free(9)nfp_cpp_area_acquire(9)nfp_cpp_area_acquire_nonblocking(9)nfp_cpp_area_release(9)nfp_cpp_area_release_free(9)nfp_cpp_area_read(9)nfp_cpp_area_size(9)nfp_cpp_area_name(9)nfp_cpp_area_priv(9)nfp_cpp_area_cpp(9)nfp_cpp_area_resource(9)nfp_cpp_area_phys(9)nfp_cpp_area_iomem(9)nfp_cpp_area_readl(9)nfp_cpp_area_writel(9)nfp_cpp_area_readq(9)nfp_cpp_area_writeq(9)nfp_cpp_area_fill(9)nfp_cpp_area_cache_add(9)nfp_cpp_read(9)nfp_cpp_write(9)nfp_xpb_readl(9)nfp_xpb_writel(9)nfp_xpb_writelm(9)nfp_cpp_from_operations(9)nfp_cpp_priv(9)nfp_cpp_device(9)nfp_cpp_explicit_acquire(9)nfp_cpp_explicit_set_target(9)nfp_cpp_explicit_set_data(9)nfp_cpp_explicit_set_signal(9)nfp_cpp_explicit_set_posted(9)nfp_cpp_explicit_put(9)nfp_cpp_explicit_do(9)nfp_cpp_explicit_get(9)nfp_cpp_explicit_release(9)nfp_cpp_explicit_cpp(9)nfp_cpp_explicit_priv(9)
and that's the whole page, bestie π¦
<cute sign-off>this lil masterpiece comes to you from the source ./drivers/net/ethernet/netrono... and it's dated October 2026 β yes, the future. we're ahead of schedule. periodt π
β¨</cute sign-off>
π¦ 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