diff options
Diffstat (limited to 'src/uxcompat.h')
| -rw-r--r-- | src/uxcompat.h | 104 | 
1 files changed, 104 insertions, 0 deletions
diff --git a/src/uxcompat.h b/src/uxcompat.h new file mode 100644 index 0000000..e735c50 --- /dev/null +++ b/src/uxcompat.h @@ -0,0 +1,104 @@ +#ifndef _LIBHX_UXCOMPAT_H +#define _LIBHX_UXCOMPAT_H 1 + +#if defined(__cplusplus) && __cplusplus >= 201100UL +#	include <cstddef> +#	include <cstdint> +#else +#	include <stddef.h> +#	include <stdint.h> +#endif +#include <sys/stat.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef ENOSYS +#	define ENOSYS 38 /* Function not implemented */ +#endif + +#ifndef S_IFLNK +#	define S_IFLNK  0xA000 +#endif +#ifndef S_IFSOCK +#	define S_IFSOCK 0xC000 +#endif +#ifndef S_IFBLK +#	define S_IFBLK 0x6000 +#endif +#ifndef S_IFCHR +#	define S_IFCHR 0x2000 +#endif +#ifndef S_IFIFO +#	define S_IFIFO 0x1000 +#endif +#ifndef S_ISBLK +#	define S_ISBLK(__mode) (((__mode) & S_IFMT) == S_IFBLK) +#endif +#ifndef S_ISCHR +#	define S_ISCHR(__mode) (((__mode) & S_IFMT) == S_IFCHR) +#endif +#ifndef S_ISDIR +#	define S_ISDIR(__mode) (((__mode) & S_IFMT) == S_IFDIR) +#endif +#ifndef S_ISREG +#	define S_ISREG(__mode) (((__mode) & S_IFMT) == S_IFREG) +#endif +#ifndef S_ISLNK +#	define S_ISLNK(__mode) (((__mode) & S_IFMT) == S_IFLNK) +#endif +#ifndef S_ISFIFO +#	define S_ISFIFO(__mode) (((__mode) & S_IFMT) == S_IFIFO) +#endif +#ifndef S_ISSOCK +#	define S_ISSOCK(__mode) (((__mode) & S_IFMT) == S_IFSOCK) +#endif +#ifndef S_IRGRP +#	define S_IRGRP 00040 +#endif +#ifndef S_IWGRP +#	define S_IWGRP 00020 +#endif +#ifndef S_IROTH +#	define S_IROTH 00004 +#endif +#ifndef S_IWOTH +#	define S_IWOTH 00002 +#endif + +struct stat; + +/* + *	UX-FILE.C + */ +extern int chown(const char *, long, long); +extern int fchmod(int, long); +extern int fchown(int, long, long); +extern int lchown(const char *, long, long); +extern int lstat(const char *, struct stat *); +extern int mkfifo(const char *, long); +extern int mknod(const char *, long, long); +extern int readlink(const char *, char *, size_t); +extern int symlink(const char *, const char *); + +/* + *	UX-MMAP.C + */ +#ifdef _WIN32 +#	define MAP_FAILED  reinterpret_cast(void *, static_cast(intptr_t, -1)) +#	define PROT_NONE   0x0 +#	define PROT_READ   0x1 +#	define PROT_WRITE  0x2 +#	define PROT_EXEC   0x4 +#	define MAP_SHARED  0x1 +#	define MAP_PRIVATE 0x2 +extern void *mmap(void *, size_t, int, int, int, off_t); +extern int munmap(void *, size_t); +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _LIBHX_UXCOMPAT_H */  | 
