view src/gpf3/ccd/bitfun.h @ 548:9f191ca0051f

implemented ability to enable -D_FF_RV_EXIST_ in TIF library It is not clear if this quirk is intentional or not, but TI's production version of tif_na7_db_{fl,ir}.lib was built without -D_FF_RV_EXIST_, and as a result, the code that is present in the source for the TRACEMASK_IN_FFS feature was not compiled in, making the feature unavailable. The present change makes it possible to re-enable this code (when TIF libraries are being rebuilt from source rather than used as blobs) by setting TRACEMASK_IN_FFS=1 on the configure line. The new code is NOT enabled by default: it is not a change which we can justify inflicting on our production firmwares.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 18 Nov 2018 08:09:17 +0000
parents c41a534f33c6
children
line wrap: on
line source

/* 
+----------------------------------------------------------------------------- 
|  Project :  
|  Modul   : bitfun.h
+----------------------------------------------------------------------------- 
|  Copyright 2002 Texas Instruments Berlin, AG 
|                 All rights reserved. 
| 
|                 This file is confidential and a trade secret of Texas 
|                 Instruments Berlin, AG 
|                 The receipt of or possession of this file does not convey 
|                 any rights to reproduce or disclose its contents or to 
|                 manufacture, use, or sell anything it may describe, in 
|                 whole, or in part, without the specific written consent of 
|                 Texas Instruments Berlin, AG. 
+----------------------------------------------------------------------------- 
|  Purpose :  Condat Coder Decoder
|             Prototypes of the elementary bit manipulation functions
+----------------------------------------------------------------------------- 
*/ 


#ifndef __BITFUN
#define __BITFUN


#ifndef __BITFUN_C__

EXTERN void   bf_writePadBits      (T_CCD_Globs *globs);
EXTERN void   bf_writeVal          (ULONG value, ULONG bSize, T_CCD_Globs *globs);
EXTERN ULONG  bf_getBits           (ULONG  len, T_CCD_Globs *globs);
EXTERN void   bf_writeBitStr_PER   (USHORT len, T_CCD_Globs *globs);
EXTERN void   bf_readBitStr_PER    (USHORT len, T_CCD_Globs *globs);
EXTERN void   bf_writeBits         (ULONG  len, T_CCD_Globs *globs);
EXTERN void   bf_readBits          (ULONG  len, T_CCD_Globs *globs);
EXTERN void   bf_writeBitChunk     (ULONG  len, T_CCD_Globs *globs);
EXTERN void   bf_readBitChunk      (ULONG  len, T_CCD_Globs *globs);
EXTERN BOOL   bf_readBit           (T_CCD_Globs *globs);
EXTERN void   bf_writeBit          (BOOL Bit, T_CCD_Globs *globs);
EXTERN UBYTE  bf_decodeByteNumber  (const ULONG len, T_CCD_Globs *globs);
EXTERN ULONG  bf_decodeShortNumber (const ULONG len, T_CCD_Globs *globs);
EXTERN ULONG  bf_decodeLongNumber  (UBYTE len, T_CCD_Globs *globs);
EXTERN void   bf_codeShortNumber   (UBYTE len, USHORT val, T_CCD_Globs *globs);
EXTERN void   bf_codeByteNumber    (UBYTE len, UBYTE val, T_CCD_Globs *globs);
EXTERN void   bf_codeLongNumber    (UBYTE len, ULONG val, T_CCD_Globs *globs);
EXTERN void   bf_recodeShortNumber (USHORT pos, UBYTE len, USHORT val, T_CCD_Globs *globs);
EXTERN void   bf_recodeByteNumber  (USHORT pos, UBYTE len, UBYTE  val, T_CCD_Globs *globs);
EXTERN void   bf_recodeBit         (USHORT pos, UBYTE Bit, T_CCD_Globs *globs);
EXTERN void   bf_rShift8Bit        (USHORT srcBitPos, USHORT bitLen, T_CCD_Globs *globs);

#endif /* __BITFUN_C__ */

/* a Macro for incrementing the position in the bitbuffer         */
/* _bitpos, _bytepos and _byteoffs are recalculated               */

#define bf_incBitpos(A, globs) globs->bitpos = (USHORT)(globs->bitpos+(A));\
                        globs->bytepos = (USHORT)(globs->bitpos >> 3);\
                        globs->byteoffs = (UBYTE)(globs->bitpos & 7)
#define bf_setBitpos(A, globs) globs->bitpos = (USHORT)(A);\
                        globs->bytepos = (USHORT)(globs->bitpos >> 3);\
                        globs->byteoffs = (UBYTE)(globs->bitpos & 7)

/*
 * end of bitstream if we can not read almost 4 bits
 */
#define bf_endOfBitstream(globs) (globs->bitpos >= globs->maxBitpos)

#endif