O-RAN E Maintenance Release contribution for ODULOW
[o-du/phy.git] / fhi_lib / lib / api / xran_compression.h
index 816acc0..5dc088f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-*   Copyright (c) 2019 Intel.
+*   Copyright (c) 2020 Intel.
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
 
 /*!
     \file   xran_compression.h
-    \brief  External API for compading with the use BFP algorithm.
+    \brief  External C-callable API for compression/decompression with the use BFP algorithm and Modulation compression
 */
 
 #ifndef _XRAN_COMPRESSION_H_
@@ -40,6 +40,9 @@ struct xranlib_compress_request {
     int16_t numDataElements; /*!< number of elements in block process [UP: 24 i.e 12RE*2; CP: 16,32,64,128. i.e AntElm*2] */
     int16_t compMethod; /*!< Compression method */
     int16_t iqWidth;    /*!< Bit size */
+    int16_t reMask; /*!< 12-bit RE mask representing 12REs in one RB  */
+    int16_t csf; /*!< 1-bit constellation shift flag defined in section 5.4.7.4  */
+    uint16_t ScaleFactor; /*!< Scale factor as defined in section A.5*/
     int32_t len;        /*!< Length of input buffer in bytes */
 };
 
@@ -63,7 +66,9 @@ struct xranlib_decompress_request {
     int16_t numDataElements; /*!< number of elements in block process [UP: 24 i.e 12RE*2; CP: 16,32,64,128. i.e AntElm*2] */
     int16_t compMethod; /*!< Compression method */
     int16_t iqWidth;    /*!< Bit size */
-
+    int16_t reMask; /*!< 12-bit RE mask representing 12REs in one RB  */
+    int16_t csf; /*!< 1-bit constellation shift flag defined in section 5.4.7.4  */
+    uint16_t ScaleFactor; /*!< Scale factor as defined in section A.5*/
     int32_t len; /*!< Length of input data. */
 };
 
@@ -107,8 +112,17 @@ int32_t
 xranlib_compress_avx512(const struct xranlib_compress_request *request,
     struct xranlib_compress_response *response);
 int32_t
+xranlib_compress_avxsnc(const struct xranlib_compress_request *request,
+    struct xranlib_compress_response *response);
+int32_t
+xranlib_compress_bfw(const struct xranlib_compress_request *request,
+    struct xranlib_compress_response *response);
+int32_t
 xranlib_compress_avx512_bfw(const struct xranlib_compress_request *request,
     struct xranlib_compress_response *response);
+int32_t
+xranlib_compress_avxsnc_bfw(const struct xranlib_compress_request *request,
+    struct xranlib_compress_response *response);
 //! @}
 
 //! @{
@@ -121,7 +135,6 @@ xranlib_compress_avx512_bfw(const struct xranlib_compress_request *request,
 int32_t
 xranlib_decompress(const struct xranlib_decompress_request *request,
     struct xranlib_decompress_response *response);
-
 int32_t
 xranlib_decompress_sse(const struct xranlib_decompress_request *request,
     struct xranlib_decompress_response *response);
@@ -132,8 +145,17 @@ int32_t
 xranlib_decompress_avx512(const struct xranlib_decompress_request *request,
     struct xranlib_decompress_response *response);
 int32_t
+xranlib_decompress_avxsnc(const struct xranlib_decompress_request *request,
+    struct xranlib_decompress_response *response);
+int32_t
+xranlib_decompress_bfw(const struct xranlib_decompress_request *request,
+    struct xranlib_decompress_response *response);
+int32_t
 xranlib_decompress_avx512_bfw(const struct xranlib_decompress_request *request,
      struct xranlib_decompress_response *response);
+int32_t
+xranlib_decompress_avxsnc_bfw(const struct xranlib_decompress_request *request,
+     struct xranlib_decompress_response *response);
 
 //! @}