nx842_exec_icswx(9)
π nx842_exec_icswx β the Kernel API Manual moment (section 9, bestie)
okay so you found the nx842_exec_icswx(9) page and you're like "what is this even" β don't worry, I got you. This is the Kernel API Manual entry, section 9, and it's literally the compress/decompress data using the 842 algorithm girlie. Let's get into it β¨
π NAME π
nx842_exec_icswx β compress/decompress data using the 842 algorithm
fr fr that's the whole vibe: you give it data, it squishes it or unsquishes it.
β¨ SYNOPSIS β¨
int nx842_exec_icswx (const unsigned char *in , unsigned int inlen ,
unsigned char *out , unsigned int *outlenp , void *workmem , int fc );
look at her. six whole arguments. she's serving signature, she's serving types, she's serving const correctness πΈ
π¦ ARGUMENTS π¦
inβ input buffer pointer. the raw data you're feeding in, mwah πinlenβ input buffer size. how much data is actually inin, be honest.outβ output buffer pointer. where the glow-up happens β¨outlenpβ output buffer size pointer. it's a pointer to the size, not the size itself, iykyk π«Άworkmemβ working memory buffer pointer, and bestie the size is determined bynx842_powernv_driver.workmem_sizeβ don't just make one up πfcβ function code, see CCW Function Codes innx-842.hπ
π DESCRIPTION π
so the (de)compression here is provided by the NX842 coprocessor on IBM PowerNV systems π₯ This function compresses or decompresses the provided input buffer into the provided output buffer. that's it, that's the job. hardware does the heavy lifting, you just point at buffers.
Upon return from this function outlen contains the length of the output data π If there is an error then outlen will be 0 and an error will be specified by the return code from this function. so if you see a zero there, that's your villain origin story, check the return code.
The workmem buffer should only be used by one function call at a time π¨ like it is not a shareable snack. one call at a time, periodt.
π RETURN π
0β Success, output of lengthoutlenpstored in the buffer atoutπ slay-ENODEVβ Hardware unavailable π-ENOSPCβ Output buffer is to small π₯² (yes that's the original spelling, I don't make the rules)-EMSGSIZEβ Input buffer too large π-EINVALβ buffer constraints do not fixnx842_constraintsπ-EPROTOβ hardware error during operation π₯-ETIMEDOUTβ hardware did not complete operation in reasonable time β°-EINTRβ operation was aborted β
π SEE ALSO π
- Kernel file
./drivers/crypto/nx/nx-common-powernv.c nx842_exec_vas(9)nx842_powernv_compress(9)nx842_powernv_decompress(9)
go read those next, bestie, you're already this deep in the nx folder π§
aaaand that's the page π
big kiss to ./drivers/crypto/nx, the October 2026 crew, for shipping this one β nx842_exec_icswx(9), no cap, iconic. π
π¦ 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