xref: /aosp_15_r20/external/lzma/CPP/Common/MyLinux.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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