/*************************************************************** CPU-CHOWN-LINUX.H This file contains Linux/i386/ILP32 conversion helpers for MCPU uid/gid values -> HOST uid_t/gid_t. PART OF : CPU - library . USAGE : Internal only . Copyright (C) 2026 by Andrew V.Kosteltsev. All Rights Reserved. ***************************************************************/ #ifndef __CPU_CHOWN_LINUX_H #define __CPU_CHOWN_LINUX_H #include #include #include #include static int __cpu_uid_to_host( __mpu_uint64_t uid, uid_t *host_uid ) { uid_t u; if( !host_uid ) return( __MCPU_EINVAL ); if( uid == __CPU_ID_NO_CHANGE ) { *host_uid = (uid_t)-1; return( 0 ); } u = (uid_t)uid; if( (__mpu_uint64_t)u != uid ) return( __MCPU_EOVERFLOW ); *host_uid = u; return( 0 ); } /* End of __cpu_uid_to_host() */ static int __cpu_gid_to_host( __mpu_uint64_t gid, gid_t *host_gid ) { gid_t g; if( !host_gid ) return( __MCPU_EINVAL ); if( gid == __CPU_ID_NO_CHANGE ) { *host_gid = (gid_t)-1; return( 0 ); } g = (gid_t)gid; if( (__mpu_uint64_t)g != gid ) return( __MCPU_EOVERFLOW ); *host_gid = g; return( 0 ); } /* End of __cpu_gid_to_host() */ #endif /* __CPU_CHOWN_LINUX_H */