supports fixed location files. Some parts are salvaged from the pre-commit version (esp. stage and payload creation), others are completely rewritten (eg. the main loop that handles file addition) Also adapt newconfig (we don't need cbfs/tools anymore) and fix some minor issues in the cbfstool-README. Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4630 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
		
			
				
	
	
		
			37 lines
		
	
	
		
			779 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			779 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// Common/CRC.h
 | 
						|
 | 
						|
#ifndef __COMMON_CRC_H
 | 
						|
#define __COMMON_CRC_H
 | 
						|
 | 
						|
#include <stddef.h>
 | 
						|
#include "Types.h"
 | 
						|
 | 
						|
class CCRC
 | 
						|
{
 | 
						|
  UInt32 _value;
 | 
						|
public:
 | 
						|
	static UInt32 Table[256];
 | 
						|
	static void InitTable();
 | 
						|
 | 
						|
  CCRC():  _value(0xFFFFFFFF){};
 | 
						|
  void Init() { _value = 0xFFFFFFFF; }
 | 
						|
  void UpdateByte(Byte v);
 | 
						|
  void UpdateUInt16(UInt16 v);
 | 
						|
  void UpdateUInt32(UInt32 v);
 | 
						|
  void UpdateUInt64(UInt64 v);
 | 
						|
  void Update(const void *data, size_t size);
 | 
						|
  UInt32 GetDigest() const { return _value ^ 0xFFFFFFFF; } 
 | 
						|
  static UInt32 CalculateDigest(const void *data, size_t size)
 | 
						|
  {
 | 
						|
    CCRC crc;
 | 
						|
    crc.Update(data, size);
 | 
						|
    return crc.GetDigest();
 | 
						|
  }
 | 
						|
  static bool VerifyDigest(UInt32 digest, const void *data, size_t size)
 | 
						|
  {
 | 
						|
    return (CalculateDigest(data, size) == digest);
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |