]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/hfs/hfscommon/headers/CatalogPrivate.h
xnu-1504.9.17.tar.gz
[apple/xnu.git] / bsd / hfs / hfscommon / headers / CatalogPrivate.h
index f5ae41fe837703a8c9cdd7457a254a66e7f52fb2..bd3f00ddd6cc70f2c100fdf222b49e3a9e820ce2 100644 (file)
@@ -1,16 +1,19 @@
 /*
 /*
- * Copyright (c) 2000, 2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
  *
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
        File:           CatalogPrivate.h
  */
 /*
        File:           CatalogPrivate.h
 #include       "FileMgrInternal.h"
 #include       "BTreesInternal.h"
 
 #include       "FileMgrInternal.h"
 #include       "BTreesInternal.h"
 
-       #include <sys/lock.h>
-
-// private catalog data cache
-
-
-
-enum {
-       kCatalogIteratorCount = 16              // total number of Catalog iterators (shared by all HFS/HFS Plus volumes)
-};
-
-
-// Catalog Iterator Name Types
-enum {
-       kShortPascalName,
-       kShortUnicodeName,
-       kLongUnicodeName        // non-local name
-};
-
-
-// short unicode name (used by CatalogIterator)
-struct UniStr63 {
-       UInt16          length;                 /* number of unicode characters */
-       UniChar         unicode[63];            /* unicode characters */
-};
-typedef struct UniStr63 UniStr63;
-
-
-struct CatalogIterator
-{
-       struct CatalogIterator *nextMRU;        // next iterator in MRU order
-       struct CatalogIterator *nextLRU;        // next iterator in LRU order
-
-       ExtendedVCB             *volume;
-       SInt16                  currentIndex;
-       SInt16                  reserved;
-       UInt32                  currentOffset;
-       UInt32                  nextOffset;
-       HFSCatalogNodeID        folderID;
-
-       UInt32                  btreeNodeHint;  // node the key was last seen in
-       UInt16                  btreeIndexHint; // index the key was last seen at
-       UInt16                  nameType;       // { 0 = Pascal, 1 = Unicode, 3 = long name}
-       HFSCatalogNodeID        parentID;       // parent folder ID
-       union
-       {
-               Str31           pascalName;
-               UniStr63        unicodeName;
-               HFSUniStr255 *  longNamePtr;
-       } folderName;
-
-       struct lock__bsd__      iterator_lock;
-};
-typedef struct CatalogIterator CatalogIterator;
-
-
-struct CatalogCacheGlobals {
-       UInt32                  iteratorCount;  // Number of iterators in cache
-       CatalogIterator *       mru;
-       CatalogIterator *       lru;
-       UInt32                  reserved;
-       HFSUniStr255            longName;       // used by a single kLongUnicodeName iterator
-
-       simple_lock_data_t      simplelock;
-};
-typedef struct CatalogCacheGlobals CatalogCacheGlobals;
-
-
 //
 // Private Catalog Manager Routines (for use only by Catalog Manager, CatSearch and FileID Services)
 //
 
 
 //
 // Private Catalog Manager Routines (for use only by Catalog Manager, CatSearch and FileID Services)
 //
 
 
