1 /*******************************************************************************
5 *******************************************************************************/
6 /*! \file common_typedef_xran.h
7 \brief This header file defines those data type both used by eNB and UE.
10 #ifndef _COMMON_TYPEDEF_XRAN_H_
11 #define _COMMON_TYPEDEF_XRAN_H_
20 \brief Defines 64-bit complex structure; both real part and image part have 32 bit width.
23 float re; /*!< 32-bit real part */
24 float im; /*!< 32-bit image part */
29 \struct complex_int16_t
30 \brief Defines 32-bit complex structure; both real part and image part have 16 bit width.
31 \brief Same defines as COMPLEX16
34 int16_t re; /*!< 16-bit real part */
35 int16_t im; /*!< 16-bit image part */
36 }complex_int16_t,COMPLEX16;
40 \struct complex_int32_t
41 \brief Defines 64-bit complex structure; both real part and image part have 32 bit width.
44 int32_t re; /*!< 32-bit real part */
45 int32_t im; /*!< 32-bit image part */
50 \brief Defines 64-bit complex structure; both real part and image part have 32 bit width.
53 float re; /*!< 32-bit real part */
54 float im; /*!< 32-bit image part */
58 \struct complex_double
59 \brief Defines 128-bit complex structure; both real part and image part have 64 bit width.
62 double re; /*!< 64-bit real part */
63 double im; /*!< 64-bit image part */
68 \brief half is a 16-bit IEEE floating-point standard number format.
69 \note In future this will be known as `short float' or `__fp16'.
70 \note Older compilers must provide proxy support for it as a plain 16-bit integer
76 \brief Defines 32-bit complex structure; both real part and image part have 16 bit width.
79 half re; /*!< 16-bit real part */
80 half im; /*!< 16-bit image part */
84 \enum instruction_cpu_support
85 \brief Define instruction the CPU can support.
88 CPU_GENERIC, /*!< C */
89 SSE4_2, /*!< SSE4_2 */
92 AVX_512, /*!< AVX512 */
93 }instruction_cpu_support;
96 \enum bblib_modulation_order
97 \brief Common enums for modulation order.
99 enum bblib_modulation_order {
100 BBLIB_BPSK = 1, /*!< BPSK */
101 BBLIB_QPSK = 2, /*!< QPSK */
102 BBLIB_PAM4 = 3, /*!< PAM4 */
103 BBLIB_QAM16 = 4, /*!< QAM16 */
104 BBLIB_PAM8 = 5, /*!< PAM8 */
105 BBLIB_QAM64 = 6, /*!< QAM64 */
106 BBLIB_PAM16 = 7, /*!< PAM16 */
107 BBLIB_QAM256 = 8 /*!< QAM256 */
112 #define __align(x) __declspec(align(x))
114 #define __align(x) __attribute__((aligned(x)))
115 #define _aligned_malloc(x,y) memalign(y,x)
118 /* Test time and loops for unit test */
122 #endif /* #ifndef _COMMON_TYPEDEF_H_ */