| Index: third_party/lzma_sdk/C/Bra.h
|
| ===================================================================
|
| --- third_party/lzma_sdk/C/Bra.h (revision 0)
|
| +++ third_party/lzma_sdk/C/Bra.h (revision 0)
|
| @@ -0,0 +1,68 @@
|
| +/* Bra.h -- Branch converters for executables
|
| +2009-02-07 : Igor Pavlov : Public domain */
|
| +
|
| +#ifndef __BRA_H
|
| +#define __BRA_H
|
| +
|
| +#include "Types.h"
|
| +
|
| +#ifdef __cplusplus
|
| +extern "C" {
|
| +#endif
|
| +
|
| +/*
|
| +These functions convert relative addresses to absolute addresses
|
| +in CALL instructions to increase the compression ratio.
|
| +
|
| + In:
|
| + data - data buffer
|
| + size - size of data
|
| + ip - current virtual Instruction Pinter (IP) value
|
| + state - state variable for x86 converter
|
| + encoding - 0 (for decoding), 1 (for encoding)
|
| +
|
| + Out:
|
| + state - state variable for x86 converter
|
| +
|
| + Returns:
|
| + The number of processed bytes. If you call these functions with multiple calls,
|
| + you must start next call with first byte after block of processed bytes.
|
| +
|
| + Type Endian Alignment LookAhead
|
| +
|
| + x86 little 1 4
|
| + ARMT little 2 2
|
| + ARM little 4 0
|
| + PPC big 4 0
|
| + SPARC big 4 0
|
| + IA64 little 16 0
|
| +
|
| + size must be >= Alignment + LookAhead, if it's not last block.
|
| + If (size < Alignment + LookAhead), converter returns 0.
|
| +
|
| + Example:
|
| +
|
| + UInt32 ip = 0;
|
| + for ()
|
| + {
|
| + ; size must be >= Alignment + LookAhead, if it's not last block
|
| + SizeT processed = Convert(data, size, ip, 1);
|
| + data += processed;
|
| + size -= processed;
|
| + ip += processed;
|
| + }
|
| +*/
|
| +
|
| +#define x86_Convert_Init(state) { state = 0; }
|
| +SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding);
|
| +SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
|
| +SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
|
| +SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
|
| +SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
|
| +SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
|
| +
|
| +#ifdef __cplusplus
|
| +}
|
| +#endif
|
| +
|
| +#endif
|
|
|
| Property changes on: third_party\lzma_sdk\C\Bra.h
|
| ___________________________________________________________________
|
| Added: svn:executable
|
| + *
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|