diff --git a/src/add-ons/kernel/file_systems/udf/Utils.cpp b/src/add-ons/kernel/file_systems/udf/Utils.cpp new file mode 100644 index 0000000000..9be05cb516 --- /dev/null +++ b/src/add-ons/kernel/file_systems/udf/Utils.cpp @@ -0,0 +1,33 @@ +//---------------------------------------------------------------------- +// This software is part of the OpenBeOS distribution and is covered +// by the OpenBeOS license. +// +// Copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net +//--------------------------------------------------------------------- + +/*! \file Utils.cpp + + Miscellaneous Udf utility functions. +*/ + +#include "Utils.h" + +namespace Udf { + +udf_long_address +to_long_address(vnode_id id, uint32 length) +{ + udf_long_address result; + result.set_block(id & 0xffff00); + result.set_partition(id & 0xff); + result.set_length(length); + return result; +} + +vnode_id +to_vnode_id(udf_long_address address) +{ + return (address.block() << 16) & (address.partition()); +} + +} // namespace Udf diff --git a/src/add-ons/kernel/file_systems/udf/Utils.h b/src/add-ons/kernel/file_systems/udf/Utils.h new file mode 100644 index 0000000000..3bf5453377 --- /dev/null +++ b/src/add-ons/kernel/file_systems/udf/Utils.h @@ -0,0 +1,34 @@ +//---------------------------------------------------------------------- +// This software is part of the OpenBeOS distribution and is covered +// by the OpenBeOS license. +// +// Copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net +//--------------------------------------------------------------------- +#ifndef _UDF_UTILS_H +#define _UDF_UTILS_H + +/*! \file Utils.h + + Miscellaneous Udf utility functions. +*/ + +extern "C" { + #ifndef _IMPEXP_KERNEL + # define _IMPEXP_KERNEL + #endif + + #include +} + +#include "DiskStructures.h" + +namespace Udf { + +udf_long_address to_long_address(vnode_id id, uint32 length = 0); + +vnode_id to_vnode_id(udf_long_address address); + +} // namespace Udf + +#endif // _UDF_UTILS_H +