rem: DEBUG_INIT_ETC(CF_ENTRY | CF_DIRECTORY_OPS, NULL,
add: DEBUG_INIT_ETC(NULL,
context: 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,		       ("dir: %p, iterator: %p, bufferSize: %ld", node, cookie, bufferSize));		       	if (!ns || !node || !cookie || !num || bufferSize < sizeof(dirent))		RETURN(B_BAD_VALUE);			Udf::Volume *volume = reinterpret_cast<Udf::Volume*>(ns);		Udf::Icb *dir = reinterpret_cast<Udf::Icb*>(node);	Udf::DirectoryIterator *iterator = reinterpret_cast<Udf::DirectoryIterator*>(cookie);		if (dir != iterator->Parent()) {		PRINT(("Icb does not match parent Icb of given DirectoryIterator! (iterator->Parent = %p)\n",		       iterator->Parent()));		return B_BAD_VALUE;	}		uint32 nameLength = bufferSize - sizeof(dirent) + 1;		status_t error = iterator->GetNextEntry(dirent->d_name, &nameLength, &(dirent->d_ino));	if (!error) {		*num = 1;		dirent->d_dev = volume->Id();		dirent->d_reclen = sizeof(dirent) + nameLength - 1;	} else {		*num = 0;		// Clear the error for end of directory		if (error == B_ENTRY_NOT_FOUND)			error = B_OK;	}		RETURN(error);}