Update to odulow per maintenance bronze
[o-du/phy.git] / fapi_5g / source / api / fapi2phy / p7 / nr5g_fapi_fapi2phy_p7_pvt_proc.h
1 /******************************************************************************
2 *
3 *   Copyright (c) 2019 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 PHY P7 messages
23  *
24  **/
25
26 #ifndef _NR5G_FAPI_FAP2PHY_P7_PVT_PROC_H_
27 #define _NR5G_FAPI_FAP2PHY_P7_PVT_PROC_H_
28 // DL_TTI.req
29 uint8_t nr5g_fapi_dl_tti_req_to_phy_translation(
30     p_nr5g_fapi_phy_instance_t p_phy_instance,
31     fapi_dl_tti_req_t * p_fapi_req,
32     PDLConfigRequestStruct p_ia_dl_config_req);
33
34 void nr5g_fapi_fill_dci_pdu(
35     p_nr5g_fapi_phy_instance_t p_phy_instance,
36     fapi_dl_pdcch_pdu_t * p_pdcch_pdu,
37     PDCIPDUStruct p_dci_pdu);
38
39 void nr5g_fapi_fill_dci_pdu(
40     p_nr5g_fapi_phy_instance_t p_phy_instance,
41     fapi_dl_pdcch_pdu_t * p_pdcch_pdu,
42     PDCIPDUStruct p_dci_pdu);
43
44 void nr5g_fapi_fill_pdsch_pdu(
45     p_nr5g_fapi_phy_instance_t p_phy_instance,
46     fapi_dl_pdsch_pdu_t * p_pdsch_pdu,
47     PDLSCHPDUStruct p_dlsch_pdu);
48
49 uint16_t nr5g_fapi_calculate_nEpreRatioOfPDCCHToSSB(
50     uint8_t beta_pdcch_1_0);
51
52 void nr5g_fapi_fill_ssb_pdu(
53     p_nr5g_fapi_phy_instance_t p_phy_instance,
54     PBCHPDUStruct p_bch_pdu,
55     fapi_dl_ssb_pdu_t * p_ssb_pdu);
56
57 void nr5g_fapi_fill_csi_rs_pdu(
58     p_nr5g_fapi_phy_instance_t p_phy_instance,
59     PCSIRSPDUStruct pCSIRSPdu,
60     fapi_dl_csi_rs_pdu_t * p_csi_rs_pdu);
61
62 // UL_TTI.req
63 uint8_t nr5g_fapi_calc_n_rbg_size(
64     uint16_t bwp_size);
65
66 uint32_t nr5g_fapi_calc_n_rbg_index_entry(
67     uint8_t n_rbg_size,
68     fapi_ul_pusch_pdu_t * p_pusch_pdu);
69
70 uint8_t nr5g_fapi_calc_alpha_scaling(
71     uint8_t fapi_alpha_scaling);
72
73 void nr5g_fapi_pusch_to_phy_ulsch_translation(
74     p_nr5g_fapi_phy_instance_t p_phy_instance,
75     nr5g_fapi_pusch_info_t * pusch_info,
76     fapi_ul_pusch_pdu_t * p_pusch_pdu,
77     ULSCHPDUStruct * p_ul_data_chan);
78
79 void nr5g_fapi_pusch_data_to_phy_ulsch_translation(
80     nr5g_fapi_pusch_info_t * p_pusch_info,
81     fapi_pusch_data_t * p_pusch_data,
82     ULSCHPDUStruct * p_ul_data_chan);
83
84 void nr5g_fapi_pusch_uci_to_phy_ulsch_translation(
85     fapi_pusch_uci_t * p_pusch_uci,
86     ULSCHPDUStruct * p_ul_data_chan);
87
88 void nr5g_fapi_pusch_ptrs_to_phy_ulsch_translation(
89     fapi_pusch_ptrs_t * p_pusch_ptrs,
90     ULSCHPDUStruct * p_ul_data_chan);
91
92 void nr5g_fapi_pusch_to_phy_ulsch_translation(
93     p_nr5g_fapi_phy_instance_t p_phy_instance,
94     nr5g_fapi_pusch_info_t * p_pusch_info,
95     fapi_ul_pusch_pdu_t * p_pusch_pdu,
96     ULSCHPDUStruct * p_ul_data_chan);
97
98 uint8_t nr5g_get_pucch_resources_group_id(
99     uint8_t num_groups,
100     uint16_t initial_cyclic_shift,
101     uint8_t nr_of_symbols,
102     uint8_t start_symbol_index,
103     uint8_t time_domain_occ_idx,
104     nr5g_fapi_pucch_resources_t * p_pucch_resources);
105
106 void nr5g_fapi_pucch_to_phy_ulcch_uci_translation(
107     p_nr5g_fapi_phy_instance_t p_phy_instance,
108     nr5g_fapi_pucch_info_t * p_pucch_info,
109     fapi_ul_pucch_pdu_t * p_pucch_pdu,
110     uint8_t * num_groups,
111     nr5g_fapi_pucch_resources_t * p_pucch_resources,
112     ULCCHUCIPDUStruct * p_ul_ctrl_chan);
113
114 void nr5g_fapi_srs_to_phy_srs_translation(
115     p_nr5g_fapi_phy_instance_t p_phy_instance,
116     fapi_ul_srs_pdu_t * p_srs_pdu,
117     nr5g_fapi_srs_info_t * p_srs_info,
118     SRSPDUStruct * p_ul_srs_chan);
119
120 uint8_t nr5g_fapi_ul_tti_req_to_phy_translation(
121     p_nr5g_fapi_phy_instance_t p_phy_instance,
122     fapi_ul_tti_req_t * p_fapi_req,
123     PULConfigRequestStruct p_ia_ul_config_req);
124
125 uint8_t nr5g_fapi_ul_dci_req_to_phy_translation(
126     p_nr5g_fapi_phy_instance_t p_phy_instance,
127     fapi_ul_dci_req_t * p_fapi_req,
128     PULDCIRequestStruct p_ia_ul_dci_req);
129
130 uint8_t nr5g_fapi_tx_data_req_to_phy_translation(
131     p_nr5g_fapi_phy_instance_t p_phy_instance,
132     fapi_tx_data_req_t * p_fapi_req,
133     PTXRequestStruct p_ia_tx_req);
134 #endif                          //_NR5G_FAPI_FAP2PHY_P7_PVT_PROC_H_