diff --git a/src/add-ons/kernel/file_systems/udf/AllocationDescriptorList.h b/src/add-ons/kernel/file_systems/udf/AllocationDescriptorList.h index 899752336e..a5e114f4a0 100644 --- a/src/add-ons/kernel/file_systems/udf/AllocationDescriptorList.h +++ b/src/add-ons/kernel/file_systems/udf/AllocationDescriptorList.h @@ -48,7 +48,7 @@ public: , fDescriptorNumber(0) , fBlockIndex(0) { - DEBUG_INIT(CF_PUBLIC | CF_FILE_OPS | CF_HIGH_VOLUME, "AllocationDescriptorList<>"); + DEBUG_INIT("AllocationDescriptorList<>"); _WalkContinuationChain(_CurrentDescriptor()); } @@ -62,7 +62,7 @@ public: and thus its contents should be interpreted as all zeros. */ status_t FindExtent(off_t start, long_address *extent, bool *isEmpty) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_FILE_OPS | CF_HIGH_VOLUME, "AllocationDescriptorList<>", + DEBUG_INIT_ETC("AllocationDescriptorList<>", ("start: %Ld, extent: %p, isEmpty: %p", start, extent, isEmpty)); off_t startBlock = start >> fVolume->BlockShift(); @@ -102,7 +102,7 @@ public: private: Descriptor* _CurrentDescriptor() const { - DEBUG_INIT(CF_PUBLIC | CF_FILE_OPS | CF_HIGH_VOLUME, "AllocationDescriptorList<>"); + DEBUG_INIT("AllocationDescriptorList<>"); PRINT(("(_DescriptorIndex()+1)*sizeof(Descriptor) = %ld\n", (_DescriptorIndex()+1)*sizeof(Descriptor))); PRINT(("_DescriptorArraySize() = %ld\n", _DescriptorArraySize())); PRINT(("_DescriptorArray() = %p\n", _DescriptorArray())); @@ -112,7 +112,7 @@ private: } status_t _MoveToNextDescriptor() { - DEBUG_INIT(CF_PRIVATE | CF_HIGH_VOLUME, "AllocationDescriptorList<>"); + DEBUG_INIT("AllocationDescriptorList<>"); Descriptor* descriptor = _CurrentDescriptor(); if (!descriptor) { @@ -142,7 +142,7 @@ private: } void _WalkContinuationChain(Descriptor *descriptor) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_FILE_OPS | CF_HIGH_VOLUME, "AllocationDescriptorList<>", + DEBUG_INIT_ETC("AllocationDescriptorList<>", ("descriptor: %p", descriptor)); if (descriptor && fAccessor.GetType(*descriptor) == EXTENT_TYPE_CONTINUATION) { // Load the new block, make sure we're not trying diff --git a/src/add-ons/kernel/file_systems/udf/Array.h b/src/add-ons/kernel/file_systems/udf/Array.h index f07efbbae4..8506a5a43b 100644 --- a/src/add-ons/kernel/file_systems/udf/Array.h +++ b/src/add-ons/kernel/file_systems/udf/Array.h @@ -13,6 +13,7 @@ #include "kernel_cpp.h" #include "SupportDefs.h" +#include "UdfDebug.h" namespace Udf { @@ -48,7 +49,7 @@ struct array { char classname[40]; sprintf(classname, "array", arrayLength); - DUMP_INIT(CF_PUBLIC | CF_DUMP | CF_HIGH_VOLUME, classname); + DUMP_INIT(classname); for (uint32 i = 0; i < arrayLength; i++) { if (i % bytesPerRow == 0) @@ -71,7 +72,7 @@ struct array { char classname[40]; sprintf(classname, "array", arrayLength); - DUMP_INIT(CF_PUBLIC | CF_DUMP | CF_HIGH_VOLUME, classname); + DUMP_INIT(classname); for (uint32 i = 0; i < arrayLength; i++) { if (i % bytesPerRow == 0) diff --git a/src/add-ons/kernel/file_systems/udf/CS0String.cpp b/src/add-ons/kernel/file_systems/udf/CS0String.cpp index 9d5ad7cf51..ec622cb8d4 100644 --- a/src/add-ons/kernel/file_systems/udf/CS0String.cpp +++ b/src/add-ons/kernel/file_systems/udf/CS0String.cpp @@ -49,7 +49,7 @@ CS0String::CS0String(const char *cs0, uint32 length) CS0String::~CS0String() { - DEBUG_INIT(CF_HELPER | CF_HIGH_VOLUME, "CS0String"); + DEBUG_INIT("CS0String"); _Clear(); } @@ -63,7 +63,7 @@ CS0String::SetTo(const char *cs0) void CS0String::SetTo(const char *cs0, uint32 length) { - DEBUG_INIT(CF_HELPER | CF_HIGH_VOLUME, "CS0String"); + DEBUG_INIT("CS0String"); _Clear(); @@ -125,7 +125,7 @@ CS0String::SetTo(const char *cs0, uint32 length) void CS0String::_Clear() { - DEBUG_INIT(CF_HELPER | CF_HIGH_VOLUME, "CS0String"); + DEBUG_INIT("CS0String"); delete [] fUtf8String; fUtf8String = NULL; diff --git a/src/add-ons/kernel/file_systems/udf/CS0String.h b/src/add-ons/kernel/file_systems/udf/CS0String.h index fed07668bc..8113e94757 100644 --- a/src/add-ons/kernel/file_systems/udf/CS0String.h +++ b/src/add-ons/kernel/file_systems/udf/CS0String.h @@ -54,7 +54,7 @@ template CS0String::CS0String(const array &cs0) : fUtf8String(NULL) { - DEBUG_INIT(CF_HELPER | CF_HIGH_VOLUME, "CS0String"); + DEBUG_INIT("CS0String"); SetTo(cs0); } diff --git a/src/add-ons/kernel/file_systems/udf/CachedBlock.h b/src/add-ons/kernel/file_systems/udf/CachedBlock.h index 15c4af7eb2..34c69e0886 100644 --- a/src/add-ons/kernel/file_systems/udf/CachedBlock.h +++ b/src/add-ons/kernel/file_systems/udf/CachedBlock.h @@ -104,7 +104,7 @@ CachedBlock::Keep() inline void CachedBlock::Unset() { - DEBUG_INIT(CF_HIGH_VOLUME | CF_PUBLIC, "CachedBlock"); + DEBUG_INIT("CachedBlock"); if (fBlock) { PRINT(("releasing block #%Ld\n", BlockNumber())); release_block(fVolume->Device(), fBlockNumber); @@ -116,7 +116,7 @@ CachedBlock::Unset() inline uint8 * CachedBlock::SetTo(off_t block, bool empty = false) { - DEBUG_INIT_ETC(CF_HIGH_VOLUME | CF_PUBLIC, "CachedBlock", ("block: %Ld, empty: %s", + DEBUG_INIT_ETC("CachedBlock", ("block: %Ld, empty: %s", block, (empty ? "true" : "false"))); Unset(); fBlockNumber = block; diff --git a/src/add-ons/kernel/file_systems/udf/DirectoryIterator.cpp b/src/add-ons/kernel/file_systems/udf/DirectoryIterator.cpp index 287b7fa152..12d19ed24c 100644 --- a/src/add-ons/kernel/file_systems/udf/DirectoryIterator.cpp +++ b/src/add-ons/kernel/file_systems/udf/DirectoryIterator.cpp @@ -23,7 +23,7 @@ using namespace Udf; status_t DirectoryIterator::GetNextEntry(char *name, uint32 *length, vnode_id *id) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_DIRECTORY_OPS, "DirectoryIterator", + DEBUG_INIT_ETC("DirectoryIterator", ("name: %p, length: %p, id: %p", name, length, id)); if (!id || !name || !length) diff --git a/src/add-ons/kernel/file_systems/udf/Icb.cpp b/src/add-ons/kernel/file_systems/udf/Icb.cpp index b4fbd3d378..ab15584c00 100644 --- a/src/add-ons/kernel/file_systems/udf/Icb.cpp +++ b/src/add-ons/kernel/file_systems/udf/Icb.cpp @@ -23,7 +23,7 @@ Icb::Icb(Volume *volume, long_address address) , fFileEntry(&fData) , fExtendedEntry(&fData) { - DEBUG_INIT_ETC(CF_PUBLIC, "Icb", ("volume: %p, address(block: %ld, " + DEBUG_INIT_ETC("Icb", ("volume: %p, address(block: %ld, " "partition: %d, length: %ld)", volume, address.block(), address.partition(), address.length())); status_t error = volume ? B_OK : B_BAD_VALUE; @@ -60,7 +60,7 @@ Icb::ModificationTime() status_t Icb::Read(off_t pos, void *buffer, size_t *length, uint32 *block) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_HIGH_VOLUME, "Icb", + DEBUG_INIT_ETC("Icb", ("pos: %Ld, buffer: %p, length: (%p)->%ld", pos, buffer, length, (length ? *length : 0))); if (!buffer || !length || pos < 0) @@ -127,7 +127,7 @@ Icb::GetDirectoryIterator(DirectoryIterator **iterator) status_t Icb::Find(const char *filename, vnode_id *id) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_DIRECTORY_OPS | CF_HIGH_VOLUME, "Icb", + DEBUG_INIT_ETC("Icb", ("filename: `%s', id: %p", filename, id)); if (!filename || !id) diff --git a/src/add-ons/kernel/file_systems/udf/Icb.h b/src/add-ons/kernel/file_systems/udf/Icb.h index a4f61179de..d89e661890 100644 --- a/src/add-ons/kernel/file_systems/udf/Icb.h +++ b/src/add-ons/kernel/file_systems/udf/Icb.h @@ -97,7 +97,7 @@ private: descriptor_tag & Tag() { return (reinterpret_cast(fData.Block()))->tag(); } icb_entry_tag& IcbTag() { return (reinterpret_cast(fData.Block()))->icb_tag(); } AbstractFileEntry* AbstractEntry() { - DEBUG_INIT(CF_PRIVATE | CF_HIGH_VOLUME, "Icb"); + DEBUG_INIT("Icb"); return (Tag().id() == TAGID_EXTENDED_FILE_ENTRY) // ? reinterpret_cast(fData.Block()) // : reinterpret_cast(fData.Block())); @@ -128,7 +128,7 @@ template status_t Icb::_Read(DescriptorList &list, off_t pos, void *_buffer, size_t *length, uint32 *block) { - DEBUG_INIT_ETC(CF_PRIVATE | CF_HIGH_VOLUME, "Icb", ("list: %p, pos: %Ld, buffer: %p, length: (%p)->%ld", + DEBUG_INIT_ETC("Icb", ("list: %p, pos: %Ld, buffer: %p, length: (%p)->%ld", &list, pos, _buffer, length, (length ? *length : 0))); if (!_buffer || !length) RETURN(B_BAD_VALUE); diff --git a/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp b/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp index 605e54f8cb..45621ee9a0 100644 --- a/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp +++ b/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp @@ -27,7 +27,7 @@ PhysicalPartition::~PhysicalPartition() status_t PhysicalPartition::MapBlock(uint32 logicalBlock, off_t &physicalBlock) { - DEBUG_INIT_ETC(CF_PUBLIC, "PhysicalPartition", ("%ld", logicalBlock)); + DEBUG_INIT_ETC("PhysicalPartition", ("%ld", logicalBlock)); if (logicalBlock >= fLength) return B_BAD_ADDRESS; else { diff --git a/src/add-ons/kernel/file_systems/udf/Recognition.cpp b/src/add-ons/kernel/file_systems/udf/Recognition.cpp index 40a3c60f2c..b3e54e1cb6 100644 --- a/src/add-ons/kernel/file_systems/udf/Recognition.cpp +++ b/src/add-ons/kernel/file_systems/udf/Recognition.cpp @@ -2,6 +2,7 @@ #include "CS0String.h" #include "MemoryChunk.h" +#include "Utils.h" using namespace Udf; @@ -36,7 +37,7 @@ Udf::udf_recognize(int device, off_t offset, off_t length, uint32 blockSize, partition_descriptor partitionDescriptors[], uint8 &partitionDescriptorCount) { - DEBUG_INIT_ETC(CF_PRIVATE, NULL, ("device: %d, offset: %Ld, length: %Ld, " + DEBUG_INIT_ETC(NULL, ("device: %d, offset: %Ld, length: %Ld, " "blockSize: %ld, [...descriptors, etc...]", device, offset, length, blockSize)); @@ -68,7 +69,7 @@ status_t Udf::udf_recognize(int device, off_t offset, off_t length, uint32 blockSize, char *volumeName) { - DEBUG_INIT_ETC(CF_PRIVATE, NULL, ("device: %d, offset: %Ld, length: %Ld, " + DEBUG_INIT_ETC(NULL, ("device: %d, offset: %Ld, length: %Ld, " "blockSize: %ld, volumeName: %p", device, offset, length, blockSize, volumeName)); logical_volume_descriptor logicalVolumeDescriptor; @@ -93,7 +94,7 @@ static status_t walk_volume_recognition_sequence(int device, off_t offset, uint32 blockSize, uint32 blockShift) { - DEBUG_INIT(CF_PRIVATE, NULL); + DEBUG_INIT(NULL); // vrs starts at block 16. Each volume structure descriptor (vsd) // should be one block long. We're expecting to find 0 or more iso9660 // vsd's followed by some ECMA-167 vsd's. @@ -163,7 +164,7 @@ walk_anchor_volume_descriptor_sequences(int device, off_t offset, off_t length, partition_descriptor partitionDescriptors[], uint8 &partitionDescriptorCount) { - DEBUG_INIT(CF_PRIVATE, NULL); + DEBUG_INIT(NULL); const uint8 avds_location_count = 4; const off_t avds_locations[avds_location_count] = { 256, @@ -234,7 +235,7 @@ walk_volume_descriptor_sequence(extent_address descriptorSequence, partition_descriptor partitionDescriptors[], uint8 &partitionDescriptorCount) { - DEBUG_INIT_ETC(CF_PRIVATE, NULL, ("descriptorSequence.loc:%ld, descriptorSequence.len:%ld", + DEBUG_INIT_ETC(NULL, ("descriptorSequence.loc:%ld, descriptorSequence.len:%ld", descriptorSequence.location(), descriptorSequence.length())); uint32 count = descriptorSequence.length() >> blockShift; diff --git a/src/add-ons/kernel/file_systems/udf/UdfDebug.cpp b/src/add-ons/kernel/file_systems/udf/UdfDebug.cpp index 70636b3719..b5cc34b2af 100644 --- a/src/add-ons/kernel/file_systems/udf/UdfDebug.cpp +++ b/src/add-ons/kernel/file_systems/udf/UdfDebug.cpp @@ -2,24 +2,25 @@ // This software is part of the OpenBeOS distribution and is covered // by the OpenBeOS license. // -// UDF version copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net +// This version copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net // Initial version copyright (c) 2002 Axel Dörfler, axeld@pinc-software.de //---------------------------------------------------------------------- -/*! \file UdfDebug.cpp +/*! \file Debug.cpp Support code for handy debugging macros. */ #include "UdfDebug.h" +#include #include #include //---------------------------------------------------------------------- // Long-winded overview of the debug output macros: //---------------------------------------------------------------------- -/*! \def DEBUG_INIT(categoryFilter) +/*! \def DEBUG_INIT() \brief Increases the indentation level, prints out the enclosing function's name, and creates a \c DebugHelper object on the stack to automatically decrease the indentation level upon function exit. @@ -27,13 +28,7 @@ This macro should be called at the very beginning of any function in which you wish to use any of the other debugging macros. - \param categoryFilter Combination of _DebugCategoryFlags values specifying - the category of the enclosing function. - If DEBUG is undefined, does nothing. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def PRINT(x) @@ -44,9 +39,6 @@ e.g. PRINT(("%d\n", 0)); If DEBUG is undefined, does nothing. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def LPRINT(x) @@ -57,9 +49,6 @@ e.g. PRINT(("%d\n", 0)); If DEBUG is undefined, does nothing. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def SIMPLE_PRINT(x) @@ -70,9 +59,6 @@ e.g. PRINT(("%d\n", 0)); If DEBUG is undefined, does nothing. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def PRINT_INDENT() @@ -84,9 +70,6 @@ intended for general consumption, but you might find it useful. If DEBUG is undefined, does nothing. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def REPORT_ERROR(error) @@ -100,9 +83,6 @@ \param error A \c status_t error code to report. If DEBUG is undefined, does nothing. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def RETURN_ERROR(error) @@ -113,9 +93,6 @@ \param error A \c status_t error code to report (if negative) and return. If DEBUG is undefined, silently returns the value in \c error. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def RETURN(error) @@ -126,9 +103,6 @@ \param error A \c status_t error code to report and return. If DEBUG is undefined, silently returns the value in \c error. - - \note If the enclosing function's category flags are not part of the currently - defined CATEGORY_FILTER, printing will be suppressed. */ //---------------------------------------------------------------------- /*! \def FATAL(x) @@ -140,8 +114,6 @@ e.g. PRINT(("%d\n", 0)); If DEBUG is undefined, does nothing. - - \note Category flags have no effect on this macro. */ //---------------------------------------------------------------------- /*! \def INFORM(x) @@ -154,8 +126,6 @@ I'll say it again: Prints its output regardless to DEBUG being defined or undefined. - - \note Category flags have no effect on this macro. */ //---------------------------------------------------------------------- /*! \def DBG(x) @@ -164,8 +134,6 @@ \a x disappear into the ether. \param x Damn near anything resembling valid C\C++. - - \note Category flags have no effect on this macro. */ //---------------------------------------------------------------------- /*! \def DIE(x) @@ -336,7 +304,7 @@ dbg_printf(const char *format,...) char buffer[1024]; va_list args; va_start(args, format); - // no vsnprintf() on PPC and in kernel + // no vsnprintf() on PPC #if defined(__INTEL__) && USER vsnprintf(buffer, sizeof(buffer) - 1, format, args); #else @@ -354,13 +322,11 @@ dbg_printf(const char *format,...) /*! \brief Increases the current indentation level. */ -DebugHelper::DebugHelper(uint32 categoryFlags, const char *className, uint8 tabCount) - : fCategoryFlags(categoryFlags) - , fTabCount(tabCount) +DebugHelper::DebugHelper(const char *className, uint8 tabCount) + : fTabCount(tabCount) , fClassName(NULL) { - if ((CategoryFlags() & CATEGORY_FILTER) == CategoryFlags()) - indent(fTabCount); + indent(fTabCount); if (className) { fClassName = (char*)malloc(strlen(className)+1); if (fClassName) @@ -372,8 +338,7 @@ DebugHelper::DebugHelper(uint32 categoryFlags, const char *className, uint8 tabC */ DebugHelper::~DebugHelper() { - if ((CategoryFlags() & CATEGORY_FILTER) == CategoryFlags()) - unindent(fTabCount); + unindent(fTabCount); free(fClassName); } diff --git a/src/add-ons/kernel/file_systems/udf/UdfDebug.h b/src/add-ons/kernel/file_systems/udf/UdfDebug.h index 6453582770..b91a80ee3b 100644 --- a/src/add-ons/kernel/file_systems/udf/UdfDebug.h +++ b/src/add-ons/kernel/file_systems/udf/UdfDebug.h @@ -2,14 +2,14 @@ // This software is part of the OpenBeOS distribution and is covered // by the OpenBeOS license. // -// UDF version copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net +// This version copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net // Initial version copyright (c) 2002 Axel Dörfler, axeld@pinc-software.de // dbg_printf() function copyright (c) 2003 Ingo Weinhold, bonefish@cs.tu-berlin.edu //---------------------------------------------------------------------- -#ifndef UDF_DEBUG_H -#define UDF_DEBUG_H +#ifndef _UDF_DEBUG_H +#define _UDF_DEBUG_H -/*! \file UdfDebug.h +/*! \file Debug.h Handy debugging macros. */ @@ -31,13 +31,9 @@ void dbg_printf(const char *format,...); void initialize_debugger(const char *filename); #else -# ifdef USER -# include -# define __out printf -# else -# include -# define __out dprintf -# endif +# include +# include +# define __out printf #endif #include "kernel_cpp.h" @@ -46,80 +42,28 @@ class DebugHelper; int32 _get_debug_indent_level(); -/*! \brief Categories specifiable via the categoryFlags parameter to DEBUG_INIT() -*/ -enum _DebugCategoryFlags { - // Function visibility categories - CF_ENTRY = 0x00000001, //!< fs entry functions - CF_PUBLIC = 0x00000002, //!< public methods and global functions - CF_PRIVATE = 0x00000004, //!< private methods - - // Function type categories - CF_VOLUME_OPS = 0x00000008, - CF_FILE_OPS = 0x00000010, - CF_DIRECTORY_OPS = 0x00000020, - CF_ATTRIBUTE_OPS = 0x00000040, - CF_INDEX_OPS = 0x00000080, - CF_QUERY_OPS = 0x00000100, - - - // Misc categories - CF_HIGH_VOLUME = 0x00000200, //!< often-called functions - CF_HELPER = 0x00000400, //!< helper functions and classes (i.e. Array, CS0String, etc.) - CF_DEBUGGING = 0x00000800, //!< internal debugging functions - CF_DUMP = 0x00001000, //!< dump() functions - - // Specific entry functions - CF_UDF_READ_FS_STAT = 0x00002000, - CF_UDF_READ = 0x00004000, - - //------------------------------- - - // Handy combinations - CF_ALL = 0xffffffff, - CF_ALL_LOW_VOLUME = ~CF_HIGH_VOLUME, - - CF_ANY_VISIBILITY = 0x00000007, - CF_ANY_OP = 0x000001f8, - CF_ALL_STANDARD = CF_ANY_VISIBILITY | CF_ANY_OP, -}; - -/*! \def CATEGORY_FILTER - \brief Bitmask of currently enabled debugging categories. -*/ -#define CATEGORY_FILTER CF_ALL -//#define CATEGORY_FILTER ~CF_DIRECTORY_OPS & ~CF_HIGH_VOLUME & ~CF_HELPER -//#define CATEGORY_FILTER CF_UDF_READ -//#define CATEGORY_FILTER ~CF_DUMP -//#define CATEGORY_FILTER ~CF_DUMP & ~CF_HIGH_VOLUME -//#define CATEGORY_FILTER CF_ALL_STANDARD -//#define CATEGORY_FILTER CF_ENTRY -//#define CATEGORY_FILTER (CF_ENTRY | CF_PUBLIC) -//#define CATEGORY_FILTER (CF_ENTRY | CF_PUBLIC | CF_PRIVATE) -//#define CATEGORY_FILTER (CF_ENTRY | CF_PUBLIC | CF_PRIVATE | CF_HIGH_VOLUME) - /*! \brief Helper class that is allocated on the stack by the \c DEBUG_INIT() macro. On creation, it increases the - current indentation level by 1; on destruction, it decreases - it by 1. + current indentation level by the amount specified via its + constructor's \c tabCount parameter; on destruction, it + decreases it. */ class DebugHelper { public: - DebugHelper(uint32 categoryFlags, const char *className = NULL, uint8 tabCount = 1); + DebugHelper(const char *className = NULL, uint8 tabCount = 1); ~DebugHelper(); - uint32 CategoryFlags() const { return fCategoryFlags; } + uint8 TabCount() const { return fTabCount; } const char* ClassName() const { return fClassName; } private: - uint32 fCategoryFlags; uint8 fTabCount; char *fClassName; }; //---------------------------------------------------------------------- -// NOTE: See UdfDebug.cpp for complete descriptions of the following +// NOTE: See Debug.cpp for complete descriptions of the following // debug macros. //---------------------------------------------------------------------- @@ -144,57 +88,51 @@ private: #define INITIALIZE_DEBUGGING_OUTPUT_FILE(filename) ; #endif - #define DEBUG_INIT_SILENT(categoryFlags, className) \ - DebugHelper _debugHelper((categoryFlags), className, 2); + #define DEBUG_INIT_SILENT(className) \ + DebugHelper _debugHelper(className, 2); - #define DEBUG_INIT(categoryFlags, className) \ - DEBUG_INIT_SILENT(categoryFlags, className); \ + #define DEBUG_INIT(className) \ + DEBUG_INIT_SILENT(className); \ PRINT(("\n")); - #define DEBUG_INIT_ETC(categoryFlags, className, arguments) \ - DEBUG_INIT_SILENT(categoryFlags, className) \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ + #define DEBUG_INIT_ETC(className, arguments) \ + DEBUG_INIT_SILENT(className) \ { \ PRINT_INDENT(); \ if (_debugHelper.ClassName()) { \ - __out("udf(%ld): %s::%s(", find_thread(NULL), \ + __out("udf: %s::%s(", \ _debugHelper.ClassName(), __FUNCTION__); \ } else { \ - __out("udf(%ld): %s(", find_thread(NULL), __FUNCTION__); \ + __out("udf: %s(", __FUNCTION__); \ } \ __out arguments; \ __out("):\n"); \ } - #define DUMP_INIT(categoryFlags, className) \ - DEBUG_INIT_SILENT((categoryFlags) | CF_DUMP , className); + #define DUMP_INIT(className) \ + DEBUG_INIT_SILENT(className); #define PRINT(x) { \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ { \ PRINT_INDENT(); \ if (_debugHelper.ClassName()) { \ - __out("udf(%ld): %s::%s(): ", find_thread(NULL), \ + __out("udf: %s::%s(): ", \ _debugHelper.ClassName(), __FUNCTION__); \ } else { \ - __out("udf(%ld): %s(): ", find_thread(NULL), __FUNCTION__); \ + __out("udf: %s(): ", __FUNCTION__); \ } \ __out x; \ } \ } #define LPRINT(x) { \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ { \ PRINT_INDENT(); \ if (_debugHelper.ClassName()) { \ - __out("udf(%ld): %s::%s(): line %d: ", find_thread(NULL), \ + __out("udf: %s::%s(): line %d: ", \ _debugHelper.ClassName(), __FUNCTION__, __LINE__); \ } else { \ - __out("udf(%ld): %s(): line %d: ", find_thread(NULL), \ + __out("udf: %s(): line %d: ", \ __FUNCTION__, __LINE__); \ } \ __out x; \ @@ -202,19 +140,15 @@ private: } #define SIMPLE_PRINT(x) { \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ { \ __out x; \ } \ } #define PRINT_INDENT() { \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ { \ int32 _level = _get_debug_indent_level(); \ - for (int32 i = 0; i < _level-1; i++) { \ + for (int32 i = 0; i < _level-_debugHelper.TabCount(); i++) { \ __out(" "); \ } \ } \ @@ -224,18 +158,14 @@ private: PRINT_INDENT(); \ SIMPLE_PRINT(("------------------------------------------------------------\n")); - #define DUMP(object) \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ - { \ - (object).dump(); \ + #define DUMP(object) \ + { \ + (object).dump(); \ } - #define PDUMP(objectPointer) \ - if ((_debugHelper.CategoryFlags() & CATEGORY_FILTER) \ - == _debugHelper.CategoryFlags()) \ - { \ - (objectPointer)->dump(); \ + #define PDUMP(objectPointer) \ + { \ + (objectPointer)->dump(); \ } #define REPORT_ERROR(error) { \ @@ -249,7 +179,7 @@ private: return _status; \ } - #define RETURN(error) { \ + #define RETURN(error) { \ status_t _status = error; \ if (_status < (status_t)B_OK) { \ REPORT_ERROR(_status); \ @@ -269,10 +199,10 @@ private: #else // ifdef DEBUG #define INITIALIZE_DEBUGGING_OUTPUT_FILE(filename) ; - #define DEBUG_INIT_SILENT(categoryFlags, className) ; - #define DEBUG_INIT(categoryFlags, className) ; - #define DEBUG_INIT_ETC(categoryFlags, className, arguments) ; - #define DUMP_INIT(categoryFlags, className) ; + #define DEBUG_INIT_SILENT(className) ; + #define DEBUG_INIT(className) ; + #define DEBUG_INIT_ETC(className, arguments) ; + #define DUMP_INIT(className) ; #define PRINT(x) ; #define LPRINT(x) ; #define SIMPLE_PRINT(x) ; @@ -288,4 +218,12 @@ private: #define DUMP(x) ; #endif // ifdef DEBUG else -#endif // DEBUG_H +#define TRACE(x) DBG(dprintf x) + +// These macros turn on or off extensive and generally unnecessary +// debugging output regarding table of contents parsing +//#define WARN(x) (dprintf x) +//#define WARN(x) +#define WARN(x) DBG(dprintf x) + +#endif // _UDF_DEBUG_H diff --git a/src/add-ons/kernel/file_systems/udf/UdfStructures.cpp b/src/add-ons/kernel/file_systems/udf/UdfStructures.cpp index 687449effc..5481c374b9 100644 --- a/src/add-ons/kernel/file_systems/udf/UdfStructures.cpp +++ b/src/add-ons/kernel/file_systems/udf/UdfStructures.cpp @@ -122,7 +122,7 @@ volume_structure_descriptor_header::id_matches(const char *id) void charspec::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "charspec"); + DUMP_INIT("charspec"); PRINT(("character_set_type: %d\n", character_set_type())); PRINT(("character_set_info: `%s'\n", character_set_info())); } @@ -135,7 +135,7 @@ charspec::dump() const void timestamp::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "timestamp"); + DUMP_INIT("timestamp"); PRINT(("type: %d\n", type())); PRINT(("timezone: %d\n", timezone())); PRINT(("year: %d\n", year())); @@ -169,7 +169,7 @@ entity_id::entity_id(uint8 flags, char *identifier, char *identifier_suffix) void entity_id::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "entity_id"); + DUMP_INIT("entity_id"); PRINT(("flags: %d\n", flags())); PRINT(("identifier: `%.23s'\n", identifier())); PRINT(("identifier_suffix: `%s'\n", identifier_suffix())); @@ -201,7 +201,7 @@ extent_address::extent_address(uint32 location, uint32 length) void extent_address::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "extent_address"); + DUMP_INIT("extent_address"); PRINT(("length: %ld\n", length())); PRINT(("location: %ld\n", location())); } @@ -209,7 +209,7 @@ extent_address::dump() const void logical_block_address::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "logical_block_address"); + DUMP_INIT("logical_block_address"); PRINT(("block: %ld\n", block())); PRINT(("partition: %d\n", partition())); } @@ -217,7 +217,7 @@ logical_block_address::dump() const void long_address::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "long_address"); + DUMP_INIT("long_address"); PRINT(("length: %ld\n", length())); PRINT(("block: %ld\n", block())); PRINT(("partiton: %d\n", partition())); @@ -232,7 +232,7 @@ long_address::dump() const void descriptor_tag ::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "descriptor_tag"); + DUMP_INIT("descriptor_tag"); PRINT(("id: %d (%s)\n", id(), tag_id_to_string(tag_id(id())))); PRINT(("version: %d\n", version())); PRINT(("checksum: %d\n", checksum())); @@ -251,7 +251,7 @@ descriptor_tag ::dump() const status_t descriptor_tag ::init_check(uint32 diskBlock) { - DEBUG_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_HIGH_VOLUME, "descriptor_tag"); + DEBUG_INIT("descriptor_tag"); PRINT(("location (paramater) == %ld\n", diskBlock)); PRINT(("location (in structure) == %ld\n", location())); status_t error = (diskBlock == location()) ? B_OK : B_NO_INIT; @@ -277,7 +277,7 @@ descriptor_tag ::init_check(uint32 diskBlock) void primary_volume_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "primary_volume_descriptor"); + DUMP_INIT("primary_volume_descriptor"); CS0String string; @@ -321,7 +321,7 @@ primary_volume_descriptor::dump() const void anchor_volume_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "anchor_volume_descriptor"); + DUMP_INIT("anchor_volume_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("main_vds:\n")); @@ -338,7 +338,7 @@ anchor_volume_descriptor::dump() const void implementation_use_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "implementation_use_descriptor"); + DUMP_INIT("implementation_use_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("vds_number: %ld\n", vds_number())); @@ -357,7 +357,7 @@ const uint8 Udf::kMaxPartitionDescriptors = 2; void partition_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "partition_descriptor"); + DUMP_INIT("partition_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("vds_number: %ld\n", vds_number())); @@ -384,7 +384,7 @@ partition_descriptor::dump() const void logical_volume_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "logical_volume_descriptor"); + DUMP_INIT("logical_volume_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("vds_number: %ld\n", vds_number())); @@ -471,7 +471,7 @@ logical_volume_descriptor::operator=(const logical_volume_descriptor &rhs) void physical_partition_map::dump() { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "physical_partition_map"); + DUMP_INIT("physical_partition_map"); PRINT(("type: %d\n", type())); PRINT(("length: %d\n", length())); PRINT(("volume_sequence_number: %d\n", volume_sequence_number())); @@ -485,7 +485,7 @@ physical_partition_map::dump() void sparable_partition_map::dump() { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "sparable_partition_map"); + DUMP_INIT("sparable_partition_map"); PRINT(("type: %d\n", type())); PRINT(("length: %d\n", length())); PRINT(("partition_type_id:")); @@ -506,7 +506,7 @@ sparable_partition_map::dump() void unallocated_space_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "unallocated_space_descriptor"); + DUMP_INIT("unallocated_space_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("vds_number: %ld\n", vds_number())); @@ -522,7 +522,7 @@ unallocated_space_descriptor::dump() const void terminating_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "terminating_descriptor"); + DUMP_INIT("terminating_descriptor"); PRINT(("tag:\n")); DUMP(tag()); } @@ -534,7 +534,7 @@ terminating_descriptor::dump() const void file_set_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS | CF_DUMP, "file_set_descriptor"); + DUMP_INIT("file_set_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("recording_date_and_time:\n")); @@ -570,7 +570,7 @@ file_set_descriptor::dump() const void file_id_descriptor::dump() const { - DUMP_INIT(CF_PUBLIC | CF_VOLUME_OPS, "file_id_descriptor"); + DUMP_INIT("file_id_descriptor"); PRINT(("tag:\n")); DUMP(tag()); PRINT(("version_number: %d\n", version_number())); @@ -592,7 +592,7 @@ file_id_descriptor::dump() const void icb_entry_tag::dump() const { - DUMP_INIT(CF_PUBLIC, "icb_entry_tag"); + DUMP_INIT("icb_entry_tag"); PRINT(("prior_entries: %ld\n", prior_recorded_number_of_direct_entries())); PRINT(("strategy_type: %d\n", strategy_type())); PRINT(("strategy_parameters:\n")); @@ -637,7 +637,7 @@ icb_entry_tag::dump() const void icb_header::dump() const { - DUMP_INIT(CF_PUBLIC | CF_DUMP, "icb_header"); + DUMP_INIT("icb_header"); PRINT(("tag:\n")); DUMP(tag()); diff --git a/src/add-ons/kernel/file_systems/udf/Utils.cpp b/src/add-ons/kernel/file_systems/udf/Utils.cpp index ec67fd0ee1..1e3951e895 100644 --- a/src/add-ons/kernel/file_systems/udf/Utils.cpp +++ b/src/add-ons/kernel/file_systems/udf/Utils.cpp @@ -26,7 +26,7 @@ namespace Udf { long_address to_long_address(vnode_id id, uint32 length) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_HELPER, NULL, ("vnode_id: %Ld (0x%Lx), length: %ld", id, id, length)); + DEBUG_INIT_ETC(NULL, ("vnode_id: %Ld (0x%Lx), length: %ld", id, id, length)); long_address result; result.set_block((id >> 16) & 0xffffffff); result.set_partition(id & 0xffff); @@ -38,7 +38,7 @@ to_long_address(vnode_id id, uint32 length) vnode_id to_vnode_id(long_address address) { - DEBUG_INIT(CF_PUBLIC | CF_HELPER, NULL); + DEBUG_INIT(NULL); vnode_id result = address.block(); result <<= 16; result |= address.partition(); @@ -52,7 +52,7 @@ to_vnode_id(long_address address) time_t make_time(timestamp ×tamp) { - DEBUG_INIT_ETC(CF_HELPER | CF_HIGH_VOLUME, NULL, ("timestamp: (tnt: 0x%x, type: %d, timezone: %d = 0x%x, year: %d, " + DEBUG_INIT_ETC(NULL, ("timestamp: (tnt: 0x%x, type: %d, timezone: %d = 0x%x, year: %d, " "month: %d, day: %d, hour: %d, minute: %d, second: %d)", timestamp.type_and_timezone(), timestamp.type(), timestamp.timezone(), timestamp.timezone(),timestamp.year(), diff --git a/src/add-ons/kernel/file_systems/udf/Volume.cpp b/src/add-ons/kernel/file_systems/udf/Volume.cpp index 907879d844..03985fc526 100644 --- a/src/add-ons/kernel/file_systems/udf/Volume.cpp +++ b/src/add-ons/kernel/file_systems/udf/Volume.cpp @@ -45,7 +45,7 @@ status_t Volume::Mount(const char *deviceName, off_t offset, off_t length, uint32 blockSize, uint32 flags) { - DEBUG_INIT_ETC(CF_PUBLIC | CF_VOLUME_OPS, "Volume", + DEBUG_INIT_ETC("Volume", ("deviceName: `%s', offset: %Ld, length: %Ld, blockSize: %ld, " "flags: %ld", deviceName, offset, length, blockSize, flags)); if (!deviceName) @@ -271,7 +271,7 @@ Volume::Name() const { status_t Volume::MapBlock(long_address address, off_t *mappedBlock) { - DEBUG_INIT_ETC(CF_PRIVATE | CF_HIGH_VOLUME, "Volume", + DEBUG_INIT_ETC("Volume", ("partition: %d, block: %ld, mappedBlock: %p", address.partition(), address.block(), mappedBlock)); status_t error = mappedBlock ? B_OK : B_BAD_VALUE; diff --git a/src/add-ons/kernel/file_systems/udf/drive_setup_addon/Jamfile b/src/add-ons/kernel/file_systems/udf/drive_setup_addon/Jamfile index 22a6f3e302..6207a54be0 100644 --- a/src/add-ons/kernel/file_systems/udf/drive_setup_addon/Jamfile +++ b/src/add-ons/kernel/file_systems/udf/drive_setup_addon/Jamfile @@ -39,13 +39,14 @@ Addon i-udf-ds : [ FDirName drive_setup fs ] : Recognition.cpp UdfDebug.cpp UdfStructures.cpp + Utils.cpp : false : ; SEARCH on [ FGristFiles - CS0String.cpp Recognition.cpp UdfDebug.cpp UdfStructures.cpp + CS0String.cpp Recognition.cpp UdfDebug.cpp UdfStructures.cpp Utils.cpp ] = [ FDirName $(OBOS_TOP) src add-ons kernel file_systems udf ] ; rule InstallUDFDS diff --git a/src/add-ons/kernel/file_systems/udf/drive_setup_addon/udf-ds.cpp b/src/add-ons/kernel/file_systems/udf/drive_setup_addon/udf-ds.cpp index 172fe9f726..239355de73 100644 --- a/src/add-ons/kernel/file_systems/udf/drive_setup_addon/udf-ds.cpp +++ b/src/add-ons/kernel/file_systems/udf/drive_setup_addon/udf-ds.cpp @@ -38,7 +38,7 @@ bool ds_fs_id(partition_data *data, int32 device, uint64 sessionOffset, int32 blockSize) { - DEBUG_INIT_ETC(CF_HELPER, NULL, ("%p, %ld, %Lu, %ld", data, + DEBUG_INIT_ETC(NULL, ("%p, %ld, %Lu, %ld", data, device, sessionOffset, blockSize)); if (!data || device < 0) diff --git a/src/add-ons/kernel/file_systems/udf/udf.cpp b/src/add-ons/kernel/file_systems/udf/udf.cpp index e9e1d81463..48c0352bbe 100644 --- a/src/add-ons/kernel/file_systems/udf/udf.cpp +++ b/src/add-ons/kernel/file_systems/udf/udf.cpp @@ -238,7 +238,7 @@ udf_mount(nspace_id nsid, const char *name, ulong flags, void *parms, size_t parmsLength, void **volumeCookie, vnode_id *rootID) { INITIALIZE_DEBUGGING_OUTPUT_FILE("/boot/home/Desktop/udf_debug.txt"); - DEBUG_INIT_ETC(CF_ENTRY | CF_VOLUME_OPS, NULL, ("name: `%s'", name)); + DEBUG_INIT_ETC(NULL, ("name: `%s'", name)); status_t error = B_OK; char *deviceName = (char*)name; @@ -330,7 +330,7 @@ udf_mount(nspace_id nsid, const char *name, ulong flags, void *parms, int udf_unmount(void *ns) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_OK); } @@ -338,7 +338,7 @@ udf_unmount(void *ns) int udf_read_fs_stat(void *ns, struct fs_info *info) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); if (ns == NULL || info == NULL) return B_BAD_VALUE; @@ -367,7 +367,7 @@ udf_read_fs_stat(void *ns, struct fs_info *info) int udf_write_fs_stat(void *ns, struct fs_info *info, long mask) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("mask: %ld\n",mask)); RETURN(B_ERROR); } @@ -376,7 +376,7 @@ udf_write_fs_stat(void *ns, struct fs_info *info, long mask) int udf_initialize(const char *deviceName, void *parms, size_t parmsLength) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("deviceName: %s, parameter len: %ld\n", deviceName, parmsLength)); RETURN(B_ERROR); } @@ -385,7 +385,7 @@ udf_initialize(const char *deviceName, void *parms, size_t parmsLength) int udf_sync(void *ns) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); return B_OK; } @@ -393,7 +393,7 @@ udf_sync(void *ns) int udf_read_vnode(void *ns, vnode_id id, char reenter, void **node) { - DEBUG_INIT_ETC(CF_ENTRY | CF_VOLUME_OPS, NULL, ("id: %Ld, reenter: %s", id, (reenter ? "true" : "false"))); + DEBUG_INIT_ETC(NULL, ("id: %Ld, reenter: %s", id, (reenter ? "true" : "false"))); if (!ns) RETURN(B_BAD_VALUE); @@ -421,7 +421,7 @@ udf_read_vnode(void *ns, vnode_id id, char reenter, void **node) int udf_release_vnode(void *ns, void *node, char reenter) { - DEBUG_INIT_ETC(CF_ENTRY | CF_VOLUME_OPS, NULL, ("node: %p", node)); + DEBUG_INIT_ETC(NULL, ("node: %p", node)); Udf::Icb *icb = reinterpret_cast(node); delete icb; @@ -432,7 +432,7 @@ udf_release_vnode(void *ns, void *node, char reenter) int udf_remove_vnode(void *ns, void *node, char reenter) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -440,7 +440,7 @@ udf_remove_vnode(void *ns, void *node, char reenter) int udf_wake_vnode(void *ns, void *node) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -448,7 +448,7 @@ udf_wake_vnode(void *ns, void *node) int udf_suspend_vnode(void *ns, void *node) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -456,7 +456,7 @@ udf_suspend_vnode(void *ns, void *node) int udf_walk(void *ns, void *_dir, const char *filename, char **resolvedPath, vnode_id *vnodeId) { - DEBUG_INIT_ETC(CF_ENTRY | CF_VOLUME_OPS, NULL, ("dir: %p, filename = `%s'", _dir, filename)); + DEBUG_INIT_ETC(NULL, ("dir: %p, filename = `%s'", _dir, filename)); if (!ns || !_dir || !filename || !vnodeId) RETURN(B_BAD_VALUE); @@ -487,7 +487,7 @@ udf_walk(void *ns, void *_dir, const char *filename, char **resolvedPath, vnode_ int udf_ioctl(void *ns, void *node, void *cookie, int cmd, void *buffer, size_t bufferLength) { - DEBUG_INIT_ETC(CF_ENTRY | CF_VOLUME_OPS, NULL, ("node: %p, cmd: 0x%x, " + DEBUG_INIT_ETC(NULL, ("node: %p, cmd: 0x%x, " "buf: %p, len: %ld\n", node, cmd, buffer, bufferLength)); // FUNCTION_START(("node: %p, cmd: %d, buf: %p, len: %ld\n", node, cmd, buffer, bufferLength)); RETURN(B_ERROR); @@ -497,7 +497,7 @@ udf_ioctl(void *ns, void *node, void *cookie, int cmd, void *buffer, size_t buff int udf_setflags(void *ns, void *node, void *cookie, int flags) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("node: %p, flags: %d", node, flags)); RETURN(B_ERROR); } @@ -506,7 +506,7 @@ udf_setflags(void *ns, void *node, void *cookie, int flags) int udf_select(void *ns, void *node, void *cookie, uint8 event, uint32 ref, selectsync *sync) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("event: %d, ref: %lu, sync: %p\n", event, ref, sync)); RETURN(B_ERROR); } @@ -515,7 +515,7 @@ udf_select(void *ns, void *node, void *cookie, uint8 event, uint32 ref, selectsy int udf_deselect(void *ns, void *node, void *cookie, uint8 event, selectsync *sync) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -523,7 +523,7 @@ udf_deselect(void *ns, void *node, void *cookie, uint8 event, selectsync *sync) int udf_fsync(void *_ns, void *_node) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -531,7 +531,7 @@ udf_fsync(void *_ns, void *_node) int udf_read_stat(void *ns, void *node, struct stat *st) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); if (!ns || !node || !st) RETURN(B_BAD_VALUE); @@ -566,7 +566,7 @@ udf_read_stat(void *ns, void *node, struct stat *st) int udf_write_stat(void *ns, void *node, struct stat *stat, long mask) { - DEBUG_INIT(CF_ENTRY | CF_VOLUME_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -580,7 +580,7 @@ int udf_create(void *ns, void *dir, const char *name, int omode, int mode, vnode_id *newID, void **newNode) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s\', perms: %d, omode: %d\n", name, mode, omode)); RETURN(B_ERROR); } @@ -589,7 +589,7 @@ udf_create(void *ns, void *dir, const char *name, int omode, int mode, int udf_symlink(void *ns, void *dir, const char *name, const char *path) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -597,7 +597,7 @@ udf_symlink(void *ns, void *dir, const char *name, const char *path) int udf_link(void *ns, void *dir, const char *name, void *node) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name = `%s\'\n", name)); RETURN(B_ERROR); } @@ -606,7 +606,7 @@ udf_link(void *ns, void *dir, const char *name, void *node) int udf_unlink(void *ns, void *dir, const char *name) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s'\n",name)); RETURN(B_ERROR); } @@ -615,7 +615,7 @@ udf_unlink(void *ns, void *dir, const char *name) int udf_rename(void *ns, void *oldDir, const char *oldName, void *newDir, const char *newName) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("oldDir: %p, oldName: `%s', newDir: %p, newName: `%s'\n", oldDir, oldName, newDir, newName)); RETURN(B_ERROR); } @@ -623,14 +623,14 @@ udf_rename(void *ns, void *oldDir, const char *oldName, void *newDir, const char int udf_open(void *_ns, void *_node, int omode, void **_cookie) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_OK); } int udf_read(void *_ns, void *_node, void *_cookie, off_t pos, void *buffer, size_t *_length) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); Udf::Icb *icb = reinterpret_cast(_node); // if (!inode->HasUserAccessableStream()) { @@ -645,7 +645,7 @@ udf_read(void *_ns, void *_node, void *_cookie, off_t pos, void *buffer, size_t int udf_write(void *_ns, void *_node, void *_cookie, off_t pos, const void *buffer, size_t *_length) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -653,7 +653,7 @@ udf_write(void *_ns, void *_node, void *_cookie, off_t pos, const void *buffer, int udf_close(void *_ns, void *_node, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_OK); } @@ -661,7 +661,7 @@ udf_close(void *_ns, void *_node, void *_cookie) int udf_free_cookie(void *_ns, void *_node, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_OK); } @@ -669,7 +669,7 @@ udf_free_cookie(void *_ns, void *_node, void *_cookie) int udf_access(void *_ns, void *_node, int accessMode) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_OK); } @@ -677,7 +677,7 @@ udf_access(void *_ns, void *_node, int accessMode) int udf_read_link(void *_ns, void *_node, char *buffer, size_t *bufferSize) { - DEBUG_INIT(CF_ENTRY | CF_FILE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -690,7 +690,7 @@ udf_read_link(void *_ns, void *_node, char *buffer, size_t *bufferSize) int udf_mkdir(void *ns, void *dir, const char *name, int mode) { - DEBUG_INIT(CF_ENTRY | CF_DIRECTORY_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s', perms: %d\n", name, mode)); RETURN(B_ERROR); } @@ -699,7 +699,7 @@ udf_mkdir(void *ns, void *dir, const char *name, int mode) int udf_rmdir(void *ns, void *dir, const char *name) { - DEBUG_INIT(CF_ENTRY | CF_DIRECTORY_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s'\n", name)); RETURN(B_ERROR); } @@ -708,7 +708,7 @@ udf_rmdir(void *ns, void *dir, const char *name) int udf_open_dir(void *ns, void *node, void **cookie) { - DEBUG_INIT_ETC(CF_ENTRY | CF_DIRECTORY_OPS, NULL, ("node: %p, cookie: %p", node, cookie)); + DEBUG_INIT_ETC(NULL, ("node: %p, cookie: %p", node, cookie)); if (!ns || !node || !cookie) RETURN(B_BAD_VALUE); @@ -738,7 +738,7 @@ int udf_read_dir(void *ns, void *node, void *cookie, long *num, struct dirent *dirent, size_t bufferSize) { - DEBUG_INIT_ETC(CF_ENTRY | CF_DIRECTORY_OPS, NULL, + DEBUG_INIT_ETC(NULL, ("dir: %p, iterator: %p, bufferSize: %ld", node, cookie, bufferSize)); if (!ns || !node || !cookie || !num || bufferSize < sizeof(dirent)) @@ -775,7 +775,7 @@ udf_read_dir(void *ns, void *node, void *cookie, long *num, int udf_rewind_dir(void *ns, void *node, void *cookie) { - DEBUG_INIT_ETC(CF_ENTRY | CF_DIRECTORY_OPS, NULL, + DEBUG_INIT_ETC(NULL, ("dir: %p, iterator: %p", node, cookie)); if (!ns || !node || !cookie) @@ -799,7 +799,7 @@ udf_rewind_dir(void *ns, void *node, void *cookie) int udf_close_dir(void *ns, void *node, void *cookie) { - DEBUG_INIT(CF_ENTRY | CF_DIRECTORY_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -807,7 +807,7 @@ udf_close_dir(void *ns, void *node, void *cookie) int udf_free_dir_cookie(void *ns, void *node, void *cookie) { - DEBUG_INIT(CF_ENTRY | CF_DIRECTORY_OPS, NULL); + DEBUG_INIT(NULL); delete reinterpret_cast(cookie); RETURN(B_ERROR); } @@ -821,7 +821,7 @@ udf_free_dir_cookie(void *ns, void *node, void *cookie) int udf_open_attrdir(void *ns, void *node, void **cookie) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -829,7 +829,7 @@ udf_open_attrdir(void *ns, void *node, void **cookie) int udf_close_attrdir(void *ns, void *node, void *cookie) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -837,7 +837,7 @@ udf_close_attrdir(void *ns, void *node, void *cookie) int udf_free_attrdir_cookie(void *ns, void *node, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -845,7 +845,7 @@ udf_free_attrdir_cookie(void *ns, void *node, void *_cookie) int udf_rewind_attrdir(void *_ns, void *_node, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -853,7 +853,7 @@ udf_rewind_attrdir(void *_ns, void *_node, void *_cookie) int udf_read_attrdir(void *_ns, void *node, void *_cookie, long *num, struct dirent *dirent, size_t bufsize) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -861,7 +861,7 @@ udf_read_attrdir(void *_ns, void *node, void *_cookie, long *num, struct dirent int udf_remove_attr(void *_ns, void *_node, const char *name) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s'\n",name)); RETURN(B_ERROR); } @@ -870,7 +870,7 @@ udf_remove_attr(void *_ns, void *_node, const char *name) int udf_rename_attr(void *ns, void *node, const char *oldname, const char *newname) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s',to: `%s'\n", oldname, newname)); RETURN(B_ERROR); } @@ -879,7 +879,7 @@ udf_rename_attr(void *ns, void *node, const char *oldname, const char *newname) int udf_stat_attr(void *ns, void *_node, const char *name, struct attr_info *attrInfo) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s'\n",name)); RETURN(B_ERROR); } @@ -889,7 +889,7 @@ int udf_write_attr(void *_ns, void *_node, const char *name, int type, const void *buffer, size_t *_length, off_t pos) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s'\n",name)); RETURN(B_ERROR); } @@ -899,7 +899,7 @@ int udf_read_attr(void *_ns, void *_node, const char *name, int type, void *buffer, size_t *_length, off_t pos) { - DEBUG_INIT(CF_ENTRY | CF_ATTRIBUTE_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -912,7 +912,7 @@ udf_read_attr(void *_ns, void *_node, const char *name, int type, void *buffer, int udf_open_indexdir(void *_ns, void **_cookie) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -920,7 +920,7 @@ udf_open_indexdir(void *_ns, void **_cookie) int udf_close_indexdir(void *_ns, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -928,7 +928,7 @@ udf_close_indexdir(void *_ns, void *_cookie) int udf_free_indexdir_cookie(void *_ns, void *_node, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -936,7 +936,7 @@ udf_free_indexdir_cookie(void *_ns, void *_node, void *_cookie) int udf_rewind_indexdir(void *_ns, void *_cookie) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -944,7 +944,7 @@ udf_rewind_indexdir(void *_ns, void *_cookie) int udf_read_indexdir(void *_ns, void *_cookie, long *num, struct dirent *dirent, size_t bufferSize) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -952,7 +952,7 @@ udf_read_indexdir(void *_ns, void *_cookie, long *num, struct dirent *dirent, si int udf_create_index(void *_ns, const char *name, int type, int flags) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: `%s', type: %d, flags: %d\n", name, type, flags)); RETURN(B_ERROR); } @@ -961,7 +961,7 @@ udf_create_index(void *_ns, const char *name, int type, int flags) int udf_remove_index(void *_ns, const char *name) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -969,7 +969,7 @@ udf_remove_index(void *_ns, const char *name) int udf_rename_index(void *ns, const char *oldname, const char *newname) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("from: %s, to: %s\n", oldname, newname)); RETURN(B_ERROR); } @@ -978,7 +978,7 @@ udf_rename_index(void *ns, const char *oldname, const char *newname) int udf_stat_index(void *_ns, const char *name, struct index_info *indexInfo) { - DEBUG_INIT(CF_ENTRY | CF_INDEX_OPS, NULL); + DEBUG_INIT(NULL); // FUNCTION_START(("name: %s\n",name)); RETURN(B_ERROR); } @@ -991,7 +991,7 @@ int udf_open_query(void *_ns, const char *queryString, ulong flags, port_id port, long token, void **cookie) { - DEBUG_INIT(CF_ENTRY | CF_QUERY_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -999,7 +999,7 @@ udf_open_query(void *_ns, const char *queryString, ulong flags, port_id port, int udf_close_query(void *ns, void *cookie) { - DEBUG_INIT(CF_ENTRY | CF_QUERY_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -1007,7 +1007,7 @@ udf_close_query(void *ns, void *cookie) int udf_free_query_cookie(void *ns, void *node, void *cookie) { - DEBUG_INIT(CF_ENTRY | CF_QUERY_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } @@ -1015,7 +1015,7 @@ udf_free_query_cookie(void *ns, void *node, void *cookie) int udf_read_query(void *ns, void *cookie, long *num, struct dirent *dirent, size_t bufferSize) { - DEBUG_INIT(CF_ENTRY | CF_QUERY_OPS, NULL); + DEBUG_INIT(NULL); RETURN(B_ERROR); } diff --git a/src/apps/bin/makeudfimage/Debug.cpp b/src/apps/bin/makeudfimage/Debug.cpp deleted file mode 100644 index 2f04a78164..0000000000 --- a/src/apps/bin/makeudfimage/Debug.cpp +++ /dev/null @@ -1,329 +0,0 @@ -//---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered -// by the OpenBeOS license. -// -// This version copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net -// Initial version copyright (c) 2002 Axel Dörfler, axeld@pinc-software.de -//---------------------------------------------------------------------- - -/*! \file Debug.cpp - - Support code for handy debugging macros. -*/ - -#include "Debug.h" - -#include -#include - -//---------------------------------------------------------------------- -// Long-winded overview of the debug output macros: -//---------------------------------------------------------------------- -/*! \def DEBUG_INIT() - \brief Increases the indentation level, prints out the enclosing function's - name, and creates a \c DebugHelper object on the stack to automatically - decrease the indentation level upon function exit. - - This macro should be called at the very beginning of any function in - which you wish to use any of the other debugging macros. - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def PRINT(x) - \brief Prints out the enclosing function's name followed by the contents - of \a x at the current indentation level. - - \param x A printf-style format string enclosed in an extra set of parenteses, - e.g. PRINT(("%d\n", 0)); - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def LPRINT(x) - \brief Identical to \c PRINT(x), except that the line number in the source - file at which the macro is invoked is also printed. - - \param x A printf-style format string enclosed in an extra set of parenteses, - e.g. PRINT(("%d\n", 0)); - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def SIMPLE_PRINT(x) - \brief Directly prints the contents of \a x with no extra formatting or - information included (just like a straight \c printf() call). - - \param x A printf-style format string enclosed in an extra set of parenteses, - e.g. PRINT(("%d\n", 0)); - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def PRINT_INDENT() - \brief Prints out enough indentation characters to indent the current line - to the current indentation level (assuming the cursor was flush left to - begin with...). - - This function is called by the other \c *PRINT* macros, and isn't really - intended for general consumption, but you might find it useful. - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def REPORT_ERROR(error) - \brief Calls \c LPRINT(x) with a format string listing the error - code in \c error (assumed to be a \c status_t value) and the - corresponding text error code returned by a call to \c strerror(). - - This function is called by the \c RETURN* macros, and isn't really - intended for general consumption, but you might find it useful. - - \param error A \c status_t error code to report. - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def RETURN_ERROR(error) - \brief Calls \c REPORT_ERROR(error) if error is a an error code (i.e. - negative), otherwise remains silent. In either case, the enclosing - function is then exited with a call to \c "return error;". - - \param error A \c status_t error code to report (if negative) and return. - - If DEBUG is undefined, silently returns the value in \c error. -*/ -//---------------------------------------------------------------------- -/*! \def RETURN(error) - \brief Prints out a description of the error code being returned - (which, in this case, may be either "erroneous" or "successful") - and then exits the enclosing function with a call to \c "return error;". - - \param error A \c status_t error code to report and return. - - If DEBUG is undefined, silently returns the value in \c error. -*/ -//---------------------------------------------------------------------- -/*! \def FATAL(x) - \brief Prints out a fatal error message. - - This one's still a work in progress... - - \param x A printf-style format string enclosed in an extra set of parenteses, - e.g. PRINT(("%d\n", 0)); - - If DEBUG is undefined, does nothing. -*/ -//---------------------------------------------------------------------- -/*! \def INFORM(x) - \brief Directly prints the contents of \a x with no extra formatting or - information included (just like a straight \c printf() call). Does so - whether \c DEBUG is defined or not. - - \param x A printf-style format string enclosed in an extra set of parenteses, - e.g. PRINT(("%d\n", 0)); - - I'll say it again: Prints its output regardless to DEBUG being defined or - undefined. -*/ -//---------------------------------------------------------------------- -/*! \def DBG(x) - \brief If debug is defined, \a x is passed along to the code and - executed unmodified. If \c DEBUG is undefined, the contents of - \a x disappear into the ether. - - \param x Damn near anything resembling valid C\C++. -*/ -//---------------------------------------------------------------------- -/*! \def DIE(x) - \brief Drops the user into the appropriate debugger (user or kernel) - after printing out the handy message bundled in the parenthesee - enclosed printf-style format string found in \a x. - - \param x A printf-style format string enclosed in an extra set of parenteses, - e.g. PRINT(("%d\n", 0)); -*/ - - -//---------------------------------------------------------------------- -// declarations -//---------------------------------------------------------------------- - -static void indent(uint8 tabCount); -static void unindent(uint8 tabCount); -static int32 get_tls_handle(); - -//! Used to keep the tls handle from being allocated more than once. -vint32 tls_spinlock = 0; - -/*! \brief Used to flag whether the tls handle has been allocated yet. - - Not sure if this really needs to be \c volatile or not... -*/ -volatile bool tls_handle_initialized = false; - -//! The tls handle of the tls var used to store indentation info. -int32 tls_handle = 0; - -//---------------------------------------------------------------------- -// public functions -//---------------------------------------------------------------------- - -/*! \brief Returns the current debug indentation level for the - current thread. - - NOTE: indentation is currently unsupported for R5::kernelland due - to lack of thread local storage support. -*/ -int32 -_get_debug_indent_level() -{ - return (int32)tls_get(get_tls_handle()); -} - -//---------------------------------------------------------------------- -// static functions -//---------------------------------------------------------------------- - -/*! \brief Increases the current debug indentation level for - the current thread by 1. -*/ -void -indent(uint8 tabCount) -{ - tls_set(get_tls_handle(), (void*)(_get_debug_indent_level()+tabCount)); -} - -/*! \brief Decreases the current debug indentation level for - the current thread by 1. -*/ -void -unindent(uint8 tabCount) -{ - tls_set(get_tls_handle(), (void*)(_get_debug_indent_level()-tabCount)); -} - -/*! \brief Returns the thread local storage handle used to store - indentation information, allocating the handle first if - necessary. -*/ -int32 -get_tls_handle() -{ - // Init the tls handle if this is the first call. - if (!tls_handle_initialized) { - if (atomic_or(&tls_spinlock, 1) == 0) { - // First one in gets to init - tls_handle = tls_allocate(); - tls_handle_initialized = true; - atomic_and(&tls_spinlock, 0); - } else { - // All others must wait patiently - while (!tls_handle_initialized) { - snooze(1); - } - } - } - return tls_handle; -} - -/*! \brief Helper class for initializing the debugging output - file. - - Note that this hummer isn't threadsafe, but it doesn't really - matter for our concerns, since the worst it'll result in is - a dangling file descriptor, and that would be in the case of - two or more volumes being mounted almost simultaneously... - not too big of a worry. -*/ -class DebugOutputFile { -public: - DebugOutputFile(const char *filename = NULL) - : fFile(-1) - { - Init(filename); - } - - ~DebugOutputFile() { - if (fFile >= 0) - close(fFile); - } - - void Init(const char *filename) { - if (fFile < 0 && filename) - fFile = open(filename, O_RDWR | O_CREAT | O_TRUNC); - } - - int File() const { return fFile; } -private: - int fFile; -}; - -DebugOutputFile *out = NULL; - -/*! \brief It doesn't appear that the constructor for the global - \c out variable is called when built as an R5 filesystem add-on, - so this function needs to be called in udf_mount to let the - magic happen. -*/ -void initialize_debugger(const char *filename) -{ -#if DEBUG_TO_FILE - if (!out) { - out = new DebugOutputFile(filename); - dbg_printf("out was NULL!\n"); - } else { - DebugOutputFile *temp = out; - out = new DebugOutputFile(filename); - dbg_printf("out was %p!\n", temp); - } -#endif -} - -// dbg_printf, stolen from Ingo's ReiserFS::Debug.cpp. -void -dbg_printf(const char *format,...) -{ -#if DEBUG_TO_FILE - if (!out) - return; - - char buffer[1024]; - va_list args; - va_start(args, format); - // no vsnprintf() on PPC - #if defined(__INTEL__) - vsnprintf(buffer, sizeof(buffer) - 1, format, args); - #endif - va_end(args); - buffer[sizeof(buffer) - 1] = '\0'; - write(out->File(), buffer, strlen(buffer)); -#endif -} - -//---------------------------------------------------------------------- -// DebugHelper -//---------------------------------------------------------------------- - -/*! \brief Increases the current indentation level. -*/ -DebugHelper::DebugHelper(const char *className, uint8 tabCount) - : fTabCount(tabCount) - , fClassName(NULL) -{ - indent(fTabCount); - if (className) { - fClassName = (char*)malloc(strlen(className)+1); - if (fClassName) - strcpy(fClassName, className); - } -} - -/*! \brief Decreases the current indentation level. -*/ -DebugHelper::~DebugHelper() -{ - unindent(fTabCount); - free(fClassName); -} - diff --git a/src/apps/bin/makeudfimage/Debug.h b/src/apps/bin/makeudfimage/Debug.h deleted file mode 100644 index 1b3c890414..0000000000 --- a/src/apps/bin/makeudfimage/Debug.h +++ /dev/null @@ -1,227 +0,0 @@ -//---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered -// by the OpenBeOS license. -// -// This version copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net -// Initial version copyright (c) 2002 Axel Dörfler, axeld@pinc-software.de -// dbg_printf() function copyright (c) 2003 Ingo Weinhold, bonefish@cs.tu-berlin.edu -//---------------------------------------------------------------------- -#ifndef MY_DEBUG_H -#define MY_DEBUG_H - -/*! \file Debug.h - - Handy debugging macros. -*/ - -#include - -#include -#ifdef DEBUG -# include -#endif -#include - -#define DEBUG_TO_FILE 0 - -#if DEBUG_TO_FILE -# include -# include -# define __out dbg_printf - void dbg_printf(const char *format,...); - void initialize_debugger(const char *filename); -#else -# include -# include -# define __out printf -#endif - -class DebugHelper; - -int32 _get_debug_indent_level(); - -/*! \brief Helper class that is allocated on the stack by - the \c DEBUG_INIT() macro. On creation, it increases the - current indentation level by the amount specified via its - constructor's \c tabCount parameter; on destruction, it - decreases it. -*/ -class DebugHelper -{ -public: - DebugHelper(const char *className = NULL, uint8 tabCount = 1); - ~DebugHelper(); - - uint8 TabCount() const { return fTabCount; } - const char* ClassName() const { return fClassName; } - -private: - uint8 fTabCount; - char *fClassName; -}; - -//---------------------------------------------------------------------- -// NOTE: See Debug.cpp for complete descriptions of the following -// debug macros. -//---------------------------------------------------------------------- - - -//---------------------------------------------------------------------- -// DEBUG-independent macros -//---------------------------------------------------------------------- -#define INFORM(x) { __out("mkudf: "); __out x; } -#ifdef USER -# define DIE(x) debugger x -#else -# define DIE(x) kernel_debugger x -#endif - -//---------------------------------------------------------------------- -// DEBUG-dependent macros -//---------------------------------------------------------------------- -#ifdef DEBUG - #if DEBUG_TO_FILE - #define INITIALIZE_DEBUGGING_OUTPUT_FILE(filename) initialize_debugger(filename); - #else - #define INITIALIZE_DEBUGGING_OUTPUT_FILE(filename) ; - #endif - - #define DEBUG_INIT_SILENT(className) \ - DebugHelper _debugHelper(className, 2); - - #define DEBUG_INIT(className) \ - DEBUG_INIT_SILENT(className); \ - PRINT(("\n")); - - #define DEBUG_INIT_ETC(className, arguments) \ - DEBUG_INIT_SILENT(className) \ - { \ - PRINT_INDENT(); \ - if (_debugHelper.ClassName()) { \ - __out("mkudf: %s::%s(", \ - _debugHelper.ClassName(), __FUNCTION__); \ - } else { \ - __out("mkudf: %s(", __FUNCTION__); \ - } \ - __out arguments; \ - __out("):\n"); \ - } - - #define DUMP_INIT(categoryFlags, className) \ - DEBUG_INIT_SILENT(className); - - #define PRINT(x) { \ - { \ - PRINT_INDENT(); \ - if (_debugHelper.ClassName()) { \ - __out("mkudf: %s::%s(): ", \ - _debugHelper.ClassName(), __FUNCTION__); \ - } else { \ - __out("mkudf: %s(): ", __FUNCTION__); \ - } \ - __out x; \ - } \ - } - - #define LPRINT(x) { \ - { \ - PRINT_INDENT(); \ - if (_debugHelper.ClassName()) { \ - __out("mkudf: %s::%s(): line %d: ", \ - _debugHelper.ClassName(), __FUNCTION__, __LINE__); \ - } else { \ - __out("mkudf: %s(): line %d: ", \ - __FUNCTION__, __LINE__); \ - } \ - __out x; \ - } \ - } - - #define SIMPLE_PRINT(x) { \ - { \ - __out x; \ - } \ - } - - #define PRINT_INDENT() { \ - { \ - int32 _level = _get_debug_indent_level(); \ - for (int32 i = 0; i < _level-_debugHelper.TabCount(); i++) { \ - __out(" "); \ - } \ - } \ - } - - #define PRINT_DIVIDER() \ - PRINT_INDENT(); \ - SIMPLE_PRINT(("------------------------------------------------------------\n")); - - #define DUMP(object) \ - { \ - (object).dump(); \ - } - - #define PDUMP(objectPointer) \ - { \ - (objectPointer)->dump(); \ - } - - #define REPORT_ERROR(error) { \ - LPRINT(("returning error 0x%lx, `%s'\n", error, strerror(error))); \ - } - - #define RETURN_ERROR(error) { \ - status_t _status = error; \ - if (_status < (status_t)B_OK) \ - REPORT_ERROR(_status); \ - return _status; \ - } - - #define RETURN(error) { \ - status_t _status = error; \ - if (_status < (status_t)B_OK) { \ - REPORT_ERROR(_status); \ - } else if (_status == (status_t)B_OK) { \ - LPRINT(("returning B_OK\n")); \ - } else { \ - LPRINT(("returning 0x%lx = %ld\n", _status, _status)); \ - } \ - return _status; \ - } - - #define FATAL(x) { \ - PRINT(("fatal error: ")); SIMPLE_PRINT(x); \ - } - - #define DBG(x) x ; - -#else // ifdef DEBUG - #define INITIALIZE_DEBUGGING_OUTPUT_FILE(filename) ; - #define DEBUG_INIT_SILENT(className) ; - #define DEBUG_INIT(className) ; - #define DEBUG_INIT_ETC(className, arguments) ; - #define DUMP_INIT(className) ; - #define PRINT(x) ; - #define LPRINT(x) ; - #define SIMPLE_PRINT(x) ; - #define PRINT_INDENT(x) ; - #define PRINT_DIVIDER() ; - #define DUMP(object) ; - #define PDUMP(objectPointer) ; - #define REPORT_ERROR(status) ; - #define RETURN_ERROR(status) return status; - #define RETURN(status) return status; - #define FATAL(x) { __out("mkudf: fatal error: "); __out x; } - #define DBG(x) ; - #define DUMP(x) ; -#endif // ifdef DEBUG else - -#define TRACE(x) DBG(dprintf x) - -// These macros turn on or off extensive and generally unnecessary -// debugging output regarding table of contents parsing -//#define WARN(x) (dprintf x) -//#define WARN(x) -#define WARN(x) DBG(dprintf x) - -#endif // MY_DEBUG_H diff --git a/src/apps/bin/makeudfimage/Jamfile b/src/apps/bin/makeudfimage/Jamfile index 499875def9..b0c60ad7d6 100644 --- a/src/apps/bin/makeudfimage/Jamfile +++ b/src/apps/bin/makeudfimage/Jamfile @@ -13,18 +13,19 @@ BinCommand makeudfimage : makeudfimage.cpp Allocator.cpp ConsoleListener.cpp - Debug.cpp Shell.cpp UdfBuilder.cpp # Common Udf source files CS0String.cpp + UdfDebug.cpp UdfStructures.cpp + Utils.cpp : stdc++.r4 ; -SEARCH on [ FGristFiles CS0String.cpp UdfStructures.cpp ] +SEARCH on [ FGristFiles CS0String.cpp UdfDebug.cpp UdfStructures.cpp Utils.cpp ] = [ FDirName $(OBOS_TOP) src add-ons kernel file_systems udf ] ; diff --git a/src/apps/bin/makeudfimage/Shell.cpp b/src/apps/bin/makeudfimage/Shell.cpp index 88f5b02f17..0758df8d43 100644 --- a/src/apps/bin/makeudfimage/Shell.cpp +++ b/src/apps/bin/makeudfimage/Shell.cpp @@ -15,7 +15,7 @@ #include #include "ConsoleListener.h" -#include "Debug.h" +#include "UdfDebug.h" #include "UdfBuilder.h" Shell::Shell() diff --git a/src/apps/bin/makeudfimage/UdfBuilder.cpp b/src/apps/bin/makeudfimage/UdfBuilder.cpp index 64ac20f755..331de14045 100644 --- a/src/apps/bin/makeudfimage/UdfBuilder.cpp +++ b/src/apps/bin/makeudfimage/UdfBuilder.cpp @@ -14,7 +14,7 @@ #include -#include "Debug.h" +#include "UdfDebug.h" UdfBuilder::UdfBuilder(const ProgressListener &listener) : fListener(listener)