/*************************************************************** CPU-MODE-LINUX.H This file contains Linux/i386/ILP32 conversion helper for MCPU permission bits -> HOST mode_t. PART OF : CPU - library . USAGE : Internal only . Copyright (C) 2026 by Andrew V.Kosteltsev. All Rights Reserved. ***************************************************************/ #ifndef __CPU_MODE_LINUX_H #define __CPU_MODE_LINUX_H #include #include #include #include static int __cpu_mode_to_host( __mpu_uint64_t mode, mode_t *host_mode ) { mode_t m = 0; if( !host_mode ) return( __MCPU_EINVAL ); if( mode & ~(__mpu_uint64_t)__CPU_S_SUPPORTED ) return( __MCPU_EINVAL ); if( mode & __CPU_S_ISUID ) m |= S_ISUID; if( mode & __CPU_S_ISGID ) m |= S_ISGID; #ifdef S_ISVTX if( mode & __CPU_S_ISVTX ) m |= S_ISVTX; #endif if( mode & __CPU_S_IRUSR ) m |= S_IRUSR; if( mode & __CPU_S_IWUSR ) m |= S_IWUSR; if( mode & __CPU_S_IXUSR ) m |= S_IXUSR; if( mode & __CPU_S_IRGRP ) m |= S_IRGRP; if( mode & __CPU_S_IWGRP ) m |= S_IWGRP; if( mode & __CPU_S_IXGRP ) m |= S_IXGRP; if( mode & __CPU_S_IROTH ) m |= S_IROTH; if( mode & __CPU_S_IWOTH ) m |= S_IWOTH; if( mode & __CPU_S_IXOTH ) m |= S_IXOTH; *host_mode = m; return( 0 ); } /* End of __cpu_mode_to_host() */ #endif /* __CPU_MODE_LINUX_H */