ASN1C C/C++ Common Runtime
ASN1C v7.7.x
|
#include "rtxsrc/rtxContext.h"
Go to the source code of this file.
Classes | |
struct | OSBigInt |
Macros | |
#define | rtxBigIntSetBytes rtxBigIntSetBytesSigned |
Typedefs | |
typedef struct OSBigInt | OSBigInt |
Functions | |
void | rtxBigIntInit (OSBigInt *pInt) |
int | rtxBigIntEnsureCapacity (OSCTXT *pctxt, OSBigInt *pInt, OSSIZE capacity) |
int | rtxBigIntSetStr (OSCTXT *pctxt, OSBigInt *pInt, const char *value, int radix) |
int | rtxBigIntSetStrn (OSCTXT *pctxt, OSBigInt *pInt, const char *value, OSSIZE len, int radix) |
int | rtxBigIntSetInt64 (OSCTXT *pctxt, OSBigInt *pInt, OSINT64 value) |
int | rtxBigIntSetUInt64 (OSCTXT *pctxt, OSBigInt *pInt, OSUINT64 value) |
int | rtxBigIntSetBytesSigned (OSCTXT *pctxt, OSBigInt *pInt, OSOCTET *value, OSSIZE vallen) |
int | rtxBigIntSetBytesUnsigned (OSCTXT *pctxt, OSBigInt *pInt, OSOCTET *value, OSSIZE vallen) |
OSSIZE | rtxBigIntGetDataLen (const OSBigInt *pInt) |
int | rtxBigIntGetData (OSCTXT *pctxt, const OSBigInt *pInt, OSOCTET *buffer, OSSIZE bufSize) |
OSSIZE | rtxBigIntDigitsNum (const OSBigInt *pInt, int radix) |
int | rtxBigIntCopy (OSCTXT *pctxt, const OSBigInt *pSrc, OSBigInt *pDst) |
int | rtxBigIntFastCopy (OSCTXT *pctxt, const OSBigInt *pSrc, OSBigInt *pDst) |
OSBOOL | rtxBigIntToReal (const OSBigInt *pSrc, OSREAL *pvalue) |
int | rtxBigIntToString (OSCTXT *pctxt, const OSBigInt *pInt, int radix, char *str, OSSIZE strSize) |
char * | rtxBigIntToDynStr (OSCTXT *pctxt, const OSBigInt *pInt, int radix) |
int | rtxBigIntPrint (const OSUTF8CHAR *name, const OSBigInt *bigint, int radix) |
int | rtxBigIntCompare (const OSBigInt *arg1, const OSBigInt *arg2) |
int | rtxBigIntStrCompare (OSCTXT *pctxt, const char *arg1, const char *arg2) |
void | rtxBigIntFree (OSCTXT *pctxt, OSBigInt *pInt) |
int | rtxBigIntAdd (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2) |
int | rtxBigIntSubtract (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2) |
int | rtxBigIntMultiply (OSCTXT *pctxt, OSBigInt *result, const OSBigInt *arg1, const OSBigInt *arg2) |
unsigned short | rtxBigIntBitsPerDigit (int radix) |
short | rtxBigIntByteRadix (int halfRadix) |
int rtxBigIntAdd | ( | OSCTXT * | pctxt, |
OSBigInt * | result, | ||
const OSBigInt * | arg1, | ||
const OSBigInt * | arg2 | ||
) |
This function is used to add two big integer values.
pctxt | Pointer to a context structure. |
result | Pointer to big integer structure to receive result. |
arg1 | First big integer to add. |
arg2 | Second big integer to add. |
This function is used to compare two big integer values.
arg1 | First big integer to compare. |
arg2 | Second big integer to compare. |
This function is used to copy a big integer data value from one structure to another.
pctxt | Pointer to a context structure. |
pSrc | Pointer to source big integer structure. |
pDst | Pointer to destination big integer structure. |
OSSIZE rtxBigIntDigitsNum | ( | const OSBigInt * | pInt, |
int | radix | ||
) |
This function is used to get the number of digits in the binary big integer data value based on radix.
pInt | Pointer to big integer structure. |
radix | Radix of the string value, Valid values are 2, 8, 10, or 16. |
This function ensures that the big integer has capacity to hold at least the given number of bytes. This can be used prior to directly copying bytes into mag. POST: On a successful return, pInt->allocated <= capacity; pInt->dynamic might now be TRUE. The value of the big integer is unchanged.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure. |
capacity | Required capacity. |
This function is used to copy one BigInt to another. This function will not allocate memory for the byte buffer if the destination BigInt already has a large enough allocated array to hold the data. The destination BigInt must have been initialized using the rtxBigIntInit function.
pctxt | Pointer to a context structure. |
pSrc | Pointer to source big integer structure. |
pDst | Pointer to destination big integer structure. |
This function frees internal memory within the big integer structure.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure in which memory is to be freed. |
This function is used to get the binary big integer data value in a byte array.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure. |
buffer | Buffer into which binary big integer value is to be copied. |
bufSize | Size of the data buffer. |
OSSIZE rtxBigIntGetDataLen | ( | const OSBigInt * | pInt | ) |
This function is used to get the size in bytes of the binary big integer data value.
pInt | Pointer to big integer structure. |
void rtxBigIntInit | ( | OSBigInt * | pInt | ) |
This function initializes a big integer structure. It must be called prior to working with the structure.
pInt | Pointer to big integer data structure. |
int rtxBigIntMultiply | ( | OSCTXT * | pctxt, |
OSBigInt * | result, | ||
const OSBigInt * | arg1, | ||
const OSBigInt * | arg2 | ||
) |
This function is used to multiply two big integer values.
pctxt | Pointer to a context structure. |
result | Pointer to big integer structure to receive result. |
arg1 | First big integer to be multiplied. |
arg2 | Second big integer to be multiplied. |
int rtxBigIntPrint | ( | const OSUTF8CHAR * | name, |
const OSBigInt * | bigint, | ||
int | radix | ||
) |
This function is used to print a big integer value to standard output.
name | Name to print in "name=value" format. |
bigint | Pointer to big integer value to be printed. |
radix | Radix of the string value, Valid values are 2, 8, 10, or 16. |
This function sets a big integer binary value from a byte array. The array is assumed to hold the value in 2's complement form.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to receive converted value. |
value | Buffer containing binary integer value in 2's complement form. |
vallen | Number of byte in the value buffer. |
This function sets a big integer binary value from a byte array. The array is assumed to hold the value in unsigned form.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to receive converted value. |
value | Buffer containing binary unsigned integer value. |
vallen | Number of byte in the value buffer. |
This function sets a big integer binary value from a signed 64-bit integer value.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to receive converted value. |
value | 64-bit integer value to convert. |
This function sets a big integer binary value from a null-terminated string.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to receive converted value. |
value | Numeric string to convert. |
radix | Radix of the string value, Valid values are 0, 2, 8, 10, or 16. Zero must be used if string contains a prefix that identifies the radix (for example, 0x). |
This function sets a big integer binary value from a character string using the given number of characters.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to receive converted value. |
value | Numeric string to convert. |
len | Number of bytes from character string to use. |
radix | Radix of the string value, Valid values are 0, 2, 8, 10, or 16. Zero must be used if string contains a prefix that identifies the radix (for example, 0x). |
This function sets a big integer binary value from an unsigned 64-bit integer value.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to receive converted value. |
value | 64-bit integer value to convert. |
int rtxBigIntStrCompare | ( | OSCTXT * | pctxt, |
const char * | arg1, | ||
const char * | arg2 | ||
) |
This function is used to compare two big integer numeric strings.
pctxt | Pointer to a context structure. |
arg1 | First big integer string to compare. |
arg2 | Second big integer string to compare. |
int rtxBigIntSubtract | ( | OSCTXT * | pctxt, |
OSBigInt * | result, | ||
const OSBigInt * | arg1, | ||
const OSBigInt * | arg2 | ||
) |
This function is used to subtract one big integer value from another.
pctxt | Pointer to a context structure. |
result | Pointer to big integer structure to receive result. |
arg1 | Big integer value that arg2 is subtracted from (minuend). |
arg2 | Big integer to be subtracted from arg1 (subtrahend). |
This function is used to convert a binary big integer value to a dynamic string. Memory for the string is allocated using the rtxMemAlloc function. It may be freed using rtxMemFreePtr or when the context if freed.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to convert. |
radix | Radix of the string value, Valid values are 2, 8, 10, or 16. |
OSBOOL rtxBigIntToReal | ( | const OSBigInt * | pSrc, |
OSREAL * | pvalue | ||
) |
This function converts the given big integer to a real, if it will fit without requiring rounding (i.e. loss of precision).
pvalue | Receives the OSREAL value. If null, this function only tests whether the conversion can be done. |
int rtxBigIntToString | ( | OSCTXT * | pctxt, |
const OSBigInt * | pInt, | ||
int | radix, | ||
char * | str, | ||
OSSIZE | strSize | ||
) |
This function is used to convert a binary big integer value to a string.
pctxt | Pointer to a context structure. |
pInt | Pointer to big integer structure to convert. |
radix | Radix of the string value, Valid values are 2, 8, 10, or 16. |
str | Character string buffer to receive converted value. |
strSize | Size, in bytes, of the character string buffer. |