//--------------------------------------------------------------------------- // // Packet.h -- File contains the header for the Packet File class // //---------------------------------------------------------------------------// // Copyright (C) Microsoft Corporation. All rights reserved. // //===========================================================================// #ifndef PACKET_H #define PACKET_H //--------------------------------------------------------------------------- // Include Files #ifndef DPACKET_H #include "dpacket.h" #endif #ifndef FILE_H #include "file.h" #endif #ifndef LZ_H #include "lz.h" #endif //--------------------------------------------------------------------------- // Macro Definitions #define PACKET_FILE_VERSION 0xFEEDFACE #define NEW_PACKET_FLAG 0xFEEDFACE // 3 bits of type info #define STORAGE_TYPE_RAW 0x00L #define STORAGE_TYPE_FWF 0x01L // file within file #define STORAGE_TYPE_LZD 0x02L // LZ Compressed Packet #define STORAGE_TYPE_HF 0x03L // Huffman Compressed Packet #define STORAGE_TYPE_ZLIB 0x04L // zLib Compressed Packet #define STORAGE_TYPE_NUL 0x07L // NULL packet. #define TYPE_SHIFT 29 // Bit position of masked type #define DEFAULT_PACKET_TYPE STORAGE_TYPE_RAW #define ANY_PACKET_TYPE 0x07 #define OFFSET_MASK ((1L << TYPE_SHIFT) - 1L) #define GetPacketType(offset) (((unsigned long)offset)>>TYPE_SHIFT) #define GetPacketOffset(offset) (offset&OFFSET_MASK) #define SetPacketType(offset,type) ((offset)+(long(type)<