]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/storage/IOApplePartitionScheme.h
xnu-201.tar.gz
[apple/xnu.git] / iokit / IOKit / storage / IOApplePartitionScheme.h
diff --git a/iokit/IOKit/storage/IOApplePartitionScheme.h b/iokit/IOKit/storage/IOApplePartitionScheme.h
deleted file mode 100644 (file)
index 46140bd..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
- */
-
-#ifndef _IOAPPLEPARTITIONSCHEME_H
-#define _IOAPPLEPARTITIONSCHEME_H
-
-#include <IOKit/IOTypes.h>
-
-/*
- * Apple Partition Map Definitions
- */
-
-#pragma pack(2)     /* (enable 16-bit struct packing for dpme, DDMap, Block0) */
-
-/* Structure constants. */
-
-#define DPISTRLEN 32
-
-/* Partition map entry, as found in blocks 1 to dpme_map_entries of the disk. */
-
-typedef struct dpme
-{
-    UInt16  dpme_signature;       /* (unique value for partition entry, 'PM') */
-    UInt16  dpme_reserved_1;      /* (reserved for future use)                */
-    UInt32  dpme_map_entries;     /* (number of partition entries)            */
-    UInt32  dpme_pblock_start;    /* (physical block start of partition)      */
-    UInt32  dpme_pblocks;         /* (physical block count of partition)      */
-    char    dpme_name[DPISTRLEN]; /* (name of partition)                      */
-    char    dpme_type[DPISTRLEN]; /* (type of partition, eg. Apple_HFS)       */
-    UInt32  dpme_lblock_start;    /* (logical block start of partition)       */
-    UInt32  dpme_lblocks;         /* (logical block count of partition)       */
-    UInt32  dpme_flags;           /* (partition flags, see defines below)     */
-    UInt32  dpme_boot_block;      /* (logical block start of boot code)       */
-    UInt32  dpme_boot_bytes;      /* (byte count of boot code)                */
-    UInt8 * dpme_load_addr;       /* (load address in memory of boot code)    */
-    UInt8 * dpme_load_addr_2;     /* (reserved for future use)                */
-    UInt8 * dpme_goto_addr;       /* (jump address in memory of boot code)    */
-    UInt8 * dpme_goto_addr_2;     /* (reserved for future use)                */
-    UInt32  dpme_checksum;        /* (checksum of boot code)                  */
-    UInt8   dpme_process_id[16];  /* (processor type)                         */
-    UInt32  dpme_reserved_2[32];  /* (reserved for future use)                */
-    UInt32  dpme_reserved_3[62];  /* (reserved for future use)                */
-} DPME;
-
-/* Driver descriptor map entry. */
-
-typedef struct DDMap
-{
-    UInt32  ddBlock;              /* (driver's block start, sbBlkSize-blocks) */
-    UInt16  ddSize;               /* (driver's block count, 512-blocks)       */
-    UInt16  ddType;               /* (driver's system type)                   */
-} DDMap;
-
-/* Driver descriptor map, as found in block zero of the disk. */
-
-typedef struct Block0
-{
-    UInt16  sbSig;                     /* (unique value for block zero, 'ER') */
-    UInt16  sbBlkSize;                 /* (block size for this device)        */
-    UInt32  sbBlkCount;                /* (block count for this device)       */
-    UInt16  sbDevType;                 /* (device type)                       */
-    UInt16  sbDevId;                   /* (device id)                         */
-    UInt32  sbDrvrData;                /* (driver data)                       */
-    UInt16  sbDrvrCount;               /* (driver descriptor count)           */
-    DDMap   sbDrvrMap[8];              /* (driver descriptor table)           */
-    UInt8   sbReserved[430];           /* (reserved for future use)           */
-} Block0;
-
-/* Partition map signature (sbSig). */
-
-#define BLOCK0_SIGNATURE 0x4552
-
-/* Partition map entry signature (dpme_signature). */
-
-#define DPME_SIGNATURE 0x504D
-
-/* Partition map entry flags (dpme_flags). */
-
-#define DPME_FLAGS_VALID          0x00000001                   /* (bit 0)     */
-#define DPME_FLAGS_ALLOCATED      0x00000002                   /* (bit 1)     */
-#define DPME_FLAGS_IN_USE         0x00000004                   /* (bit 2)     */
-#define DPME_FLAGS_BOOTABLE       0x00000008                   /* (bit 3)     */
-#define DPME_FLAGS_READABLE       0x00000010                   /* (bit 4)     */
-#define DPME_FLAGS_WRITABLE       0x00000020                   /* (bit 5)     */
-#define DPME_FLAGS_OS_PIC_CODE    0x00000040                   /* (bit 6)     */
-#define DPME_FLAGS_OS_SPECIFIC_2  0x00000080                   /* (bit 7)     */
-#define DPME_FLAGS_OS_SPECIFIC_1  0x00000100                   /* (bit 8)     */
-#define DPME_FLAGS_RESERVED_2     0xFFFFFE00                   /* (bit 9..31) */
-
-#pragma options align=reset              /* (reset to default struct packing) */
-
-/*
- * Kernel
- */
-
-#if defined(KERNEL) && defined(__cplusplus)
-
-#include <IOKit/storage/IOPartitionScheme.h>
-
-/*
- * Class
- */
-
-class IOApplePartitionScheme : public IOPartitionScheme
-{
-    OSDeclareDefaultStructors(IOApplePartitionScheme);
-
-protected:
-
-    struct ExpansionData { /* */ };
-    ExpansionData * _expansionData;
-
-    OSSet * _partitions;    /* (set of media objects representing partitions) */
-
-    /*
-     * Free all of this object's outstanding resources.
-     */
-
-    virtual void free(void);
-
-    /*
-     * Scan the provider media for an Apple partition map.  Returns the set
-     * of media objects representing each of the partitions (the retain for
-     * the set is passed to the caller), or null should no partition map be
-     * found.  The default probe score can be adjusted up or down, based on
-     * the confidence of the scan.
-     */
-
-    virtual OSSet * scan(SInt32 * score);
-
-    /*
-     * Ask whether the given partition appears to be corrupt.  A partition that
-     * is corrupt will cause the failure of the Apple partition map recognition
-     * altogether.
-     */
-
-    virtual bool isPartitionCorrupt( dpme * partition,
-                                     UInt32 partitionID,
-                                     UInt32 partitionBlockSize );
-
-    /*
-     * Ask whether the given partition appears to be invalid.  A partition that
-     * is invalid will cause it to be skipped in the scan, but will not cause a
-     * failure of the Apple partition map recognition.
-     */
-
-    virtual bool isPartitionInvalid( dpme * partition,
-                                     UInt32 partitionID,
-                                     UInt32 partitionBlockSize );
-
-    /*
-     * Instantiate a new media object to represent the given partition.
-     */
-
-    virtual IOMedia * instantiateMediaObject( dpme * partition,
-                                              UInt32 partitionID,
-                                              UInt32 partitionBlockSize );
-
-    /*
-     * Allocate a new media object (called from instantiateMediaObject).
-     */
-
-    virtual IOMedia * instantiateDesiredMediaObject(
-                                                    dpme * partition,
-                                                    UInt32 partitionID,
-                                                    UInt32 partitionBlockSize );
-
-    /*
-     * Attach the given media object to the device tree plane.
-     */
-
-    virtual bool attachMediaObjectToDeviceTree(IOMedia * media);
-
-    /*
-     * Detach the given media object from the device tree plane.
-     */
-
-    virtual void detachMediaObjectFromDeviceTree(IOMedia * media);
-
-public:
-
-    /*
-     * Initialize this object's minimal state.
-     */
-
-    virtual bool init(OSDictionary * properties = 0);
-
-    /*
-     * Determine whether the provider media contains an Apple partition map.
-     */
-
-    virtual IOService * probe(IOService * provider, SInt32 * score);
-
-    /*
-     * Publish the new media objects which represent our partitions.
-     */
-
-    virtual bool start(IOService * provider);
-
-    /*
-     * Clean up after the media objects we published before terminating.
-     */
-
-    virtual void stop(IOService * provider);
-
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  0);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  1);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  2);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  3);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  4);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  5);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  6);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  7);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  8);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme,  9);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme, 10);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme, 11);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme, 12);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme, 13);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme, 14);
-    OSMetaClassDeclareReservedUnused(IOApplePartitionScheme, 15);
-};
-
-#endif /* defined(KERNEL) && defined(__cplusplus) */
-
-#endif /* !_IOAPPLEPARTITIONSCHEME_H */