diff --git a/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp b/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp index 23f40dc6a5..2a01e84317 100644 --- a/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp +++ b/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp @@ -9,18 +9,21 @@ #include "iso9660.h" #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef FS_SHELL +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include +#endif #include "rock_ridge.h" @@ -98,8 +101,8 @@ unicode_to_utf8(const char *src, int32 *srcLen, char *dst, int32 *dstLen) for (srcCount = 0; srcCount < srcLimit; srcCount += 2) { uint16 *UNICODE = (uint16 *)&src[srcCount]; - uchar utf8[4]; - uchar *UTF8 = utf8; + uint8 utf8[4]; + uint8 *UTF8 = utf8; int32 utf8Len; int32 j; diff --git a/src/add-ons/kernel/file_systems/iso9660/iso9660.h b/src/add-ons/kernel/file_systems/iso9660/iso9660.h index 0a7a56e8ad..2791bf8640 100644 --- a/src/add-ons/kernel/file_systems/iso9660/iso9660.h +++ b/src/add-ons/kernel/file_systems/iso9660/iso9660.h @@ -8,15 +8,19 @@ #define ISO_9660_H -#include "lock.h" +#if FS_SHELL +# include "fssh_api_wrapper.h" +#else +# include +# include +# include +# include -#include -#include +# include +# include -#include -#include -#include -#include +# include +#endif // Size of primary volume descriptor for ISO9660 diff --git a/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.cpp b/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.cpp index 3af78f9065..61b18c14d9 100644 --- a/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.cpp +++ b/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2007, Axel Dörfler, axeld@pinc-software.de. + * Copyright 2007-2009, Axel Dörfler, axeld@pinc-software.de. * Copyright 2002, Tyler Dauwalder. * * This file may be used under the terms of the MIT License. @@ -33,27 +33,29 @@ - 0x003A == ':' - 0x003B == ';' - 0x003F == '?' - - 0x005C == '\' + - 0x005C == '\' */ #include "iso9660_identify.h" -#include -#include -#include -#include -#include +#ifndef FS_SHELL +# include +# include +# include +# include +# include -#include -#include -#include +# include +# include +# include +#endif #include "iso9660.h" //#define TRACE(x) ; #define TRACE(x) dprintf x -// misc constants + static const char *kISO9660Signature = "CD001"; static const uint32 kVolumeDescriptorLength = 2048; #define ISO9660_VOLUME_IDENTIFIER_LENGTH 32 @@ -72,18 +74,18 @@ typedef enum { descriptor types. */ typedef struct iso9660_common_descriptor { - uchar type; + uint8 type; char standard_identifier[5]; // should be 'CD001' - uchar version; + uint8 version; // Remaining bytes are unused } __attribute__((packed)) iso9660_common_volume_descriptor; typedef struct iso9660_volume_descriptor { iso9660_common_descriptor common; - uchar flags; + uint8 flags; char system_identifier[32]; char identifier[ISO9660_VOLUME_IDENTIFIER_LENGTH]; - uchar _reserved0[8]; + uint8 _reserved0[8]; uint32 size; uint32 size_big_endian; char escape_sequences[ISO9660_ESCAPE_SEQUENCE_LENGTH]; @@ -97,7 +99,7 @@ typedef struct iso9660_volume_descriptor { uint32 path_table_size; uint32 path_table_size_big_endian; uint32 _reserved1[4]; - uchar root_directory_record[34]; + uint8 root_directory_record[34]; char set_identifier[28]; // Remaining bytes are disinteresting to us } __attribute__((packed)) iso9660_volume_descriptor; @@ -108,7 +110,7 @@ typedef struct iso9660_directory_record { uint32 location; uint32 location_big_endian; uint32 data_length; - uchar _reserved[14]; + uint8 _reserved[14]; uint16 volume_space; } __attribute__((packed)) iso9660_directory_record; @@ -199,10 +201,10 @@ iso9660_info::_SetString(char **string, const char *newString, if (string == NULL) return; - TRACE(("iso9660_info::set_string(%p ('%s'), '%s', %ld)\n", string, - *string, newString, newLength)); + TRACE(("iso9660_info::set_string(%p ('%s'), '%s', %u)\n", string, + *string, newString, (unsigned)newLength)); - char *&oldString = *string; + char *&oldString = *string; free(oldString); if (newString) { @@ -213,7 +215,7 @@ iso9660_info::_SetString(char **string, const char *newString, } } else oldString = NULL; -} +} // #pragma mark - C functions @@ -293,16 +295,16 @@ dump_primary_descriptor(iso9660_volume_descriptor *primary, dump_common_descriptor(&primary->common, indent, false); TRACE(("%s identifier: '%.32s'\n", indent, primary->identifier)); - TRACE(("%s size: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(primary->size))); - TRACE(("%s set size: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(primary->set_size))); - TRACE(("%s sequence number: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(primary->sequence_number))); - TRACE(("%s logical block size: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(primary->logical_block_size))); - TRACE(("%s path table size: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(primary->path_table_size))); + TRACE(("%s size: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(primary->size))); + TRACE(("%s set size: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(primary->set_size))); + TRACE(("%s sequence number: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(primary->sequence_number))); + TRACE(("%s logical block size: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(primary->logical_block_size))); + TRACE(("%s path table size: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(primary->path_table_size))); TRACE(("%s set identifier: %.28s\n", indent, primary->set_identifier)); dump_directory_record((iso9660_directory_record*) @@ -333,10 +335,10 @@ dump_directory_record(iso9660_directory_record *record, const char *indent) { TRACE(("%s root directory record:\n", indent)); TRACE(("%s length: %d\n", indent, record->length)); - TRACE(("%s location: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(record->location))); - TRACE(("%s data length: %ld\n", indent, - B_LENDIAN_TO_HOST_INT32(record->data_length))); + TRACE(("%s location: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(record->location))); + TRACE(("%s data length: %d\n", indent, + (int)B_LENDIAN_TO_HOST_INT32(record->data_length))); TRACE(("%s volume space: %d\n", indent, B_LENDIAN_TO_HOST_INT16(record->volume_space))); } @@ -360,7 +362,7 @@ check_common_descriptor(iso9660_common_descriptor *common) /*! \brief Returns true if the given partition is a valid iso9660 partition. See fs_identify_hook() for more information. - + \todo Fill in partitionInfo->mounted_at with something useful. */ status_t @@ -480,7 +482,7 @@ iso9660_fs_identify(int deviceFD, iso9660_info *info) name, info->joliet_name)); } - info->SetJolietName(name, pos - name); + info->SetJolietName(name, pos - name); } break; } @@ -495,7 +497,7 @@ iso9660_fs_identify(int deviceFD, iso9660_info *info) default: break; } - } + } return found ? B_OK : error; } diff --git a/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.h b/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.h index 733b6f8c7b..83e5c41eb7 100644 --- a/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.h +++ b/src/add-ons/kernel/file_systems/iso9660/iso9660_identify.h @@ -1,4 +1,4 @@ -/* +/* * Copyright 2007, Axel Dörfler, axeld@pinc-software.de. * Copyright 2002, Tyler Dauwalder. * @@ -8,7 +8,11 @@ #define ISO9660_IDENTIFY_H -#include +#if FS_SHELL +# include "fssh_api_wrapper.h" +#else +# include +#endif /*! \brief Contains all the info of interest pertaining to an diff --git a/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp b/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp index 6c9d750ede..46c061236d 100644 --- a/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp @@ -9,28 +9,31 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef FS_SHELL +# include +# include +# include +# include +# include +# include +# include +# include +# include -#include -#include -#include -#include -#include +# include +# include +# include +# include -#include +# include +# include +# include +# include +# include + +# include +#endif #include "iso9660.h" #include "iso9660_identify.h" @@ -285,7 +288,7 @@ fs_walk(fs_volume *_vol, fs_vnode *_base, const char *file, ino_t *_vnodeID) } else { result = initResult; if (bytesRead == 0) - done = TRUE; + done = true; } blockData += bytesRead; blockBytesRead += bytesRead; @@ -302,7 +305,7 @@ fs_walk(fs_volume *_vol, fs_vnode *_base, const char *file, ino_t *_vnodeID) block_cache_put(ns->fBlockCache, cachedBlock); } else - done = TRUE; + done = true; } TRACE(("fs_walk - EXIT, result is %s, vnid is %Lu\n", diff --git a/src/add-ons/kernel/file_systems/iso9660/rock_ridge.h b/src/add-ons/kernel/file_systems/iso9660/rock_ridge.h index fecc81360c..3cdc1cd316 100644 --- a/src/add-ons/kernel/file_systems/iso9660/rock_ridge.h +++ b/src/add-ons/kernel/file_systems/iso9660/rock_ridge.h @@ -2,26 +2,31 @@ Copyright 1999, Be Incorporated. All Rights Reserved. This file may be used under the terms of the Be Sample Code License. */ +#ifndef ROCK_RIDGE_H +#define ROCK_RIDGE_H + // Altername name field flags. -enum { +enum NMFLAGS { NM_CONTINUE = 1, NM_CURRENT = 2, NM_PARENT = 4, NM_HOST = 32 -} NMFLAGS; +}; // Symbolic link field flags -enum { +enum SLFLAGS { SL_CONTINUE = 1 -} SLFLAGS; +}; // Symbolic link field component flags -enum { +enum SLCPFLAGS { SLCP_CONTINUE = 1, - SLCP_CURRENT = 2, - SLCP_PARENT = 4, + SLCP_CURRENT = 2, + SLCP_PARENT = 4, SLCP_ROOT = 8, - SLCP_VOLROOT = 16, + SLCP_VOLROOT = 16, SLCP_HOST = 32 -} SLCPFLAGS; +}; + +#endif // ROCK_RIDGE_H diff --git a/src/tests/add-ons/kernel/file_systems/Jamfile b/src/tests/add-ons/kernel/file_systems/Jamfile index 40655f4032..65c413aa02 100644 --- a/src/tests/add-ons/kernel/file_systems/Jamfile +++ b/src/tests/add-ons/kernel/file_systems/Jamfile @@ -1,12 +1,12 @@ SubDir HAIKU_TOP src tests add-ons kernel file_systems ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems bfs ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems cdda ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems consistency_check ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems fs_shell ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems fragmenter ; -#SubInclude HAIKU_TOP src tests add-ons kernel file_systems iso9660 ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems random_file_actions ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems random_read ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems udf ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems userlandfs ; +HaikuSubInclude bfs ; +HaikuSubInclude cdda ; +HaikuSubInclude consistency_check ; +HaikuSubInclude fs_shell ; +HaikuSubInclude fragmenter ; +HaikuSubInclude iso9660 ; +HaikuSubInclude random_file_actions ; +HaikuSubInclude random_read ; +HaikuSubInclude udf ; +HaikuSubInclude userlandfs ; diff --git a/src/tests/add-ons/kernel/file_systems/iso9660/Jamfile b/src/tests/add-ons/kernel/file_systems/iso9660/Jamfile index ea8744d732..7d89c6244f 100644 --- a/src/tests/add-ons/kernel/file_systems/iso9660/Jamfile +++ b/src/tests/add-ons/kernel/file_systems/iso9660/Jamfile @@ -1,3 +1,3 @@ SubDir HAIKU_TOP src tests add-ons kernel file_systems iso9660 ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems iso9660 iso9660_shell ; +HaikuSubInclude iso9660_shell ; diff --git a/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/Jamfile b/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/Jamfile index ab4b686ced..b5ccbf0773 100644 --- a/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/Jamfile +++ b/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/Jamfile @@ -1,31 +1,34 @@ SubDir HAIKU_TOP src tests add-ons kernel file_systems iso9660 iso9660_shell ; -SubDirHdrs $(HAIKU_TOP) src add-ons kernel file_systems iso9660 ; -SubDirHdrs $(HAIKU_TOP) src tests add-ons kernel file_systems fs_shell ; +UsePrivateHeaders fs_shell ; +SEARCH_SOURCE + += [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems iso9660 ] ; + +# set some additional defines { - local defines = [ FDefines USER DEBUG ] ; # _NO_INLINE_ASM - SubDirCcFlags $(defines) -fno-exceptions -fno-rtti ; #-fcheck-memory-usage + local defines = [ FDefines FS_SHELL USER DEBUG ] ; + SubDirCcFlags $(defines) -Wall -Wno-multichar ; + SubDirC++Flags $(defines) -Wall -Wno-multichar -fno-exceptions ; } -local fsShellSources = - fsh.c rootfs.c initfs.c kernel.c cache.c external_commands.cpp sl.c - stub.c tracker.cpp sysdep.c hexdump.c argv.c +local libHaikuCompat ; +if $(HOST_PLATFORM_BEOS_COMPATIBLE) && ! $(HOST_PLATFORM_HAIKU_COMPATIBLE) { + libHaikuCompat = libhaikucompat_build.a ; +} + +# platform specific libraries +local fsShellCommandLibs ; +if ! $(HOST_PLATFORM_BEOS_COMPATIBLE) { + fsShellCommandLibs = $(HOST_NETWORK_LIBS) ; +} + +BuildPlatformMain iso9660_shell + : + iso9660.cpp + iso9660_identify.cpp + kernel_interface.cpp + + : fs_shell.a $(libHaikuCompat) $(HOST_LIBSUPC++) $(HOST_LIBSTDC++) + $(HOST_LIBROOT) $(fsShellCommandLibs) ; - -SimpleTest iso9660_shell - : - $(fsShellSources) - - iso.c kernel_interface.c - : - ; - -# Tell Jam where to find these sources -SEARCH on [ FGristFiles - iso.c kernel_interface.c - ] = [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems iso9660 ] ; - -SEARCH on [ FGristFiles - $(fsShellSources) - ] = [ FDirName $(HAIKU_TOP) src tests add-ons kernel file_systems fs_shell ] ; diff --git a/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/additional_commands.c b/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/additional_commands.c deleted file mode 100644 index be1c3e0112..0000000000 --- a/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/additional_commands.c +++ /dev/null @@ -1,12 +0,0 @@ -/* This file is included in fs_shell:fsh.c - * Insert your implementation of additional commands in here - * - * Format: - * - * static void - * function(int argc, char **argv) - * { - * } - * - */ - diff --git a/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/additional_commands.h b/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/additional_commands.h deleted file mode 100644 index 8d5a98b620..0000000000 --- a/src/tests/add-ons/kernel/file_systems/iso9660/iso9660_shell/additional_commands.h +++ /dev/null @@ -1,9 +0,0 @@ -/* This file is included in fs_shell:fsh.c - * Insert your definition of additional commands here - * - * Format: - * { commandName, functionName, commandDescription }, - * - * And don't forget the comma after the line :-) - */ -