Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zzha zzha
OpenXG-RAN
Commits
e90ef3bc
Commit
e90ef3bc
authored
Feb 27, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split phy_init.h into two files (for LTE/NR)
parent
8a15fb7c
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
81 additions
and
55 deletions
+81
-55
executables/nr-gnb.c
executables/nr-gnb.c
+1
-1
executables/nr-ru.c
executables/nr-ru.c
+1
-1
executables/nr-softmodem.c
executables/nr-softmodem.c
+1
-1
executables/nr-ue.c
executables/nr-ue.c
+1
-1
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+1
-1
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+1
-0
openair1/PHY/INIT/nr_init.c
openair1/PHY/INIT/nr_init.c
+1
-1
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+1
-1
openair1/PHY/INIT/nr_parms.c
openair1/PHY/INIT/nr_parms.c
+1
-1
openair1/PHY/INIT/nr_phy_init.h
openair1/PHY/INIT/nr_phy_init.h
+59
-0
openair1/PHY/INIT/phy_init.h
openair1/PHY/INIT/phy_init.h
+0
-34
openair1/PHY/NR_TRANSPORT/srs_rx.c
openair1/PHY/NR_TRANSPORT/srs_rx.c
+1
-1
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+1
-1
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+1
-1
openair1/SIMULATION/NR_PHY/dlschsim.c
openair1/SIMULATION/NR_PHY/dlschsim.c
+1
-1
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+1
-1
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+1
-1
openair1/SIMULATION/NR_PHY/prachsim.c
openair1/SIMULATION/NR_PHY/prachsim.c
+1
-1
openair1/SIMULATION/NR_PHY/pucchsim.c
openair1/SIMULATION/NR_PHY/pucchsim.c
+1
-1
openair1/SIMULATION/NR_PHY/ulschsim.c
openair1/SIMULATION/NR_PHY/ulschsim.c
+1
-1
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+1
-1
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+1
-1
No files found.
executables/nr-gnb.c
View file @
e90ef3bc
...
...
@@ -42,7 +42,7 @@
#include "PHY/types.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/defs_gNB.h"
#include "SCHED/sched_eNB.h"
...
...
executables/nr-ru.c
View file @
e90ef3bc
...
...
@@ -46,7 +46,7 @@
#include "PHY/defs_nr_common.h"
#include "PHY/phy_extern.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "SCHED_NR/sched_nr.h"
#include "common/utils/LOG/log.h"
...
...
executables/nr-softmodem.c
View file @
e90ef3bc
...
...
@@ -63,7 +63,7 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "intertask_interface.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "system.h"
#include <openair2/GNB_APP/gnb_app.h>
...
...
executables/nr-ue.c
View file @
e90ef3bc
...
...
@@ -24,7 +24,7 @@
#include <openair1/PHY/impl_defs_top.h>
#include "executables/nr-uesoftmodem.h"
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "NR_MAC_UE/mac_proto.h"
#include "RRC/NR_UE/rrc_proto.h"
#include "SCHED_NR_UE/phy_frame_config_nr.h"
...
...
executables/nr-uesoftmodem.c
View file @
e90ef3bc
...
...
@@ -63,7 +63,7 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "intertask_interface.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "system.h"
#include <openair2/RRC/NR_UE/rrc_proto.h>
#include <openair2/LAYER2/NR_MAC_UE/mac_defs.h>
...
...
nfapi/oai_integration/nfapi_pnf.c
View file @
e90ef3bc
...
...
@@ -52,6 +52,7 @@
#include "common/utils/LOG/log.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/nr_phy_init.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
#include "openair1/SCHED_NR/fapi_nr_l1.h"
...
...
openair1/PHY/INIT/nr_init.c
View file @
e90ef3bc
...
...
@@ -24,7 +24,7 @@
#include "common/ran_context.h"
#include "PHY/defs_gNB.h"
#include "PHY/NR_REFSIG/nr_refsig.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/CODING/nrPolar_tools/nr_polar_pbch_defs.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
...
...
openair1/PHY/INIT/nr_init_ue.c
View file @
e90ef3bc
...
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
*/
#include "phy_init.h"
#include "
nr_
phy_init.h"
#include "PHY/phy_extern_nr_ue.h"
#include "openair1/PHY/defs_RU.h"
#include "openair1/PHY/impl_defs_nr.h"
...
...
openair1/PHY/INIT/nr_parms.c
View file @
e90ef3bc
...
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
*/
#include "phy_init.h"
#include "
nr_
phy_init.h"
#include "common/utils/nr/nr_common.h"
#include "common/utils/LOG/log.h"
...
...
openair1/PHY/INIT/nr_phy_init.h
0 → 100644
View file @
e90ef3bc
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef NR_PHY_INIT_H_
#define NR_PHY_INIT_H_
#include "PHY/defs_gNB.h"
#include "PHY/defs_nr_UE.h"
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
,
uint8_t
i_ssb
);
int
nr_init_frame_parms
(
nfapi_nr_config_request_scf_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
);
int
nr_init_frame_parms_ue
(
NR_DL_FRAME_PARMS
*
frame_parms
,
fapi_nr_config_request_t
*
config
,
uint16_t
nr_band
);
void
nr_init_frame_parms_ue_sa
(
NR_DL_FRAME_PARMS
*
frame_parms
,
uint64_t
downlink_frequency
,
int32_t
uplink_frequency_offset
,
uint8_t
mu
,
uint16_t
nr_band
);
int
init_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_eNB
);
void
term_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_gNB
);
void
init_nr_ue_transport
(
PHY_VARS_NR_UE
*
ue
);
void
init_N_TA_offset
(
PHY_VARS_NR_UE
*
ue
);
void
nr_dump_frame_parms
(
NR_DL_FRAME_PARMS
*
frame_parms
);
int
phy_init_nr_gNB
(
PHY_VARS_gNB
*
gNB
);
int
init_codebook_gNB
(
PHY_VARS_gNB
*
gNB
);
void
nr_phy_config_request
(
NR_PHY_Config_t
*
gNB
);
void
nr_phy_config_request_sim
(
PHY_VARS_gNB
*
gNB
,
int
N_RB_DL
,
int
N_RB_UL
,
int
mu
,
int
Nid_cell
,
uint64_t
position_in_burst
);
void
phy_free_nr_gNB
(
PHY_VARS_gNB
*
gNB
);
int
l1_north_init_gNB
(
void
);
void
init_nr_transport
(
PHY_VARS_gNB
*
gNB
);
void
reset_nr_transport
(
PHY_VARS_gNB
*
gNB
);
void
init_DLSCH_struct
(
PHY_VARS_gNB
*
gNB
,
processingData_L1tx_t
*
msg
);
void
reset_DLSCH_struct
(
const
PHY_VARS_gNB
*
gNB
,
processingData_L1tx_t
*
msg
);
void
RCconfig_nrUE_prs
(
void
*
cfg
);
void
init_nr_prs_ue_vars
(
PHY_VARS_NR_UE
*
ue
);
void
nr_init_dl_harq_processes
(
NR_DL_UE_HARQ_t
harq_list
[
2
][
NR_MAX_DLSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
);
void
nr_init_ul_harq_processes
(
NR_UL_UE_HARQ_t
harq_list
[
NR_MAX_ULSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
,
int
num_ant_tx
);
void
free_nr_ue_dl_harq
(
NR_DL_UE_HARQ_t
harq_list
[
2
][
NR_MAX_DLSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
);
void
free_nr_ue_ul_harq
(
NR_UL_UE_HARQ_t
harq_list
[
NR_MAX_ULSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
,
int
num_ant_tx
);
void
phy_init_nr_top
(
PHY_VARS_NR_UE
*
ue
);
void
phy_term_nr_top
(
void
);
#endif
openair1/PHY/INIT/phy_init.h
View file @
e90ef3bc
...
...
@@ -56,9 +56,6 @@ int l1_north_init_eNB(void);
*/
int
phy_init_top
(
LTE_DL_FRAME_PARMS
*
frame_parms
);
void
phy_init_nr_top
(
PHY_VARS_NR_UE
*
ue
);
void
phy_term_nr_top
(
void
);
/*!
\brief Allocate and Initialize the PHY variables relevant to the LTE ue signal buffers.
...
...
@@ -392,37 +389,6 @@ void phy_config_update_sib13_request(PHY_Config_t *phy_config);
int
init_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
osf
);
void
dump_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
);
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
,
uint8_t
i_ssb
);
int
nr_init_frame_parms
(
nfapi_nr_config_request_scf_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
);
int
nr_init_frame_parms_ue
(
NR_DL_FRAME_PARMS
*
frame_parms
,
fapi_nr_config_request_t
*
config
,
uint16_t
nr_band
);
void
nr_init_frame_parms_ue_sa
(
NR_DL_FRAME_PARMS
*
frame_parms
,
uint64_t
downlink_frequency
,
int32_t
uplink_frequency_offset
,
uint8_t
mu
,
uint16_t
nr_band
);
int
init_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_eNB
);
void
term_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_gNB
);
void
init_nr_ue_transport
(
PHY_VARS_NR_UE
*
ue
);
void
init_N_TA_offset
(
PHY_VARS_NR_UE
*
ue
);
void
nr_dump_frame_parms
(
NR_DL_FRAME_PARMS
*
frame_parms
);
int
phy_init_nr_gNB
(
PHY_VARS_gNB
*
gNB
);
int
init_codebook_gNB
(
PHY_VARS_gNB
*
gNB
);
void
nr_phy_config_request
(
NR_PHY_Config_t
*
gNB
);
void
nr_phy_config_request_sim
(
PHY_VARS_gNB
*
gNB
,
int
N_RB_DL
,
int
N_RB_UL
,
int
mu
,
int
Nid_cell
,
uint64_t
position_in_burst
);
void
phy_free_nr_gNB
(
PHY_VARS_gNB
*
gNB
);
int
l1_north_init_gNB
(
void
);
void
init_nr_transport
(
PHY_VARS_gNB
*
gNB
);
void
reset_nr_transport
(
PHY_VARS_gNB
*
gNB
);
void
init_dfts
(
void
);
void
fill_subframe_mask
(
PHY_VARS_eNB
*
eNB
);
void
init_DLSCH_struct
(
PHY_VARS_gNB
*
gNB
,
processingData_L1tx_t
*
msg
);
void
reset_DLSCH_struct
(
const
PHY_VARS_gNB
*
gNB
,
processingData_L1tx_t
*
msg
);
void
RCconfig_nrUE_prs
(
void
*
cfg
);
void
init_nr_prs_ue_vars
(
PHY_VARS_NR_UE
*
ue
);
void
nr_init_dl_harq_processes
(
NR_DL_UE_HARQ_t
harq_list
[
2
][
NR_MAX_DLSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
);
void
nr_init_ul_harq_processes
(
NR_UL_UE_HARQ_t
harq_list
[
NR_MAX_ULSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
,
int
num_ant_tx
);
void
free_nr_ue_dl_harq
(
NR_DL_UE_HARQ_t
harq_list
[
2
][
NR_MAX_DLSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
);
void
free_nr_ue_ul_harq
(
NR_UL_UE_HARQ_t
harq_list
[
NR_MAX_ULSCH_HARQ_PROCESSES
],
int
number_of_processes
,
int
num_rb
,
int
num_ant_tx
);
/** @} */
#endif
openair1/PHY/NR_TRANSPORT/srs_rx.c
View file @
e90ef3bc
...
...
@@ -30,7 +30,7 @@
#include <unistd.h>
#include <fcntl.h>
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/impl_defs_nr.h"
#include "PHY/defs_nr_common.h"
#include "PHY/defs_gNB.h"
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
View file @
e90ef3bc
...
...
@@ -33,7 +33,7 @@
#include "executables/softmodem-common.h"
#include "executables/nr-softmodem-common.h"
#include "PHY/defs_nr_UE.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/phy_extern_nr_ue.h"
#include "common/utils/LOG/log.h"
#include "PHY/sse_intrin.h"
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
e90ef3bc
...
...
@@ -34,7 +34,7 @@
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/sse_intrin.h"
#include "PHY/LTE_REFSIG/lte_refsig.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "openair1/SCHED_NR_UE/defs.h"
#include <openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h>
#include <openair1/PHY/TOOLS/phy_scope_interface.h>
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
e90ef3bc
...
...
@@ -31,7 +31,7 @@
#include "fapi_nr_l1.h"
#include "common/utils/LOG/log.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "PHY/NR_UE_TRANSPORT/srs_modulation_nr.h"
#include "T.h"
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
e90ef3bc
...
...
@@ -39,7 +39,7 @@
#include "PHY/NR_REFSIG/dmrs_nr.h"
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/MODULATION/modulation_UE.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_ue.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
#include "PHY/NR_UE_TRANSPORT/srs_modulation_nr.h"
...
...
openair1/SIMULATION/NR_PHY/dlschsim.c
View file @
e90ef3bc
...
...
@@ -35,7 +35,7 @@
#include "PHY/defs_nr_common.h"
#include "PHY/defs_nr_UE.h"
#include "PHY/types.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/modulation_UE.h"
#include "PHY/NR_REFSIG/refsig_defs_ue.h"
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
e90ef3bc
...
...
@@ -38,7 +38,7 @@
#include "PHY/defs_nr_UE.h"
#include "PHY/phy_vars_nr_ue.h"
#include "PHY/types.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "PHY/MODULATION/modulation_UE.h"
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
e90ef3bc
...
...
@@ -38,7 +38,7 @@
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/modulation_UE.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
#include "PHY/NR_UE_ESTIMATION/nr_estimation.h"
...
...
openair1/SIMULATION/NR_PHY/prachsim.c
View file @
e90ef3bc
...
...
@@ -41,7 +41,7 @@
#include "PHY/MODULATION/nr_modulation.h"
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/modulation_UE.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
...
...
openair1/SIMULATION/NR_PHY/pucchsim.c
View file @
e90ef3bc
...
...
@@ -38,7 +38,7 @@
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/modulation_UE.h"
#include "PHY/NR_ESTIMATION/nr_ul_estimation.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
#include "PHY/NR_UE_TRANSPORT/pucch_nr.h"
...
...
openair1/SIMULATION/NR_PHY/ulschsim.c
View file @
e90ef3bc
...
...
@@ -33,7 +33,7 @@
#include "PHY/defs_nr_common.h"
#include "PHY/defs_nr_UE.h"
#include "PHY/defs_gNB.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/NR_REFSIG/refsig_defs_ue.h"
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/modulation_UE.h"
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
e90ef3bc
...
...
@@ -35,7 +35,7 @@
#include "PHY/defs_nr_UE.h"
#include "PHY/phy_vars_nr_ue.h"
#include "PHY/types.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "PHY/MODULATION/modulation_UE.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "PHY/NR_REFSIG/dmrs_nr.h"
...
...
openair2/GNB_APP/gnb_config.c
View file @
e90ef3bc
...
...
@@ -50,7 +50,7 @@
// #include "SystemInformationBlockType2.h"
// #include "LAYER2/MAC/extern.h"
// #include "LAYER2/MAC/proto.h"
#include "PHY/INIT/phy_init.h"
#include "PHY/INIT/
nr_
phy_init.h"
#include "radio/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
#include "nfapi_vnf.h"
#include "nfapi_pnf.h"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment