- Fix: avoid infinite loop on mulitcast read thread if no data to read
Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
Executable
+112
@@ -0,0 +1,112 @@
|
||||
CC = gcc
|
||||
|
||||
SSE3PROC = $(shell echo `grep ssse3 /proc/cpuinfo`)
|
||||
SSE4PROC = $(shell echo `grep sse4 /proc/cpuinfo`)
|
||||
CPUFLAGS = -mmmx -msse -msse2 -m32 -mssse3 #-msse4
|
||||
CPUFLAGS += $(shell if [ -z $$SSE3PROC]; then echo "" ; else echo "-mssse3"; fi)
|
||||
CPUFLAGS += $(shell if [ -z $$SSE4PROC]; then echo "" ; else echo "-msse4"; fi)
|
||||
cygwin = $(shell if [ $$OSTYPE = "cygwin" ] ; then echo "1" ; else echo "0" ; fi)
|
||||
|
||||
TOP_DIR = $(OPENAIR1_DIR)
|
||||
OPENAIR1_TOP = $(OPENAIR1_DIR)
|
||||
OPENAIR2_TOP = $(OPENAIR2_DIR)
|
||||
OPENAIR3_TOP = $(OPENAIR3_DIR)
|
||||
OPENAIR3 = $(OPENAIR3_DIR)
|
||||
|
||||
CFLAGS = -Wall -fno-strict-aliasing -DPHYSIM -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DMAX_MODULES=1 -g -ggdb $(CPUFLAGS) -I/usr/include/X11 #-Wno-packed-bitfield-compat
|
||||
|
||||
ASN1_MSG_INC = $(OPENAIR2_DIR)/RRC/LITE/MESSAGES
|
||||
|
||||
CFLAGS += -DOPENAIR_LTE -DOPENAIR2 #-DOFDMA_ULSCH -DIFFT_FPGA -DIFFT_FPGA_UE
|
||||
CFLAGS += -I/usr/include/libxml2 -lxml2
|
||||
|
||||
#CFLAGS += -DXFORMS
|
||||
|
||||
ifdef DEBUG_PHY
|
||||
CFLAGS += -DDEBUG_PHY
|
||||
endif
|
||||
|
||||
ifdef NAS_NETLINK
|
||||
CFLAGS += -DNAS_NETLINK -DLINUX -DDEBUG_CONTROL
|
||||
endif
|
||||
|
||||
CFLAGS += -DPHY_ABSTRACTION #-DEMIT_ASN_DEBUG=1
|
||||
CFLAGS += $(shell if [ $$OSTYPE = "cygwin" ] ; then echo "-DCYGWIN" ; fi)
|
||||
|
||||
#include $(OPENAIR1_DIR)/PHY/Makefile.inc
|
||||
#include $(OPENAIR1_DIR)/SCHED/Makefile.inc
|
||||
|
||||
|
||||
EXTRA_CFLAGS += -DOPENAIR2
|
||||
EXTRA_CFLAGS += -DASSERT
|
||||
EXTRA_CFLAGS += -DNO_RRM
|
||||
EXTRA_CFLAGS += -DTEST_RLC_AM
|
||||
|
||||
COMMON_DIR = $(OPENAIR2_TOP)/COMMON
|
||||
L2_INTERFACE_DIR = $(OPENAIR2_TOP)/RRC/L2_INTERFACE
|
||||
RLC_UM_DIR = $(OPENAIR2_TOP)/LAYER2/RLC/UM_v9.3.0
|
||||
RLC_AM_DIR = $(OPENAIR2_TOP)/LAYER2/RLC/AM_v9.3.0
|
||||
RLC_TM_DIR = $(OPENAIR2_TOP)/LAYER2/RLC/TM
|
||||
RLC_DIR = $(OPENAIR2_TOP)/LAYER2/RLC
|
||||
PDCP_DIR = $(OPENAIR2_TOP)/LAYER2/PDCP
|
||||
AT_DIR = $(OPENAIR2_TOP)/UTIL/AT_COMMANDS
|
||||
MEM_DIR = $(OPENAIR2_TOP)/UTIL/MEM
|
||||
LIST_DIR = $(OPENAIR2_TOP)/UTIL/LISTS
|
||||
MATH_DIR = $(OPENAIR2_TOP)/UTIL/MATH
|
||||
TIMER_DIR = $(OPENAIR2_TOP)/UTIL/TIMER
|
||||
PHY_INTERFACE_DIR = $(OPENAIR2_TOP)/PHY_INTERFACE
|
||||
RRC_DIR = $(OPENAIR2_TOP)/RRC/LITE
|
||||
L2_INTERFACE_DIR = $(OPENAIR2_TOP)/RRC/L2_INTERFACE
|
||||
MAC_DIR = $(OPENAIR2_TOP)/LAYER2/MAC
|
||||
LOG_DIR=$(OPENAIR2_TOP)/UTIL/LOG
|
||||
OCG_DIR=$(OPENAIR2_TOP)/UTIL/OCG
|
||||
OPT_DIR=$(OPENAIR2_TOP)/UTIL/OPT
|
||||
|
||||
|
||||
SOURCES_L2 = $(LIST_DIR)/list.c
|
||||
SOURCES_L2 += $(LIST_DIR)/list2.c
|
||||
|
||||
#SOURCES_L2 += $(AT_DIR)/parser.c
|
||||
|
||||
|
||||
SOURCES_L2 += $(MEM_DIR)/mem_block.c
|
||||
|
||||
AT_OBJS = $(AT_DIR)/parser.o
|
||||
LOG_OBJS = $(LOG_DIR)/log.o
|
||||
OPT_OBJS = $(OPT_DIR)/probe.o
|
||||
|
||||
L2_OBJS=$(addsuffix .o,$(basename $(SOURCES_L2))) $(PHY_INTERFACE_OBJS) $(MAC_OBJS) $(L2_INTERFACE_OBJS) $(RRC_OBJS) $(LOG_OBJS) $(OPT_OBJS) $(AT_OBJS)
|
||||
|
||||
|
||||
L2_incl = -I$(OPENAIR2_TOP) -I$(COMMON_DIR) -I$(RLC_DIR) -I$(RLC_AM_DIR) -I$(RLC_UM_DIR) -I$(RLC_TM_DIR) -I$(PDCP_DIR) -I$(MEM_DIR) -I$(LIST_DIR) -I$(LOG_DIR) -I$(AT_DIR) -I$(MATH_DIR) -I$(TIMER_DIR) -I$(OPENAIR3)/MESH -I$(OPENAIR2_TOP)/RRC/MESH -I$(OPENAIR2_TOP)/RRC/MESH/MESSAGES -I$(OPENAIR3)/MESH/RRM -I$(OPT_DIR)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ASN1_MSG_OBJS2 := $(foreach file, $(ASN1_MSG_OBJS), $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/$(file))
|
||||
|
||||
OBJ = $(PHY_OBJS) $(SIMULATION_OBJS) $(SCHED_OBJS) $(STATS_OBJS) $(ASN1_MSG_OBJS2)
|
||||
|
||||
all: testat
|
||||
|
||||
|
||||
$(OBJ) : %.o : %.c
|
||||
$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 -I$(TOP_DIR) $(L2_incl) -I$(ASN1_MSG_INC) -o $@ $<
|
||||
|
||||
$(L2_OBJS) : %.o : %.c
|
||||
$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -DMAC_CONTEXT=1 -DPHY_CONTEXT=1 -I$(TOP_DIR) $(L2_incl) -I$(ASN1_MSG_INC) -o $@ $<
|
||||
|
||||
testat : $(OBJ) $(L2_OBJS) oaisim.c
|
||||
echo CYGWIN variable is $(cygwin)
|
||||
$(CC) oaisim.c -I$(TOP_DIR) $(L2_incl) -I$(ASN1_MSG_INC) -o testat $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(L2_OBJS)
|
||||
|
||||
|
||||
clean:
|
||||
rm -f testat
|
||||
rm -f $(OBJ)
|
||||
rm -f $(L2_OBJS)
|
||||
rm -f *.o
|
||||
rm -f *.exe*
|
||||
|
||||
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <unistd.h>
|
||||
#include "SIMULATION/TOOLS/defs.h"
|
||||
#include "SIMULATION/RF/defs.h"
|
||||
#include "PHY/types.h"
|
||||
#include "PHY/defs.h"
|
||||
#include "PHY/vars.h"
|
||||
#include "MAC_INTERFACE/vars.h"
|
||||
|
||||
#include "LAYER2/RLC/AM_v9.3.0/rlc_am.h"
|
||||
#include "LAYER2/MAC/defs.h"
|
||||
#include "LAYER2/MAC/vars.h"
|
||||
#include "UTIL/LOG/log_if.h"
|
||||
#include "UTIL/LOG/log_extern.h"
|
||||
#include "RRC/LITE/vars.h"
|
||||
#include "PHY_INTERFACE/vars.h"
|
||||
#include "UTIL/OCG/OCG.h"
|
||||
#include "UTIL/AT_COMMANDS/parser.h"
|
||||
|
||||
mapping level_names[] =
|
||||
{
|
||||
{"emerg", LOG_EMERG},
|
||||
{"alert", LOG_ALERT},
|
||||
{"crit", LOG_CRIT},
|
||||
{"err", LOG_ERR},
|
||||
{"warn", LOG_WARNING},
|
||||
{"notice", LOG_NOTICE},
|
||||
{"info", LOG_INFO},
|
||||
{"debug", LOG_DEBUG},
|
||||
{"trace", LOG_TRACE},
|
||||
{NULL, -1}
|
||||
};
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char * g_log_level="trace"; // by default global log level is set to trace
|
||||
|
||||
//initialize the log generator
|
||||
logInit(map_str_to_int(level_names, g_log_level));
|
||||
LOG_T(LOG,"global log level is set to %s \n",g_log_level );
|
||||
|
||||
at_parse_init(at_null_callback_handler, mt_null_attach_state_request_handler, mt_null_attach_request_handler, mt_null_detach_request_handler);
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT=?\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT?\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT?\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT?\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT?\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT=1\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
at_parse_string("AT+CGATT=0\r");
|
||||
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user