82 lines
2.2 KiB
C
82 lines
2.2 KiB
C
|
/******************************************************************************
|
||
|
*
|
||
|
* Copyright (c) 1999 Microsoft Corporation
|
||
|
*
|
||
|
* Module Name:
|
||
|
* Blob.h
|
||
|
*
|
||
|
* Abstract:
|
||
|
* This file blob related definitions for ring0 / ring3
|
||
|
*
|
||
|
* Revision History:
|
||
|
* Kanwaljit S Marok ( kmarok ) 05/17/99
|
||
|
* created
|
||
|
*
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#ifndef _BLOB_H_
|
||
|
#define _BLOB_H_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#define BLOB_VERSION_NUM 3 // Version 3 for Whistler
|
||
|
#define BLOB_MAGIC_NUM 12345 // Magic number
|
||
|
|
||
|
enum BLOB_TYPE
|
||
|
{
|
||
|
BLOB_TYPE_CONFIG = 0, // Config blob may contain other blobs
|
||
|
BLOB_TYPE_PATHTREE = 1, // Path tree blob
|
||
|
BLOB_TYPE_HASHLIST = 2, // Hashed list blob
|
||
|
BLOB_TYPE_CONTAINER= 3, // Container for other blobs
|
||
|
};
|
||
|
|
||
|
typedef struct _BLOB_HEADER
|
||
|
{
|
||
|
DWORD m_dwMaxSize ;
|
||
|
DWORD m_dwVersion ;
|
||
|
DWORD m_dwBlbType ;
|
||
|
DWORD m_dwEntries ;
|
||
|
DWORD m_dwMagicNum;
|
||
|
} BlobHeader;
|
||
|
|
||
|
|
||
|
#ifndef __FILELIST_STRUCTS__
|
||
|
|
||
|
#define DEFINE_BLOB_HEADER() BlobHeader
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define DEFINE_BLOB_HEADER() BlobHeader m_BlobHeader
|
||
|
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Some convenience macros
|
||
|
//
|
||
|
|
||
|
#define INIT_BLOB_HEADER( pBlob, MaxSize, Version, BlbType, Entries ) \
|
||
|
((BlobHeader *)pBlob)->m_dwMaxSize = MaxSize; \
|
||
|
((BlobHeader *)pBlob)->m_dwVersion = Version; \
|
||
|
((BlobHeader *)pBlob)->m_dwBlbType = BlbType; \
|
||
|
((BlobHeader *)pBlob)->m_dwEntries = Entries; \
|
||
|
((BlobHeader *)pBlob)->m_dwMagicNum = BLOB_MAGIC_NUM;
|
||
|
|
||
|
#define BLOB_HEADER(pBlob) ( ((BlobHeader *)pBlob) )
|
||
|
#define BLOB_MAXSIZE(pBlob) ( ((BlobHeader *)pBlob)->m_dwMaxSize )
|
||
|
#define BLOB_VERSION(pBlob) ( ((BlobHeader *)pBlob)->m_dwVersion )
|
||
|
#define BLOB_BLBTYPE(pBlob) ( ((BlobHeader *)pBlob)->m_dwBlbType )
|
||
|
#define BLOB_ENTRIES(pBlob) ( ((BlobHeader *)pBlob)->m_dwEntries )
|
||
|
#define BLOB_MAGIC(pBlob) ( ((BlobHeader *)pBlob)->m_dwMagicNum )
|
||
|
|
||
|
#define VERIFY_BLOB_VERSION(pBlob) (BLOB_VERSION(pBlob) == BLOB_VERSION_NUM)
|
||
|
#define VERIFY_BLOB_MAGIC(pBlob) (BLOB_MAGIC(pBlob) == BLOB_MAGIC_NUM )
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // _BLOB_H_
|
||
|
|