From 370b0c014d03ab820a04a0a7faea1d54620b081d Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sat, 1 Feb 2025 16:48:38 -0500 Subject: [PATCH] FAT: Better isolation from host headers for the fat_shell. Fixes the build on FreeBSD. --- .../kernel/file_systems/fat/bsd/kern/subr_clock.c | 1 + src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_cache.c | 3 ++- src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_hash.c | 1 + src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_subr.c | 1 + src/add-ons/kernel/file_systems/fat/bsd/sys/iconv.h | 2 ++ src/add-ons/kernel/file_systems/fat/bsd/sys/param.h | 9 ++++----- src/add-ons/kernel/file_systems/fat/debug.cpp | 7 ++----- src/add-ons/kernel/file_systems/fat/debug.h | 1 + src/add-ons/kernel/file_systems/fat/encodings.cpp | 6 ++---- src/add-ons/kernel/file_systems/fat/encodings.h | 1 + src/add-ons/kernel/file_systems/fat/fssh_defines.h | 2 +- src/add-ons/kernel/file_systems/fat/kernel_interface.cpp | 1 + src/add-ons/kernel/file_systems/fat/mkdos.h | 1 + src/add-ons/kernel/file_systems/fat/support.cpp | 4 +--- src/add-ons/kernel/file_systems/fat/support.h | 4 ++-- src/add-ons/kernel/file_systems/fat/vcache.cpp | 7 +++---- src/add-ons/kernel/file_systems/fat/vcache.h | 2 ++ 17 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/add-ons/kernel/file_systems/fat/bsd/kern/subr_clock.c b/src/add-ons/kernel/file_systems/fat/bsd/kern/subr_clock.c index b2d4161767..033c3cba72 100644 --- a/src/add-ons/kernel/file_systems/fat/bsd/kern/subr_clock.c +++ b/src/add-ons/kernel/file_systems/fat/bsd/kern/subr_clock.c @@ -38,6 +38,7 @@ // Modified to support the Haiku FAT driver. #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include diff --git a/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_cache.c b/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_cache.c index b490992ef6..c7d65becb0 100644 --- a/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_cache.c +++ b/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_cache.c @@ -36,10 +36,11 @@ // Modified to support the Haiku FAT driver. #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include -#endif // FS_SHELL +#endif #include "sys/param.h" #include "sys/systm.h" diff --git a/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_hash.c b/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_hash.c index a95964025d..27ed9cb086 100644 --- a/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_hash.c +++ b/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_hash.c @@ -30,6 +30,7 @@ // Modified to support the Haiku FAT driver. #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include diff --git a/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_subr.c b/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_subr.c index 08a4cd36ae..0d5458e486 100644 --- a/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_subr.c +++ b/src/add-ons/kernel/file_systems/fat/bsd/kern/vfs_subr.c @@ -38,6 +38,7 @@ // Modified to support the Haiku FAT driver. #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include diff --git a/src/add-ons/kernel/file_systems/fat/bsd/sys/iconv.h b/src/add-ons/kernel/file_systems/fat/bsd/sys/iconv.h index ccb5d6890f..11d88e3577 100644 --- a/src/add-ons/kernel/file_systems/fat/bsd/sys/iconv.h +++ b/src/add-ons/kernel/file_systems/fat/bsd/sys/iconv.h @@ -37,6 +37,8 @@ #include #include +#else +#include #endif diff --git a/src/add-ons/kernel/file_systems/fat/bsd/sys/param.h b/src/add-ons/kernel/file_systems/fat/bsd/sys/param.h index 50a3553408..caadea751e 100644 --- a/src/add-ons/kernel/file_systems/fat/bsd/sys/param.h +++ b/src/add-ons/kernel/file_systems/fat/bsd/sys/param.h @@ -39,12 +39,11 @@ // Modified to support the Haiku FAT driver. -#include - #ifndef FS_SHELL -#include -#include_next -#endif // !FS_SHELL +# include +# include +# include_next +#endif #include "sys/types.h" diff --git a/src/add-ons/kernel/file_systems/fat/debug.cpp b/src/add-ons/kernel/file_systems/fat/debug.cpp index 092d14b6b9..a425bd15fe 100644 --- a/src/add-ons/kernel/file_systems/fat/debug.cpp +++ b/src/add-ons/kernel/file_systems/fat/debug.cpp @@ -7,16 +7,13 @@ #include "debug.h" +#ifndef FS_SHELL #include - -#ifdef FS_SHELL -#include "fssh_api_wrapper.h" #endif #define _KERNEL -extern "C" -{ +extern "C" { #include "sys/param.h" #include "sys/buf.h" #include "sys/conf.h" diff --git a/src/add-ons/kernel/file_systems/fat/debug.h b/src/add-ons/kernel/file_systems/fat/debug.h index bfa417be0d..8b9bfa74dd 100644 --- a/src/add-ons/kernel/file_systems/fat/debug.h +++ b/src/add-ons/kernel/file_systems/fat/debug.h @@ -8,6 +8,7 @@ #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include diff --git a/src/add-ons/kernel/file_systems/fat/encodings.cpp b/src/add-ons/kernel/file_systems/fat/encodings.cpp index b28c532068..b15c206166 100644 --- a/src/add-ons/kernel/file_systems/fat/encodings.cpp +++ b/src/add-ons/kernel/file_systems/fat/encodings.cpp @@ -5,20 +5,18 @@ #include "encodings.h" +#include "support.h" #include #ifndef FS_SHELL #include -#endif // !FS_SHELL #include #include - -#include "support.h" +#endif // !FS_SHELL #define TOUCH(x) ((void)(x)) #ifdef USER - #include #define dprintf printf #undef DEBUG int _assert_(char *,int,char *) {return 0;} diff --git a/src/add-ons/kernel/file_systems/fat/encodings.h b/src/add-ons/kernel/file_systems/fat/encodings.h index 3cf156c04a..cd2c75c3d9 100644 --- a/src/add-ons/kernel/file_systems/fat/encodings.h +++ b/src/add-ons/kernel/file_systems/fat/encodings.h @@ -11,6 +11,7 @@ #else // FS_SHELL typedef unsigned char uchar; +#include "sys/types.h" #include "fssh_api_wrapper.h" #endif // FS_SHELL diff --git a/src/add-ons/kernel/file_systems/fat/fssh_defines.h b/src/add-ons/kernel/file_systems/fat/fssh_defines.h index 5d1a5c6657..a6faf808ec 100644 --- a/src/add-ons/kernel/file_systems/fat/fssh_defines.h +++ b/src/add-ons/kernel/file_systems/fat/fssh_defines.h @@ -12,7 +12,7 @@ #ifndef LONGLONG_MAX -#define LONGLONG_MAX LONG_LONG_MAX +#define LONGLONG_MAX LLONG_MAX #endif #ifdef B_USE_POSITIVE_POSIX_ERRORS diff --git a/src/add-ons/kernel/file_systems/fat/kernel_interface.cpp b/src/add-ons/kernel/file_systems/fat/kernel_interface.cpp index bd8c918b17..14cded4bbd 100644 --- a/src/add-ons/kernel/file_systems/fat/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/fat/kernel_interface.cpp @@ -56,6 +56,7 @@ #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else // !FS_SHELL #include diff --git a/src/add-ons/kernel/file_systems/fat/mkdos.h b/src/add-ons/kernel/file_systems/fat/mkdos.h index 03d18ec72e..670aaa830f 100644 --- a/src/add-ons/kernel/file_systems/fat/mkdos.h +++ b/src/add-ons/kernel/file_systems/fat/mkdos.h @@ -32,6 +32,7 @@ Copyright 2024, Haiku, Inc. All rights reserved. #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include diff --git a/src/add-ons/kernel/file_systems/fat/support.cpp b/src/add-ons/kernel/file_systems/fat/support.cpp index fd7902d6ec..f8aa33db41 100644 --- a/src/add-ons/kernel/file_systems/fat/support.cpp +++ b/src/add-ons/kernel/file_systems/fat/support.cpp @@ -57,9 +57,7 @@ #include "support.h" -#ifdef FS_SHELL -#include "fssh_api_wrapper.h" -#else // !FS_SHELL +#ifndef FS_SHELL #include #include diff --git a/src/add-ons/kernel/file_systems/fat/support.h b/src/add-ons/kernel/file_systems/fat/support.h index 23abfffb07..f36cf63d31 100644 --- a/src/add-ons/kernel/file_systems/fat/support.h +++ b/src/add-ons/kernel/file_systems/fat/support.h @@ -60,14 +60,14 @@ // Support functions for C++ driver code. #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else #include #endif // FS_SHELL #define _KERNEL -extern "C" -{ +extern "C" { #include "sys/param.h" #include "sys/buf.h" #include "sys/conf.h" diff --git a/src/add-ons/kernel/file_systems/fat/vcache.cpp b/src/add-ons/kernel/file_systems/fat/vcache.cpp index 95d1042b54..d3107017fb 100644 --- a/src/add-ons/kernel/file_systems/fat/vcache.cpp +++ b/src/add-ons/kernel/file_systems/fat/vcache.cpp @@ -43,22 +43,21 @@ without calling get_vnode(). */ -#include "vcache.h" - #ifdef FS_SHELL +#include "sys/types.h" #include "fssh_api_wrapper.h" #else // !FS_SHELL #include #include #include #include -#endif // !FS_SHELL -#ifndef FS_SHELL #include #include #endif // !FS_SHELL +#include "vcache.h" + #define _KERNEL #include "sys/vnode.h" diff --git a/src/add-ons/kernel/file_systems/fat/vcache.h b/src/add-ons/kernel/file_systems/fat/vcache.h index a2c2e8adce..367fec796d 100644 --- a/src/add-ons/kernel/file_systems/fat/vcache.h +++ b/src/add-ons/kernel/file_systems/fat/vcache.h @@ -7,7 +7,9 @@ #define _DOSFS_VCACHE_H_ +#ifndef FS_SHELL #include +#endif #include "dosfs.h"