-extern OSErr   LocateCatalogNode(      const ExtendedVCB *volume, HFSCatalogNodeID folderID, const CatalogName *name,
-                                                                       UInt32 hint, CatalogKey *key, CatalogRecord *data, UInt32 *newHint);
-
-extern OSErr   LocateCatalogNodeByKey ( const ExtendedVCB *volume, UInt32 hint, CatalogKey *keyPtr,
-                                                                                CatalogRecord *dataPtr, UInt32 *newHint );
+extern OSErr   LocateCatalogNodeByKey ( const ExtendedVCB *volume, u_int32_t hint, CatalogKey *keyPtr,
+                                                                                CatalogRecord *dataPtr, u_int32_t *newHint );
 
 extern OSErr   LocateCatalogRecord( const ExtendedVCB *volume, HFSCatalogNodeID folderID, const CatalogName *name,
 
 extern OSErr   LocateCatalogRecord( const ExtendedVCB *volume, HFSCatalogNodeID folderID, const CatalogName *name,
-                                                                        UInt32 hint, CatalogKey *keyPtr, CatalogRecord *dataPtr, UInt32 *newHint);
+                                                                        u_int32_t hint, CatalogKey *keyPtr, CatalogRecord *dataPtr, u_int32_t *newHint);
 
 extern OSErr   LocateCatalogNodeWithRetry ( const ExtendedVCB *volume, HFSCatalogNodeID folderID, ConstStr31Param pascalName,
 
 extern OSErr   LocateCatalogNodeWithRetry ( const ExtendedVCB *volume, HFSCatalogNodeID folderID, ConstStr31Param pascalName,
-                                                                                        CatalogName *unicodeName, UInt32 hint, CatalogKey *keyPtr, CatalogRecord *dataPtr,
-                                                                                        UInt32 *newHint );
+                                                                                        CatalogName *unicodeName, u_int32_t hint, CatalogKey *keyPtr, CatalogRecord *dataPtr,
+                                                                                        u_int32_t *newHint );
 extern OSErr   FlushCatalog( ExtendedVCB *volume);
 
 
 extern OSErr   FlushCatalog( ExtendedVCB *volume);
 
 
@@ -175,8 +108,8 @@ extern void         ConvertInputNameToUnicode(ConstStr31Param name, TextEncoding encodi
 extern void    BuildCatalogKey( HFSCatalogNodeID parentID, const CatalogName *name, Boolean isHFSPlus,
                                                                 CatalogKey *key);
 
 extern void    BuildCatalogKey( HFSCatalogNodeID parentID, const CatalogName *name, Boolean isHFSPlus,
                                                                 CatalogKey *key);
 
-extern OSErr   BuildCatalogKeyUTF8(ExtendedVCB *volume, HFSCatalogNodeID parentID, const char *name,
-                                   UInt32 length, CatalogKey *key, UInt32 *textEncoding);
+extern OSErr   BuildCatalogKeyUTF8(ExtendedVCB *volume, HFSCatalogNodeID parentID, const unsigned char *name,
+                                   u_int32_t length, CatalogKey *key, u_int32_t *textEncoding);
 
 extern void            CopyCatalogName( const CatalogName *srcName, CatalogName *dstName, Boolean isHFSPLus);
 
 
 extern void            CopyCatalogName( const CatalogName *srcName, CatalogName *dstName, Boolean isHFSPLus);
 
@@ -191,21 +124,6 @@ extern OSErr       ExchangeFiles( FIDParam *filePB, WDCBRecPtr *wdcbPtr );
 extern void    UpdateCatalogName( ConstStr31Param srcName, Str31 destName );
 
 
 extern void    UpdateCatalogName( ConstStr31Param srcName, Str31 destName );
 
 
-// Catalog Iterator Routines
-
-extern CatalogIterator* GetCatalogIterator(ExtendedVCB *volume, HFSCatalogNodeID folderID, UInt32 offset);
-
-extern OSErr   ReleaseCatalogIterator( CatalogIterator *catalogIterator );
-
-extern void            TrashCatalogIterator( const ExtendedVCB *volume, HFSCatalogNodeID folderID );
-
-void                   AgeCatalogIterator( CatalogIterator *catalogIterator );
-
-extern void            UpdateBtreeIterator( const CatalogIterator *catalogIterator, BTreeIterator *btreeIterator );
-
-extern void            UpdateCatalogIterator( const BTreeIterator *btreeIterator, CatalogIterator *catalogIterator );
-
-
 #endif /* __APPLE_API_PRIVATE */
 #endif /* KERNEL */
 #endif //__CATALOGPRIVATE__
 #endif /* __APPLE_API_PRIVATE */
 #endif /* KERNEL */
 #endif //__CATALOGPRIVATE__