* INTC Contribution to the O-RAN F Release for O-DU Low
[o-du/phy.git] / fapi_5g / source / api / fapi2mac / p7 / nr5g_fapi_fapi2mac_p7_proc.h
1 /******************************************************************************
2 *
3 *   Copyright (c) 2021 Intel.
4 *
5 *   Licensed under the Apache License, Version 2.0 (the "License");
6 *   you may not use this file except in compliance with the License.
7 *   You may obtain a copy of the License at
8 *
9 *       http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *   Unless required by applicable law or agreed to in writing, software
12 *   distributed under the License is distributed on an "AS IS" BASIS,
13 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *   See the License for the specific language governing permissions and
15 *   limitations under the License.
16 *
17 *******************************************************************************/
18
19 /**
20  * @file
21  * This file consist of macros, structures and prototypes of all FAPI
22  * to MAC P7 messages
23  *
24  **/
25
26 #ifndef _NR5G_FAPI_FAP2MAC_P7_PROC_H_
27 #define _NR5G_FAPI_FAP2MAC_P7_PROC_H_
28
29 typedef struct {
30     p_fapi_api_queue_elem_t vendor_ext[FAPI_MAX_PHY_INSTANCES];
31 } fapi_api_stored_vendor_queue_elems,
32 *p_fapi_api_stored_vendor_queue_elems;
33
34 uint8_t nr5g_fapi_slot_indication(
35     bool is_urllc,
36     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
37     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems,
38     PSlotIndicationStruct p_iapi_resp);
39 uint8_t nr5g_fapi_rach_indication(
40     bool is_urllc,
41     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
42     PRXRACHIndicationStruct p_phy_rach_ind);
43 uint8_t nr5g_fapi_crc_indication(
44     bool is_urllc,
45     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
46     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems,
47     PCRCIndicationStruct p_phy_crc_ind);
48 uint8_t nr5g_fapi_rx_data_indication(
49     bool is_urllc,
50     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
51     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems,
52     PRXULSCHIndicationStruct p_phy_ulsch_ind);
53 uint8_t nr5g_fapi_rx_data_uci_indication(
54     bool is_urllc,
55     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
56     PRXULSCHUCIIndicationStruct p_phy_rx_ulsch_uci_ind);
57 uint8_t nr5g_fapi_uci_indication(
58     bool is_urllc,
59     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
60     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems,
61     PRXUCIIndicationStruct p_phy_uci_ind);
62 uint8_t nr5g_fapi_srs_indication(
63     bool is_urllc,
64     p_nr5g_fapi_phy_ctx_t p_phy_ctx,
65     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems,
66     PRXSRSIndicationStruct p_phy_srs_ind);
67 fapi_vendor_p7_ind_msg_t* nr5g_fapi_proc_vendor_p7_msg_get(
68     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems,
69     uint8_t phy_id);
70 void nr5g_fapi_proc_vendor_p7_msgs_move_to_api_list(
71     bool is_urllc,
72     p_fapi_api_stored_vendor_queue_elems vendor_extension_elems);
73 #endif                          //_NR5G_FAPI_FAP2MAC_P7_PROC_H_