Initial commit of files
This commit is contained in:
80
src/libasn1/uper_put_bits.c
Normal file
80
src/libasn1/uper_put_bits.c
Normal file
@ -0,0 +1,80 @@
|
||||
/*****************************************************************************
|
||||
* Copyright (C) 2004-2021
|
||||
* ProbeStar Technical Systems, LLC
|
||||
* All Rights Reserved. Proprietary and Confidential.
|
||||
*============================================================================
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* includes
|
||||
*****************************************************************************/
|
||||
|
||||
#include "embtypes.h"
|
||||
#include "asn1uper.h"
|
||||
|
||||
/*****************************************************************************
|
||||
* defines
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* macros
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* structs & typedefs
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* global constants
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* global variables
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* static constants
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* static variables
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* static prototypes
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* C functions
|
||||
*****************************************************************************/
|
||||
|
||||
void uper_put_bitstream(UPER_Stream *uper, UPER_BitStream *bs)
|
||||
{
|
||||
if (!uper || !bs)
|
||||
return;
|
||||
|
||||
// limit 64 bits
|
||||
uper_put_bits_stream(uper, bs->value, bs->max);
|
||||
}
|
||||
|
||||
// from the front (high->low bits)
|
||||
void uper_set_bit_bitstream(UPER_BitStream *bs, uint bit, uint max)
|
||||
{
|
||||
if (!bs || !max)
|
||||
return;
|
||||
bs->max = max;
|
||||
|
||||
if (bit)
|
||||
bs->value |= 1<<(bs->max-bit-1);
|
||||
else
|
||||
bs->value &= ~(1<<(bs->max-bit-1));
|
||||
}
|
||||
|
||||
void uper_set_bits_bitstream(UPER_BitStream *bs, uint64_t value, uint max)
|
||||
{
|
||||
if (!bs)
|
||||
return;
|
||||
|
||||
bs->value = value;
|
||||
bs->max = max;
|
||||
}
|
||||
Reference in New Issue
Block a user