X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=include%2Flfta%2Frts_external.h;h=d1fdf7b769cfa0464b7466dcc783e533d8dd1cb9;hb=refs%2Fchanges%2F56%2F4756%2F1;hp=1f16682754e13724d145f5ef3b7082efab56103b;hpb=834803ff24ff04d1f952ef2783838e964d961b87;p=com%2Fgs-lite.git diff --git a/include/lfta/rts_external.h b/include/lfta/rts_external.h index 1f16682..d1fdf7b 100644 --- a/include/lfta/rts_external.h +++ b/include/lfta/rts_external.h @@ -17,6 +17,8 @@ ------------------------------------------- */ #include +#include + #include "gsconfig.h" #include "gstypes.h" @@ -67,30 +69,77 @@ gs_retval_t str_exists_substr( struct gs_string * str1, struct gs_string * str2) gs_retval_t str_compare( struct gs_string * str1, struct gs_string * str2); +/* String equality */ + +gs_retval_t str_equal( struct gs_string * str1, struct gs_string * str2); /* Construct a string constant */ gs_retval_t str_constructor(struct gs_string *s, gs_sp_t l); +/* string hash */ + +#define string_hash(s) lfta_V_STR_to_hash((*(s))) /* External Function definitions */ -#define LLMIN(x,y) ((x)<(y)?(x):(y)) -#define LLMAX(x,y) ((x)<(y)?(y):(x)) -#define UMIN(x,y) ((x)<(y)?(x):(y)) -#define UMAX(x,y) ((x)<(y)?(y):(x)) +#define ULLMIN(x,y) (unsigned long long)(((x)<(y)?(x):(y))) +#define ULLMAX(x,y) (unsigned long long)(((x)<(y)?(y):(x))) +#define LLMIN(x,y) (long long int)(((x)<(y)?(x):(y))) +#define LLMAX(x,y) (long long int)(((x)<(y)?(y):(x))) +#define UMIN(x,y) (unsigned int)(((x)<(y)?(x):(y))) +#define UMAX(x,y) (unsigned int)(((x)<(y)?(y):(x))) +#define LMIN(x,y) (int)(((x)<(y)?(x):(y))) +#define LMAX(x,y) (int)(((x)<(y)?(y):(x))) +#define FMIN(x,y) (double)(((x)<(y)?(x):(y))) +#define FMAX(x,y) (double)(((x)<(y)?(y):(x))) + // type conversion #define INT(c) ((int)(c)) #define UINT(c) ((unsigned int)(c)) #define ULLONG(c) ((unsigned long long)(c)) +#define LLONG(c) ((long long int)(c)) #define FLOAT(c) ((double)(c)) + +// comparison #define EQ(x,y) ((x)==(y)) #define GEQ(x,y) ((x)>=(y)) +#define GE(x,y) ((x)>(y)) #define LEQ(x,y) ((x)<=(y)) +#define LE(x,y) ((x)<(y)) + +// if_else +#define if_else_f(x,y,z) (double)(((x)==0?(z):(y))) +#define if_else_ll(x,y,z) (long long int)(((x)==0?(z):(y))) +#define if_else_ul(x,y,z) (unsigned long long)(((x)==0?(z):(y))) +#define if_else_u(x,y,z) (unsigned int)(((x)==0?(z):(y))) +#define if_else_i(x,y,z) (int)(((x)==0?(z):(y))) // Cast away temporality #define non_temporal(x)(x) +// endian swap +#define endian_swap_ui(x) ( (( (x) & 0xFF000000) >> 24) | (( (x) & 0x00FF0000) >> 8) | (( (x) & 0x0000FF00) << 8) | (( (x) & 0x000000FF) << 24) ) + + +// Access math libraries +#define sqrt(x) sqrt(x) +#define pow(x,y) pow((x),(y)) +#define sin(x) sin(x) +#define cos(x) cos(x) +#define tan(x) tan(x) +#define asin(x) asin(x) +#define acos(x) acos(x) +#define atan(x) atan(x) +#define log(x) log(x) +#define log2(x) log2(x) +#define log10(x) log10(x) +#define ceil(x) ceil(x) +#define floor(x) floor(x) +#define fmod(x) fmod(x) +#define trunc(x) trunc(x) + + gs_uint32_t str_match_offset( gs_uint32_t offset, struct gs_string * s1, struct gs_string * s2);