Subversion Repositories Kolibri OS

Rev

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 */