Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4973 | right-hear | 1 | /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
2 | /* |
||
3 | * Header for internal stat()/fstat() assist functions. |
||
4 | * |
||
5 | */ |
||
6 | |||
7 | #ifndef __XSTAT_H |
||
8 | #define __XSTAT_H |
||
9 | |||
10 | #include |
||
11 | #include |
||
12 | #include |
||
13 | #include |
||
14 | |||
15 | /* Some errno.h headers do not define EFAULT. Here the value is |
||
16 | taken from POSIX IEEE 1003.1. */ |
||
17 | #include |
||
18 | #ifndef EFAULT |
||
19 | #define EFAULT 14 |
||
20 | #endif |
||
21 | |||
22 | /* Under MS-DOS, file access permissions are shared by all, except for |
||
23 | Write permission. */ |
||
24 | #define READ_ACCESS (S_IRUSR | S_IRGRP | S_IROTH) |
||
25 | #define WRITE_ACCESS S_IWUSR |
||
26 | #define EXEC_ACCESS (S_IXUSR | S_IXGRP | S_IXOTH) |
||
27 | |||
28 | /* Macro to convert a segment and an offset to a "far offset" suitable |
||
29 | for _farxxx() functions of DJGPP. */ |
||
30 | #ifndef MK_FOFF |
||
31 | #define MK_FOFF(s,o) ((int)((((unsigned long)(s)) << 4) + (unsigned short)(o))) |
||
32 | #endif |
||
33 | |||
34 | /* Ralph Brown's Interrupt List says this should be the length |
||
35 | of the buffer for INT 21H AX=6000H. */ |
||
36 | #define MAX_TRUE_NAME 128 |
||
37 | |||
38 | extern unsigned short _osmajor, _osminor; |
||
39 | extern const char * _os_flavor; |
||
40 | |||
41 | /* Bits to flag f?stat() failed to use individual undocumented features. */ |
||
42 | #define _STFAIL_SDA 1 /* Get SDA call failed */ |
||
43 | #define _STFAIL_OSVER 2 /* Unsupported DOS version */ |
||
44 | #define _STFAIL_BADSDA 4 /* Bad pointer to SDA */ |
||
45 | #define _STFAIL_TRUENAME 8 /* _truename() failed */ |
||
46 | #define _STFAIL_HASH 0x10 /* inode defaults to hashing */ |
||
47 | #define _STFAIL_LABEL 0x20 /* Root dir, but no volume label */ |
||
48 | #define _STFAIL_DCOUNT 0x40 /* dirent_count ridiculously large */ |
||
49 | #define _STFAIL_WRITEBIT 0x80 /* fstat() failed to get write access bit */ |
||
50 | #define _STFAIL_DEVNO 0x100 /* fstat() failed to get device number */ |
||
51 | #define _STFAIL_BADSFT 0x200 /* SFT entry found, but can't be trusted */ |
||
52 | #define _STFAIL_SFTIDX 0x400 /* bad SFT index in JFT */ |
||
53 | #define _STFAIL_SFTNF 0x800 /* file entry not found in SFT array */ |
||
54 | |||
55 | extern unsigned short _djstat_fail_bits; |
||
56 | |||
57 | extern unsigned short _djstat_flags; |
||
58 | |||
59 | extern time_t _file_time_stamp(unsigned int); |
||
60 | extern ino_t _invent_inode(const char *, unsigned, unsigned long); |
||
61 | extern unsigned short _get_magic(const char *, int); |
||
62 | extern unsigned short _get_dos_version(int); |
||
63 | extern char * _truename(const char *, char *); |
||
64 | extern int _is_remote_drive(int); |
||
65 | extern int _is_executable(const char *, int, const char *); |
||
66 | extern short _get_dev_info(int); |
||
67 | extern long __filelength(int); |
||
68 | extern int _is_remote_handle(int); |
||
69 | extern void _djstat_describe_lossage(FILE *); |
||
70 | extern int _getftime(int, unsigned int *); |
||
71 | |||
72 | #endif /* __XSTAT_H */><> |