> 2. Going from size_t to unsigned int is ABI breakage. This is mitigated > on CPU architectures that share 32-bit/64-bit registers (i.e. rax/eax > on x86-64 and r0/x0/w0 on aarch64). There's no guarantee this works > on all architectures, especially when the calling convention passes > arguments on the stack. Good news, I realized that io_uring_prep_getxattr() and friends are static inline functions. ABI breakage doesn't come into play because they are compiled into the application. The const char * to char * API breakage issue still remains but there's a pretty good chance that real applications already pass in char *. Thanks, Stefan