From 4e29b71d33a759a40f13abee9f2a80b98a8efe3b Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 1 May 2021 21:45:13 +0100 Subject: [PATCH] Add support for NeXTStep, OpenStep and Apple Rhapsody. --- setter/src/unix/os.c | 9 +++++++++ setter/src/unix/perms.h | 4 ++++ setter/src/unix/time.c | 8 ++++++++ setter/src/unix/volume.c | 22 +++++++++++++++++++++- 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/setter/src/unix/os.c b/setter/src/unix/os.c index 4e2e3b8..e8494e6 100644 --- a/setter/src/unix/os.c +++ b/setter/src/unix/os.c @@ -25,6 +25,15 @@ Copyright (C) 2011-2021 Natalia Portillo #if defined(__APPLE__) && defined(__MACH__) #include "darwin/darwin.h" #else + +#if defined(__NeXT__) +#if NS_TARGET < 42 && !defined(_POSIX_SOURCE) +#error Need to be compiled with -posix argument +#elif NS_TARGET >= 42 && defined(_POSIX_SOURCE) +#error Need to be compiled without -posix argument +#endif +#endif + #include #include diff --git a/setter/src/unix/perms.h b/setter/src/unix/perms.h index b71a289..5ce032b 100644 --- a/setter/src/unix/perms.h +++ b/setter/src/unix/perms.h @@ -25,6 +25,10 @@ Copyright (C) 2011-2021 Natalia Portillo #ifndef AARU_FSTESTER_SETTER_SRC_UNIX_PERMS_H_ #define AARU_FSTESTER_SETTER_SRC_UNIX_PERMS_H_ +#if defined(__NeXT__) && NS_TARGET <= 32 +typedef int mode_t; +#endif + typedef struct { char filename[256]; diff --git a/setter/src/unix/time.c b/setter/src/unix/time.c index ad38b73..5030baa 100644 --- a/setter/src/unix/time.c +++ b/setter/src/unix/time.c @@ -22,6 +22,14 @@ Aaru Data Preservation Suite Copyright (C) 2011-2021 Natalia Portillo *****************************************************************************/ +#if defined(__NeXT__) +#if NS_TARGET < 42 && !defined(_POSIX_SOURCE) +#error Need to be compiled with -posix argument +#elif NS_TARGET >= 42 && defined(_POSIX_SOURCE) +#error Need to be compiled without -posix argument +#endif +#endif + #include #include #include diff --git a/setter/src/unix/volume.c b/setter/src/unix/volume.c index f24b83d..e4ad700 100644 --- a/setter/src/unix/volume.c +++ b/setter/src/unix/volume.c @@ -26,6 +26,26 @@ Copyright (C) 2011-2021 Natalia Portillo #include #include +#ifdef __NeXT__ + +#if NS_TARGET < 42 && !defined(_POSIX_SOURCE) +#error Need to be compiled with -posix argument +#elif NS_TARGET >= 42 && defined(_POSIX_SOURCE) +#error Need to be compiled without -posix argument +#endif + +#define HAVE_STATFS_FTYPE + +#if NS_TARGET >= 42 // Rhapsody DR1 +#define NEED_SYS_TYPES_H +#define HAVE_SYS_MOUNT_H +#define USE_STATFS_FTYPENAME +#else +#include +#endif // Rhapsody DR1 + +#endif // __NeXT__ + #ifdef HAVE_SYS_STATFS_H #include #endif @@ -190,7 +210,7 @@ void GetVolumeInfo(const char* path, size_t* clusterSize) log_write("\tFlags: 0x%08lX\n", buf.f_flag); #endif } -#else +#elif !defined(__NeXT__) || (defined(NS_TARGET) && NS_TARGET >= 42) if(buf.f_flags) { #if defined(__linux__) || defined(__LINUX__) || defined(__gnu_linux)