1*f6dc9357SAndroid Build Coastguard Worker // MyLinux.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_COMMON_MY_LINUX_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_COMMON_MY_LINUX_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker // #include "../../C/7zTypes.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_UNKNOWN 0 9*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_FIFO 1 10*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_CHR 2 11*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_DIR 4 12*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_BLK 6 13*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_REG 8 14*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_LNK 10 15*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_SOCK 12 16*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_DT_WHT 14 17*f6dc9357SAndroid Build Coastguard Worker 18*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFMT 00170000 19*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFSOCK 0140000 20*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFLNK 0120000 21*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFREG 0100000 22*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFBLK 0060000 23*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFDIR 0040000 24*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFCHR 0020000 25*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IFIFO 0010000 26*f6dc9357SAndroid Build Coastguard Worker 27*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISLNK(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFLNK) 28*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISREG(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFREG) 29*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISDIR(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFDIR) 30*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISCHR(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFCHR) 31*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISBLK(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFBLK) 32*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISFIFO(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFIFO) 33*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISSOCK(m) (((m) & MY_LIN_S_IFMT) == MY_LIN_S_IFSOCK) 34*f6dc9357SAndroid Build Coastguard Worker 35*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISUID 0004000 36*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISGID 0002000 37*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_ISVTX 0001000 38*f6dc9357SAndroid Build Coastguard Worker 39*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IRWXU 00700 40*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IRUSR 00400 41*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IWUSR 00200 42*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IXUSR 00100 43*f6dc9357SAndroid Build Coastguard Worker 44*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IRWXG 00070 45*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IRGRP 00040 46*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IWGRP 00020 47*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IXGRP 00010 48*f6dc9357SAndroid Build Coastguard Worker 49*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IRWXO 00007 50*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IROTH 00004 51*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IWOTH 00002 52*f6dc9357SAndroid Build Coastguard Worker #define MY_LIN_S_IXOTH 00001 53*f6dc9357SAndroid Build Coastguard Worker 54*f6dc9357SAndroid Build Coastguard Worker /* 55*f6dc9357SAndroid Build Coastguard Worker // major/minor encoding for makedev(): MMMMMmmmmmmMMMmm: 56*f6dc9357SAndroid Build Coastguard Worker 57*f6dc9357SAndroid Build Coastguard Worker inline UInt32 MY_dev_major(UInt64 dev) 58*f6dc9357SAndroid Build Coastguard Worker { 59*f6dc9357SAndroid Build Coastguard Worker return ((UInt32)(dev >> 8) & (UInt32)0xfff) | ((UInt32)(dev >> 32) & ~(UInt32)0xfff); 60*f6dc9357SAndroid Build Coastguard Worker } 61*f6dc9357SAndroid Build Coastguard Worker 62*f6dc9357SAndroid Build Coastguard Worker inline UInt32 MY_dev_minor(UInt64 dev) 63*f6dc9357SAndroid Build Coastguard Worker { 64*f6dc9357SAndroid Build Coastguard Worker return ((UInt32)(dev) & 0xff) | ((UInt32)(dev >> 12) & ~0xff); 65*f6dc9357SAndroid Build Coastguard Worker } 66*f6dc9357SAndroid Build Coastguard Worker 67*f6dc9357SAndroid Build Coastguard Worker inline UInt64 MY_dev_makedev(UInt32 __major, UInt32 __minor) 68*f6dc9357SAndroid Build Coastguard Worker { 69*f6dc9357SAndroid Build Coastguard Worker return (__minor & 0xff) | ((__major & 0xfff) << 8) 70*f6dc9357SAndroid Build Coastguard Worker | ((UInt64) (__minor & ~0xff) << 12) 71*f6dc9357SAndroid Build Coastguard Worker | ((UInt64) (__major & ~0xfff) << 32); 72*f6dc9357SAndroid Build Coastguard Worker } 73*f6dc9357SAndroid Build Coastguard Worker */ 74*f6dc9357SAndroid Build Coastguard Worker 75*f6dc9357SAndroid Build Coastguard Worker #endif 76