nfp_cpp_read(9)
π nfp_cpp_read(9) β the Kernel API Manual bestie era π
okay so this is nfp_cpp_read, literally one of the little kernel-API girlies living in the Kernel API Manual (that's the manual name btw, keeping it cute and official β¨). she reads stuff from a CPP target. that's it. that's the vibe. and she slays at it π
πΈ NAME πΈ
nfp_cpp_read β read from CPP target
like, you give her a target, you give her a buffer, she fills the buffer. main character behavior tbh π«Ά
β¨ SYNOPSIS β¨
int nfp_cpp_read (struct nfp_cpp *cpp , u32 destination , unsigned long
long address , void *kernel_vaddr , size_t length );
no cap, that's the whole signature, line break and all β copy it exactly, don't be weird about it π
π ARGUMENTS π
cppβ the CPP handle. your lil entry ticket to the whole thing, you literally cannot start without her πdestinationβ the CPP id. like which target we're talking to, iykyk β¨addressβ offset into the CPP target. your lil "where in the target" coordinate π¦kernel_vaddrβ a kernel buffer for the result. this is where the good stuff lands, so make sure it's actually a kernel vaddr bestie πlengthβ number of bytes to read. how much you're grabbing, periodt π
π₯ RETURN π₯
length of io, or -ERRNO
translation: you get back how much actually got io'd, or a negative errno if things went sideways. check it. always check it. ngl it's giving "trust but verify" π
π¦ SEE ALSO π¦
kernel file ./drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c β that's where the lore lives, go read it, it's iconic π
and the whole friend group, no one gets left out, every single one of these is tagged (9):
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_write(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_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)
okay that's like forty-five besties but we listed every single one because nobody gets cut from the group chat π€π
anyway bestie, go read your CPP target. respectfully. carefully. and don't forget to check the return value πβ¨
β xoxo, signed off from ./drivers/net/ethernet/netrono..., dated October 2026, manual page nfp_cpp_read(9), Kernel API Manual, no cap ππ«Άπ
π¦ 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