text: /*
       File:       DiskInit.h
   
       Contains:   Disk Initialization Package ('PACK' 2) Interfaces.
   
       Version:    Technology: System 8.5
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1985-2001 by Apple Computer, Inc., all rights reserved
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  #ifndef __DISKINIT__
  #define __DISKINIT__
  
  #ifndef __MACTYPES__
  #include <MacTypes.h>
  #endif
  
  
  
  
  #if PRAGMA_ONCE
  #pragma once
  #endif
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  #if PRAGMA_IMPORT
  #pragma import on
  #endif
  
  #if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  #endif
  
  
  struct HFSDefaults {
      char                            sigWord[2];                 /* signature word */
      long                            abSize;                     /* allocation block size in bytes */
      long                            clpSize;                    /* clump size in bytes */
      long                            nxFreeFN;                   /* next free file number */
      long                            btClpSize;                  /* B-Tree clump size in bytes */
      short                           rsrv1;                      /* reserved */
      short                           rsrv2;                      /* reserved */
      short                           rsrv3;                      /* reserved */
  };
  typedef struct HFSDefaults              HFSDefaults;
  enum {
      kHFSPlusDefaultsVersion     = 1
  };
  
  
  struct HFSPlusDefaults {
      UInt16                          version;                    /* version of this structure */
      UInt16                          flags;                      /* currently undefined; pass zero */
      UInt32                          blockSize;                  /* allocation block size in bytes */
      UInt32                          rsrcClumpSize;              /* clump size for resource forks */
      UInt32                          dataClumpSize;              /* clump size for data forks */
      UInt32                          nextFreeFileID;             /* next free file number */
      UInt32                          catalogClumpSize;           /* clump size for catalog B-tree */
      UInt32                          catalogNodeSize;            /* node size for catalog B-tree */
      UInt32                          extentsClumpSize;           /* clump size for extents B-tree */
      UInt32                          extentsNodeSize;            /* node size for extents B-tree */
      UInt32                          attributesClumpSize;        /* clump size for attributes B-tree */
      UInt32                          attributesNodeSize;         /* node size for attributes B-tree */
      UInt32                          allocationClumpSize;        /* clump size for allocation bitmap file */
  };
  typedef struct HFSPlusDefaults          HFSPlusDefaults;
  #if CALL_NOT_IN_CARBON
  EXTERN_API( void )
  DILoad                          (void)                                                      THREEWORDINLINE(0x7002, 0x3F00, 0xA9E9);
  
  EXTERN_API( void )
  DIUnload                        (void)                                                      THREEWORDINLINE(0x7004, 0x3F00, 0xA9E9);
  
  EXTERN_API( short )
  DIBadMount                      (Point                  where,
                                   UInt32                 evtMessage)                         THREEWORDINLINE(0x7000, 0x3F00, 0xA9E9);
  
  EXTERN_API( OSErr )
  DIFormat                        (short                  drvNum)                             THREEWORDINLINE(0x7006, 0x3F00, 0xA9E9);
  
  EXTERN_API( OSErr )
  DIVerify                        (short                  drvNum)                             THREEWORDINLINE(0x7008, 0x3F00, 0xA9E9);
  
  EXTERN_API( OSErr )
  DIZero                          (short                  drvNum,
                                   ConstStr255Param       volName)                            THREEWORDINLINE(0x700A, 0x3F00, 0xA9E9);
  
  /*
      DIXFormat, DIXZero, and DIReformat are only available when FSM (File System Manager) is installed.
      FSM is part of Macintosh PC Exchange and System 7.5.
  */
  EXTERN_API( OSErr )
  DIXFormat                       (short                  drvNum,
                                   Boolean                fmtFlag,
                                   unsigned long          fmtArg,
                                   unsigned long *        actSize)                            THREEWORDINLINE(0x700C, 0x3F00, 0xA9E9);
  
  EXTERN_API( OSErr )
  DIXZero                         (short                  drvNum,
                                   ConstStr255Param       volName,
                                   short                  fsid,
                                   short                  mediaStatus,
                                   short                  volTypeSelector,
                                   unsigned long          volSize,
                                   void *                 extendedInfoPtr)                    THREEWORDINLINE(0x700E, 0x3F00, 0xA9E9);
  
  EXTERN_API( OSErr )
  DIReformat                      (short                  drvNum,
                                   short                  fsid,
                                   ConstStr255Param       volName,
                                   ConstStr255Param       msgText)                            THREEWORDINLINE(0x7010, 0x3F00, 0xA9E9);
  
  
  #endif  /* CALL_NOT_IN_CARBON */
  
  #if CALL_NOT_IN_CARBON
  EXTERN_API_C( OSErr )
  dibadmount                      (Point *                where,
                                   long                   evtMessage);
  
  EXTERN_API_C( OSErr )
  dizero                          (short                  drvnum,
                                   const char *           volName);
  
  #endif  /* CALL_NOT_IN_CARBON */
  
  
  
  #if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  #endif
  
  #ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  #endif
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* __DISKINIT__ */
  
  