Logo Search packages:      
Sourcecode: xbox-raincoat version File versions  Download package

BootFlash.h

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

 /* 2003-01-06  andy@warmcat.com  Created
 */
 
 // header for BootFlash.c

// callback events
// note that if you receive *_START, you will always receive *_END even if an error is detected

 typedef enum {
      EE_ERASE_START=1,
      EE_ERASE_UPDATE,  // dwPos runs from 0 to dwExtent-1
      EE_ERASE_END,
      EE_ERASE_ERROR,  // dwPos indicates error offset from start of flash
      EE_PROGRAM_START,
      EE_PROGRAM_UPDATE,  // dwPos runs from 0 to dwExtent-1
      EE_PROGRAM_END,
      EE_PROGRAM_ERROR,  // dwPos indicates error offset from start of flash, b7..b0 = read data, b15..b8 = written data
      EE_VERIFY_START,
      EE_VERIFY_UPDATE,  // dwPos runs from 0 to dwExtent-1
      EE_VERIFY_END,
      EE_VERIFY_ERROR  // dwPos indicates error offset from start of flash, b7..b0 = read data, b15..b8 = written data
 } ENUM_EVENTS;

      // callback typedef
typedef bool (*CALLBACK_FLASH)(void * pvoidObjectFlash, ENUM_EVENTS ee, DWORD dwPos, DWORD dwExtent);

 typedef struct {

      volatile BYTE * volatile m_pbMemoryMappedStartAddress; // fill on entry
      BYTE m_bManufacturerId;
      BYTE m_bDeviceId;
      char m_szFlashDescription[256];
      char m_szAdditionalErrorInfo[256];
      DWORD m_dwLengthInBytes;
      DWORD m_dwStartOffset;
      DWORD m_dwLengthUsedArea;
      CALLBACK_FLASH m_pcallbackFlash;
      bool m_fDetectedUsing28xxxConventions;
      bool m_fIsBelievedCapableOfWriteAndErase;

 } OBJECT_FLASH;


typedef struct {

      BYTE m_bManufacturerId;
      BYTE m_bDeviceId;
      char m_szFlashDescription[32];
      DWORD m_dwLengthInBytes;

} KNOWN_FLASH_TYPE;

      // requires pof->m_pbMemoryMappedStartAddress set to start address of flash in memory on entry

bool BootFlashGetDescriptor( OBJECT_FLASH *pof, KNOWN_FLASH_TYPE * pkft );
bool BootFlashEraseMinimalRegion( OBJECT_FLASH *pof);
bool BootFlashProgram( OBJECT_FLASH *pof, BYTE *pba );


Generated by  Doxygen 1.6.0   Back to index