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
dbae061e
Commit
dbae061e
authored
Jul 31, 2016
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modifications for if5
parent
5309b71e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
107 additions
and
93 deletions
+107
-93
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf
...PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf
...PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf
+1
-1
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+98
-31
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+2
-60
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+5
-0
No files found.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf
View file @
dbae061e
...
@@ -23,7 +23,7 @@ eNBs =
...
@@ -23,7 +23,7 @@ eNBs =
component_carriers
= (
component_carriers
= (
{
{
node_function
=
"NGFI_RCC_IF4"
;
node_function
=
"NGFI_RCC_IF4
p5
"
;
node_timing
=
"synch_to_ext_device"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
frame_type
=
"FDD"
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf
View file @
dbae061e
...
@@ -23,7 +23,7 @@ eNBs =
...
@@ -23,7 +23,7 @@ eNBs =
component_carriers
= (
component_carriers
= (
{
{
node_function
=
"NGFI_RRU_IF4"
;
node_function
=
"NGFI_RRU_IF4
p5
"
;
node_timing
=
"synch_to_ext_device"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
frame_type
=
"FDD"
;
...
...
targets/RT/USER/lte-enb.c
View file @
dbae061e
...
@@ -159,7 +159,7 @@ static struct {
...
@@ -159,7 +159,7 @@ static struct {
void
exit_fun
(
const
char
*
s
);
void
exit_fun
(
const
char
*
s
);
void
init_eNB
(
eNB_func_t
node_function
[],
eNB_timing_t
node_timing
[],
int
nb_inst
);
void
init_eNB
(
eNB_func_t
node_function
[],
eNB_timing_t
node_timing
[],
int
nb_inst
,
eth_params_t
*
);
void
stop_eNB
(
int
nb_inst
);
void
stop_eNB
(
int
nb_inst
);
...
@@ -1218,16 +1218,17 @@ static void* eNB_thread_FH( void* param ) {
...
@@ -1218,16 +1218,17 @@ static void* eNB_thread_FH( void* param ) {
wait_system_ready
(
"Waiting for eNB application to be ready %s
\r
"
,
&
start_eNB
);
wait_system_ready
(
"Waiting for eNB application to be ready %s
\r
"
,
&
start_eNB
);
#endif
#endif
// Start RF device if any
if
(
eNB
->
start_rf
)
if
(
eNB
->
start_rf
(
eNB
)
!=
0
)
LOG_E
(
HW
,
"Could not start the RF device
\n
"
);
// Start IF device if any
// Start IF device if any
if
(
eNB
->
start_if
)
if
(
eNB
->
start_if
)
if
(
eNB
->
start_if
(
eNB
)
!=
0
)
if
(
eNB
->
start_if
(
eNB
)
!=
0
)
LOG_E
(
HW
,
"Could not start the IF device
\n
"
);
LOG_E
(
HW
,
"Could not start the IF device
\n
"
);
// Start RF device if any
if
(
eNB
->
start_rf
)
if
(
eNB
->
start_rf
(
eNB
)
!=
0
)
LOG_E
(
HW
,
"Could not start the RF device
\n
"
);
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
while
(
!
oai_exit
)
{
while
(
!
oai_exit
)
{
...
@@ -1743,11 +1744,13 @@ extern void eNB_fep_rru_if5(PHY_VARS_eNB *eNB,eNB_proc_t *proc);
...
@@ -1743,11 +1744,13 @@ extern void eNB_fep_rru_if5(PHY_VARS_eNB *eNB,eNB_proc_t *proc);
extern
void
eNB_fep_full
(
PHY_VARS_eNB
*
eNB
,
eNB_proc_t
*
proc
);
extern
void
eNB_fep_full
(
PHY_VARS_eNB
*
eNB
,
eNB_proc_t
*
proc
);
extern
void
do_prach
(
PHY_VARS_eNB
*
eNB
,
eNB_proc_t
*
proc
);
extern
void
do_prach
(
PHY_VARS_eNB
*
eNB
,
eNB_proc_t
*
proc
);
void
init_eNB
(
eNB_func_t
node_function
[],
eNB_timing_t
node_timing
[],
int
nb_inst
)
{
void
init_eNB
(
eNB_func_t
node_function
[],
eNB_timing_t
node_timing
[],
int
nb_inst
,
eth_params_t
*
eth_params
)
{
int
CC_id
;
int
CC_id
;
int
inst
;
int
inst
;
PHY_VARS_eNB
*
eNB
;
PHY_VARS_eNB
*
eNB
;
int
ret
;
for
(
inst
=
0
;
inst
<
nb_inst
;
inst
++
)
{
for
(
inst
=
0
;
inst
<
nb_inst
;
inst
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
eNB
=
PHY_vars_eNB_g
[
inst
][
CC_id
];
eNB
=
PHY_vars_eNB_g
[
inst
][
CC_id
];
...
@@ -1755,37 +1758,73 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
...
@@ -1755,37 +1758,73 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
node_timing
=
node_timing
[
CC_id
];
eNB
->
node_timing
=
node_timing
[
CC_id
];
eNB
->
abstraction_flag
=
0
;
eNB
->
abstraction_flag
=
0
;
LOG_I
(
PHY
,
"Initializing eNB %d CC_id %d : (%s,%s)
\n
"
,
inst
,
CC_id
,
eNB_functions
[
node_function
[
CC_id
]],
eNB_timing
[
node_timing
[
CC_id
]]);
LOG_I
(
PHY
,
"Initializing eNB %d CC_id %d : (%s,%s)
\n
"
,
inst
,
CC_id
,
eNB_functions
[
node_function
[
CC_id
]],
eNB_timing
[
node_timing
[
CC_id
]]);
switch
(
node_function
[
CC_id
])
{
switch
(
node_function
[
CC_id
])
{
case
NGFI_RRU_IF5
:
case
NGFI_RRU_IF5
:
eNB
->
do_prach
=
NULL
;
eNB
->
do_prach
=
NULL
;
eNB
->
fep
=
eNB_fep_rru_if5
;
eNB
->
fep
=
eNB_fep_rru_if5
;
eNB
->
proc_uespec_rx
=
NULL
;
eNB
->
proc_uespec_rx
=
NULL
;
eNB
->
proc_tx
=
NULL
;
eNB
->
proc_tx
=
proc_tx_rru_if5
;;
eNB
->
tx_fh
=
NULL
;
eNB
->
tx_fh
=
NULL
;
eNB
->
rx_fh
=
rx_rf
;
eNB
->
rx_fh
=
rx_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_if
=
start_if
;
eNB
->
start_if
=
start_if
;
ret
=
openair0_device_load
(
&
eNB
->
rfdevice
,
&
openair0_cfg
[
0
]);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize rf device
\n
"
);
exit
(
-
1
);
}
eNB
->
rfdevice
.
host_type
=
RRH_HOST
;
eNB
->
ifdevice
.
host_type
=
RRH_HOST
;
ret
=
openair0_transport_load
(
&
eNB
->
ifdevice
,
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
ret
,
CC_id
);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
break
;
break
;
case
NGFI_RRU_IF4p5
:
case
NGFI_RRU_IF4p5
:
eNB
->
do_prach
=
do_prach
;
eNB
->
do_prach
=
do_prach
;
eNB
->
fep
=
eNB_fep_full
;
eNB
->
fep
=
eNB_fep_full
;
eNB
->
proc_uespec_rx
=
NULL
;
eNB
->
proc_uespec_rx
=
NULL
;
eNB
->
proc_tx
=
proc_tx_rru_if4p5
;
eNB
->
proc_tx
=
proc_tx_rru_if4p5
;
eNB
->
tx_fh
=
NULL
;
eNB
->
tx_fh
=
NULL
;
eNB
->
rx_fh
=
rx_rf
;
eNB
->
rx_fh
=
rx_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_if
=
start_if
;
eNB
->
start_if
=
start_if
;
ret
=
openair0_device_load
(
&
eNB
->
rfdevice
,
&
openair0_cfg
[
0
]);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize rf device
\n
"
);
exit
(
-
1
);
}
eNB
->
rfdevice
.
host_type
=
RRH_HOST
;
eNB
->
ifdevice
.
host_type
=
RRH_HOST
;
ret
=
openair0_transport_load
(
&
eNB
->
ifdevice
,
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
ret
,
CC_id
);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
malloc_IF4p5_buffer
(
eNB
);
malloc_IF4p5_buffer
(
eNB
);
break
;
break
;
case
eNodeB_3GPP
:
case
eNodeB_3GPP
:
eNB
->
do_prach
=
do_prach
;
eNB
->
do_prach
=
do_prach
;
eNB
->
fep
=
eNB_fep_full
;
eNB
->
fep
=
eNB_fep_full
;
eNB
->
proc_uespec_rx
=
phy_procedures_eNB_uespec_RX
;
eNB
->
proc_uespec_rx
=
phy_procedures_eNB_uespec_RX
;
eNB
->
proc_tx
=
proc_tx_full
;
eNB
->
proc_tx
=
proc_tx_full
;
eNB
->
tx_fh
=
NULL
;
eNB
->
tx_fh
=
NULL
;
eNB
->
rx_fh
=
rx_rf
;
eNB
->
rx_fh
=
rx_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_if
=
NULL
;
eNB
->
start_if
=
NULL
;
ret
=
openair0_device_load
(
&
eNB
->
rfdevice
,
&
openair0_cfg
[
0
]);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize rf device
\n
"
);
exit
(
-
1
);
}
eNB
->
rfdevice
.
host_type
=
BBU_HOST
;
eNB
->
ifdevice
.
host_type
=
BBU_HOST
;
break
;
break
;
case
eNodeB_3GPP_BBU
:
case
eNodeB_3GPP_BBU
:
eNB
->
do_prach
=
do_prach
;
eNB
->
do_prach
=
do_prach
;
...
@@ -1796,6 +1835,15 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
...
@@ -1796,6 +1835,15 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
rx_fh
=
rx_fh_if5
;
eNB
->
rx_fh
=
rx_fh_if5
;
eNB
->
start_rf
=
NULL
;
eNB
->
start_rf
=
NULL
;
eNB
->
start_if
=
start_if
;
eNB
->
start_if
=
start_if
;
eNB
->
rfdevice
.
host_type
=
BBU_HOST
;
eNB
->
ifdevice
.
host_type
=
BBU_HOST
;
ret
=
openair0_transport_load
(
&
eNB
->
ifdevice
,
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
ret
,
CC_id
);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
break
;
break
;
case
NGFI_RCC_IF4p5
:
case
NGFI_RCC_IF4p5
:
eNB
->
do_prach
=
do_prach
;
eNB
->
do_prach
=
do_prach
;
...
@@ -1806,7 +1854,16 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
...
@@ -1806,7 +1854,16 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
rx_fh
=
rx_fh_if4p5
;
eNB
->
rx_fh
=
rx_fh_if4p5
;
eNB
->
start_rf
=
NULL
;
eNB
->
start_rf
=
NULL
;
eNB
->
start_if
=
start_if
;
eNB
->
start_if
=
start_if
;
eNB
->
rfdevice
.
host_type
=
BBU_HOST
;
eNB
->
ifdevice
.
host_type
=
BBU_HOST
;
ret
=
openair0_transport_load
(
&
eNB
->
ifdevice
,
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
ret
,
CC_id
);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
malloc_IF4p5_buffer
(
eNB
);
malloc_IF4p5_buffer
(
eNB
);
break
;
break
;
case
NGFI_RAU_IF4p5
:
case
NGFI_RAU_IF4p5
:
eNB
->
do_prach
=
do_prach
;
eNB
->
do_prach
=
do_prach
;
...
@@ -1817,8 +1874,18 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
...
@@ -1817,8 +1874,18 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
rx_fh
=
rx_fh_if4p5
;
eNB
->
rx_fh
=
rx_fh_if4p5
;
eNB
->
start_rf
=
NULL
;
eNB
->
start_rf
=
NULL
;
eNB
->
start_if
=
start_if
;
eNB
->
start_if
=
start_if
;
malloc_IF4p5_buffer
(
eNB
);
eNB
->
rfdevice
.
host_type
=
BBU_HOST
;
eNB
->
ifdevice
.
host_type
=
BBU_HOST
;
ret
=
openair0_transport_load
(
&
eNB
->
ifdevice
,
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
ret
,
CC_id
);
if
(
ret
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
break
;
break
;
malloc_IF4p5_buffer
(
eNB
);
}
}
}
}
...
...
targets/RT/USER/lte-softmodem.c
View file @
dbae061e
...
@@ -119,7 +119,7 @@ unsigned short config_frames[4] = {2,9,11,13};
...
@@ -119,7 +119,7 @@ unsigned short config_frames[4] = {2,9,11,13};
// In lte-enb.c
// In lte-enb.c
extern
int
setup_eNB_buffers
(
PHY_VARS_eNB
**
phy_vars_eNB
,
openair0_config_t
*
openair0_cfg
,
openair0_rf_map
rf_map
[
MAX_NUM_CCs
]);
extern
int
setup_eNB_buffers
(
PHY_VARS_eNB
**
phy_vars_eNB
,
openair0_config_t
*
openair0_cfg
,
openair0_rf_map
rf_map
[
MAX_NUM_CCs
]);
extern
void
init_eNB
(
eNB_func_t
*
,
eNB_timing_t
*
,
int
);
extern
void
init_eNB
(
eNB_func_t
*
,
eNB_timing_t
*
,
int
,
eth_params_t
*
);
extern
void
stop_eNB
(
int
);
extern
void
stop_eNB
(
int
);
extern
void
kill_eNB_proc
(
void
);
extern
void
kill_eNB_proc
(
void
);
...
@@ -1643,64 +1643,6 @@ int main( int argc, char **argv )
...
@@ -1643,64 +1643,6 @@ int main( int argc, char **argv )
openair0_cfg
[
0
].
log_level
=
glog_level
;
openair0_cfg
[
0
].
log_level
=
glog_level
;
if
(
UE_flag
==
0
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
node_function
[
CC_id
]
==
NGFI_RRU_IF4p5
||
node_function
[
CC_id
]
==
NGFI_RRU_IF5
)
{
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
.
host_type
=
RRH_HOST
;
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
.
host_type
=
RRH_HOST
;
}
else
{
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
.
host_type
=
BBU_HOST
;
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
.
host_type
=
BBU_HOST
;
}
}
}
else
{
/* device host type is set*/
PHY_vars_UE_g
[
0
][
0
]
->
rfdevice
.
host_type
=
BBU_HOST
;
/* device type is initialized NONE_DEV (no RF device) when the RF device will be initiated device type will be set */
PHY_vars_UE_g
[
0
][
0
]
->
rfdevice
.
type
=
NONE_DEV
;
/* transport type is initialized NONE_TP (no transport protocol) when the transport protocol will be initiated transport protocol type will be set */
PHY_vars_UE_g
[
0
][
0
]
->
rfdevice
.
transp_type
=
NONE_TP
;
}
int
returns
=-
1
;
// Load RF device and initialize
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
node_function
[
CC_id
]
==
NGFI_RRU_IF5
||
node_function
[
CC_id
]
==
NGFI_RRU_IF4p5
||
node_function
[
CC_id
]
==
eNodeB_3GPP
)
{
if
(
mode
!=
loop_through_memory
)
{
returns
=
(
UE_flag
==
0
)
?
openair0_device_load
(
&
(
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
),
&
openair0_cfg
[
0
])
:
openair0_device_load
(
&
(
PHY_vars_UE_g
[
0
][
CC_id
]
->
rfdevice
),
&
openair0_cfg
[
0
]);
printf
(
"openair0_device_init returns %d for CC_id %d
\n
"
,
returns
,
CC_id
);
if
(
returns
<
0
)
{
printf
(
"Exiting, cannot initialize device
\n
"
);
exit
(
-
1
);
}
}
else
if
(
mode
==
loop_through_memory
)
{
}
}
}
// Load transport protocol and initialize
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
((
UE_flag
==
0
)
&&
(
node_function
[
CC_id
]
!=
eNodeB_3GPP
))
{
if
(
mode
!=
loop_through_memory
)
{
returns
=
openair0_transport_load
(
&
(
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
),
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
returns
,
CC_id
);
if
(
returns
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
}
else
if
(
mode
==
loop_through_memory
)
{
}
}
}
printf
(
"Done initializing RF and IF devices
\n
"
);
mac_xface
=
malloc
(
sizeof
(
MAC_xface
));
mac_xface
=
malloc
(
sizeof
(
MAC_xface
));
...
@@ -1854,7 +1796,7 @@ int main( int argc, char **argv )
...
@@ -1854,7 +1796,7 @@ int main( int argc, char **argv )
// start the main thread
// start the main thread
if
(
UE_flag
==
1
)
init_UE
(
1
);
if
(
UE_flag
==
1
)
init_UE
(
1
);
else
init_eNB
(
node_function
,
node_timing
,
1
);
else
init_eNB
(
node_function
,
node_timing
,
1
,
eth_params
);
// Sleep to allow all threads to setup
// Sleep to allow all threads to setup
sleep
(
3
);
sleep
(
3
);
...
...
targets/RT/USER/lte-ue.c
View file @
dbae061e
...
@@ -179,12 +179,17 @@ void init_UE(int nb_inst) {
...
@@ -179,12 +179,17 @@ void init_UE(int nb_inst) {
int
error_code
;
int
error_code
;
int
inst
;
int
inst
;
PHY_VARS_UE
*
UE
;
PHY_VARS_UE
*
UE
;
int
ret
;
for
(
inst
=
0
;
inst
<
nb_inst
;
inst
++
)
{
for
(
inst
=
0
;
inst
<
nb_inst
;
inst
++
)
{
printf
(
"Intializing UE Threads for instance %d ...
\n
"
,
inst
);
printf
(
"Intializing UE Threads for instance %d ...
\n
"
,
inst
);
init_UE_threads
(
inst
);
init_UE_threads
(
inst
);
sleep
(
1
);
sleep
(
1
);
UE
=
PHY_vars_UE_g
[
inst
][
0
];
UE
=
PHY_vars_UE_g
[
inst
][
0
];
ret
=
openair0_device_load
(
&
(
UE
->
rfdevice
),
&
openair0_cfg
[
0
]);
UE
->
rfdevice
.
host_type
=
BBU_HOST
;
UE
->
rfdevice
.
type
=
NONE_DEV
;
error_code
=
pthread_create
(
&
UE
->
proc
.
pthread_ue
,
&
UE
->
proc
.
attr_ue
,
UE_thread
,
NULL
);
error_code
=
pthread_create
(
&
UE
->
proc
.
pthread_ue
,
&
UE
->
proc
.
attr_ue
,
UE_thread
,
NULL
);
if
(
error_code
!=
0
)
{
if
(
error_code
!=
0
)
{
...
...
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