Commit 140efe0e authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/fix-excessive-rebuilds' into integration_2024_w35

parents fdd29946 8bffd166
...@@ -84,7 +84,6 @@ set (OPENAIR2_DIR ${OPENAIR_DIR}/openair2) ...@@ -84,7 +84,6 @@ set (OPENAIR2_DIR ${OPENAIR_DIR}/openair2)
set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3) set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3)
set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3) set (OPENAIR3_DIR ${OPENAIR_DIR}/openair3)
set (OPENAIR_CMAKE ${OPENAIR_DIR}/cmake_targets) set (OPENAIR_CMAKE ${OPENAIR_DIR}/cmake_targets)
set (OPENAIR_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
project (OpenAirInterface) project (OpenAirInterface)
...@@ -254,12 +253,6 @@ if(GIT_FOUND) ...@@ -254,12 +253,6 @@ if(GIT_FOUND)
) )
endif() endif()
# Below is a hard-coded info
set (FIRMWARE_VERSION "No svn information")
add_definitions("-DFIRMWARE_VERSION=\"${FIRMWARE_VERSION}\"")
add_definitions("-DPACKAGE_VERSION=\"Branch: ${GIT_BRANCH} Abrev. Hash: ${GIT_COMMIT_HASH} Date: ${GIT_COMMIT_DATE}\"")
add_definitions("-DPACKAGE_BUGREPORT=\"openair4g-devel@lists.eurecom.fr\"")
# Debug related options # Debug related options
######################################### #########################################
add_boolean_option(DEBUG_ASN1 False "Enable ASN1 debug logs" OFF) add_boolean_option(DEBUG_ASN1 False "Enable ASN1 debug logs" OFF)
...@@ -544,16 +537,8 @@ add_boolean_option(NAS_UE True "NAS UE INSTANCE (<> NAS_MME)" ...@@ -544,16 +537,8 @@ add_boolean_option(NAS_UE True "NAS UE INSTANCE (<> NAS_MME)"
add_boolean_option(RRC_DEFAULT_RAB_IS_AM True "set the LTE RLC mode to AM for the default bearer, otherwise it is UM." ON) add_boolean_option(RRC_DEFAULT_RAB_IS_AM True "set the LTE RLC mode to AM for the default bearer, otherwise it is UM." ON)
# add the binary tree to the search path for include files # add the binary tree to the search path for include files
####################################################### # We will find common/oai_version.h after generation in target directory
# We will find ConfigOAI.h after generation in target directory include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories("${OPENAIR_BIN_DIR}")
# add directories to find all include files
# the internal rule is to use generic names such as defs.h
# but to make it uniq name as adding the relative path in the include directtive
# example: #include "RRC/LTE/rrc_defs.h"
#find_path (include_dirs_all *.h ${OPENAIR_DIR})
#find_path (include_dirs_all *.h PATHS /usr/include NO_CMAKE_PATH)
#include_directories("${include_dirs_all}")
# Legacy exact order # Legacy exact order
......
add_subdirectory(utils) add_subdirectory(utils)
configure_file(oai_version.h.in oai_version.h @ONLY)
/*
* 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 OAI_VERSION_H_
#define OAI_VERSION_H_
#define GIT_BRANCH "@GIT_BRANCH@"
#define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@"
#define GIT_COMMIT_DATE "@GIT_COMMIT_DATE@"
#define OAI_FIRMWARE_VERSION GIT_COMMIT_HASH
#define OAI_PACKAGE_VERSION "Branch: " GIT_BRANCH " Abrev. Hash: " GIT_COMMIT_HASH " Date: " GIT_COMMIT_DATE
#endif /* OAI_VERSION_H_ */
...@@ -6,7 +6,7 @@ int load_module_shlib(char *modname,loader_shlibfunc_t *farray, int numf) ...@@ -6,7 +6,7 @@ int load_module_shlib(char *modname,loader_shlibfunc_t *farray, int numf)
* Formats the full shared library path, using the `modname` argument and the loader `shlibpath` and `shlibversion`configuration parameters. * Formats the full shared library path, using the `modname` argument and the loader `shlibpath` and `shlibversion`configuration parameters.
* loads the shared library, using the dlopen system call * loads the shared library, using the dlopen system call
* looks for `< modname >_autoinit` symbol, using the `dlsym` system call and possibly call the corresponding function. * looks for `< modname >_autoinit` symbol, using the `dlsym` system call and possibly call the corresponding function.
* looks for `< modname >_checkbuildver` symbol, using the `dlsym` system call and possibly calls the corresponding function. If the return value of this call is `-1`, program execution is stopped. It is the responsibility of the shared library developer to implement or not a `< modname >_checkbuildver` function and to decide if a version mismatch is a fatal condition. The `< modname >_checkbuildver` function must match the `checkverfunc_t` function type. The first argument is the main executable version, as set in the `PACKAGE_VERSION` macro defined in the [oai CMakeLists](https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/CMakeLists.txt#L218), around line 218. The second argument points to the shared library version which should be set by the `< modname >_checkbuildver` function. * looks for `< modname >_checkbuildver` symbol, using the `dlsym` system call and possibly calls the corresponding function. If the return value of this call is `-1`, program execution is stopped. It is the responsibility of the shared library developer to implement or not a `< modname >_checkbuildver` function and to decide if a version mismatch is a fatal condition. The `< modname >_checkbuildver` function must match the `checkverfunc_t` function type. The first argument is the main executable version, as set in the `OAI_PACKAGE_VERSION` macro defined in the [`common/CMakeLists`](../../../CMakeLists). The second argument points to the shared library version which should be set by the `< modname >_checkbuildver` function.
* If the farray pointer is null, looks for `< modname >_getfarray` symbol, calls the corresponding function when the symbol is found. `< modname >_getfarray` takes one argument, a pointer to a `loader_shlibfunc_t` array, and returns the number of items in this array, as defined by the `getfarrayfunc_t` type. The `loader_shlibfunc_t` array returned by the shared library must be fully filled (both `fname` and `fptr` fields). * If the farray pointer is null, looks for `< modname >_getfarray` symbol, calls the corresponding function when the symbol is found. `< modname >_getfarray` takes one argument, a pointer to a `loader_shlibfunc_t` array, and returns the number of items in this array, as defined by the `getfarrayfunc_t` type. The `loader_shlibfunc_t` array returned by the shared library must be fully filled (both `fname` and `fptr` fields).
* looks for the `numf` function symbols listed in the `farray[i].fname` arguments and set the corresponding `farray[i].fptr`function pointers * looks for the `numf` function symbols listed in the `farray[i].fname` arguments and set the corresponding `farray[i].fptr`function pointers
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <dlfcn.h> #include <dlfcn.h>
#include "openair1/PHY/defs_common.h" #include "openair1/PHY/defs_common.h"
#include "common/oai_version.h"
#define LOAD_MODULE_SHLIB_MAIN #define LOAD_MODULE_SHLIB_MAIN
#include "common/config/config_userapi.h" #include "common/config/config_userapi.h"
...@@ -45,7 +46,7 @@ ...@@ -45,7 +46,7 @@
void loader_init(void) { void loader_init(void) {
paramdef_t LoaderParams[] = LOADER_PARAMS_DESC; paramdef_t LoaderParams[] = LOADER_PARAMS_DESC;
loader_data.mainexec_buildversion = PACKAGE_VERSION; loader_data.mainexec_buildversion = OAI_PACKAGE_VERSION;
int ret = config_get(config_get_if(), LoaderParams, sizeofArray(LoaderParams), LOADER_CONFIG_PREFIX); int ret = config_get(config_get_if(), LoaderParams, sizeofArray(LoaderParams), LOADER_CONFIG_PREFIX);
if (ret <0) { if (ret <0) {
printf("[LOADER] configuration couldn't be performed via config module, parameters set to default values\n"); printf("[LOADER] configuration couldn't be performed via config module, parameters set to default values\n");
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
#include "common/utils/threadPool/thread-pool.h" #include "common/utils/threadPool/thread-pool.h"
#include "executables/softmodem-common.h" #include "executables/softmodem-common.h"
#include <readline/history.h> #include <readline/history.h>
#include "common/oai_version.h"
#include "telnetsrv_phycmd.h" #include "telnetsrv_phycmd.h"
...@@ -938,10 +939,7 @@ int add_telnetcmd(char *modulename, telnetshell_vardef_t *var, telnetshell_cmdde ...@@ -938,10 +939,7 @@ int add_telnetcmd(char *modulename, telnetshell_vardef_t *var, telnetshell_cmdde
against main exec version. version mismatch not considered as fatal (interfaces not supposed to change) against main exec version. version mismatch not considered as fatal (interfaces not supposed to change)
*/ */
int telnetsrv_checkbuildver(char *mainexec_buildversion, char **shlib_buildversion) { int telnetsrv_checkbuildver(char *mainexec_buildversion, char **shlib_buildversion) {
#ifndef PACKAGE_VERSION *shlib_buildversion = OAI_PACKAGE_VERSION;
#define PACKAGE_VERSION "standalone built: " __DATE__ __TIME__
#endif
*shlib_buildversion = PACKAGE_VERSION;
if (strcmp(mainexec_buildversion, *shlib_buildversion) != 0) { if (strcmp(mainexec_buildversion, *shlib_buildversion) != 0) {
fprintf(stderr,"[TELNETSRV] shared lib version %s, doesn't match main version %s, compatibility should be checked\n", fprintf(stderr,"[TELNETSRV] shared lib version %s, doesn't match main version %s, compatibility should be checked\n",
......
...@@ -87,6 +87,6 @@ add_custom_target( ...@@ -87,6 +87,6 @@ add_custom_target(
add_dependencies(websrv websrvfront) add_dependencies(websrv websrvfront)
# copy frontend files to a websrv subdirectory of where oai copy all built files # copy frontend files to a websrv subdirectory of where oai copy all built files
add_custom_command(TARGET websrvfront add_custom_command(TARGET websrvfront
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/frontend/dist/softmodem-ngx ${OPENAIR_BIN_DIR}/../websrv POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/frontend/dist/softmodem-ngx ${CMAKE_CURRENT_BINARY_DIR}/../websrv
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/helpfiles ${OPENAIR_BIN_DIR}/../websrv/helpfiles COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/helpfiles ${CMAKE_CURRENT_BINARY_DIR}/../websrv/helpfiles
COMMENT "Moving frontend files to:\n ${OPENAIR_BIN_DIR}/../websrv \n " ) COMMENT "Moving frontend files to: ${CMAKE_CURRENT_BINARY_DIR}/../websrv" )
...@@ -38,7 +38,7 @@ PROJECT_NAME = OpenAirInterface ...@@ -38,7 +38,7 @@ PROJECT_NAME = OpenAirInterface
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = PROJECT_NUMBER = @GIT_COMMIT_HASH@ (@GIT_BRANCH@)
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all #undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
#include "assertions.h" #include "assertions.h"
#include "common/oai_version.h"
#include "PHY/types.h" #include "PHY/types.h"
...@@ -466,11 +467,8 @@ int main ( int argc, char **argv ) ...@@ -466,11 +467,8 @@ int main ( int argc, char **argv )
init_opt(); init_opt();
// to make a graceful exit when ctrl-c is pressed // to make a graceful exit when ctrl-c is pressed
set_softmodem_sighandler(); set_softmodem_sighandler();
#ifndef PACKAGE_VERSION
#define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL"
#endif
// strdup to put the sring in the core file for post mortem identification // strdup to put the sring in the core file for post mortem identification
LOG_I(HW, "Version: %s\n", strdup(PACKAGE_VERSION)); LOG_I(HW, "Version: %s\n", strdup(OAI_PACKAGE_VERSION));
/* Read configuration */ /* Read configuration */
if (RC.nb_inst > 0) { if (RC.nb_inst > 0) {
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include "pdcp.h" #include "pdcp.h"
#include "PHY/defs_UE.h" #include "PHY/defs_UE.h"
#include "common/oai_version.h"
#include "common/ran_context.h" #include "common/ran_context.h"
#include "common/config/config_userapi.h" #include "common/config/config_userapi.h"
#include "common/utils/load_module_shlib.h" #include "common/utils/load_module_shlib.h"
...@@ -575,11 +576,8 @@ int main( int argc, char **argv ) { ...@@ -575,11 +576,8 @@ int main( int argc, char **argv ) {
pdcp_pc5_socket_init(); pdcp_pc5_socket_init();
// to make a graceful exit when ctrl-c is pressed // to make a graceful exit when ctrl-c is pressed
set_softmodem_sighandler(); set_softmodem_sighandler();
#ifndef PACKAGE_VERSION
#define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL"
#endif
// strdup to put the sring in the core file for post mortem identification // strdup to put the sring in the core file for post mortem identification
LOG_I(HW, "Version: %s\n", strdup(PACKAGE_VERSION)); LOG_I(HW, "Version: %s\n", strdup(OAI_PACKAGE_VERSION));
// init the parameters // init the parameters
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "PHY/types.h" #include "PHY/types.h"
#include "PHY/defs_RU.h" #include "PHY/defs_RU.h"
#include "common/oai_version.h"
#include "common/config/config_userapi.h" #include "common/config/config_userapi.h"
#include "common/utils/load_module_shlib.h" #include "common/utils/load_module_shlib.h"
...@@ -160,11 +161,8 @@ int main ( int argc, char **argv ) ...@@ -160,11 +161,8 @@ int main ( int argc, char **argv )
T_Config_Init(); T_Config_Init();
#endif #endif
printf("configuring for RRU\n"); printf("configuring for RRU\n");
#ifndef PACKAGE_VERSION
#define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL"
#endif
// strdup to put the sring in the core file for post mortem identification // strdup to put the sring in the core file for post mortem identification
LOG_I(HW, "Version: %s\n", strdup(PACKAGE_VERSION)); LOG_I(HW, "Version: %s\n", strdup(OAI_PACKAGE_VERSION));
/* Read configuration */ /* Read configuration */
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* contact@openairinterface.org * contact@openairinterface.org
*/ */
#include "common/oai_version.h"
#include "common/utils/simple_executable.h" #include "common/utils/simple_executable.h"
#include "executables/softmodem-common.h" #include "executables/softmodem-common.h"
#include "common/utils/ocp_itti/intertask_interface.h" #include "common/utils/ocp_itti/intertask_interface.h"
...@@ -156,11 +157,8 @@ int main(int argc, char **argv) ...@@ -156,11 +157,8 @@ int main(int argc, char **argv)
exit_fun("[SOFTMODEM] Error, configuration module init failed\n"); exit_fun("[SOFTMODEM] Error, configuration module init failed\n");
} }
logInit(); logInit();
#ifndef PACKAGE_VERSION
#define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL"
#endif
// strdup to put the sring in the core file for post mortem identification // strdup to put the sring in the core file for post mortem identification
LOG_I(HW, "Version: %s\n", strdup(PACKAGE_VERSION)); LOG_I(HW, "Version: %s\n", strdup(OAI_PACKAGE_VERSION));
set_softmodem_sighandler(); set_softmodem_sighandler();
itti_init(TASK_MAX, tasks_info); itti_init(TASK_MAX, tasks_info);
int rc; int rc;
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all #undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
#include <common/utils/assertions.h> #include <common/utils/assertions.h>
#include "common/oai_version.h"
#include "PHY/types.h" #include "PHY/types.h"
#include "common/ran_context.h" #include "common/ran_context.h"
...@@ -644,11 +645,8 @@ int main( int argc, char **argv ) { ...@@ -644,11 +645,8 @@ int main( int argc, char **argv ) {
// initialize mscgen log after ITTI // initialize mscgen log after ITTI
init_opt(); init_opt();
#ifndef PACKAGE_VERSION
#define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL"
#endif
// strdup to put the sring in the core file for post mortem identification // strdup to put the sring in the core file for post mortem identification
char *pckg = strdup(PACKAGE_VERSION); char *pckg = strdup(OAI_PACKAGE_VERSION);
LOG_I(HW, "Version: %s\n", pckg); LOG_I(HW, "Version: %s\n", pckg);
// don't create if node doesn't connect to RRC/S1/GTP // don't create if node doesn't connect to RRC/S1/GTP
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <signal.h> #include <signal.h>
#include "T.h" #include "T.h"
#include "common/oai_version.h"
#include "assertions.h" #include "assertions.h"
#include "PHY/types.h" #include "PHY/types.h"
#include "PHY/defs_nr_UE.h" #include "PHY/defs_nr_UE.h"
...@@ -430,11 +431,8 @@ int main(int argc, char **argv) ...@@ -430,11 +431,8 @@ int main(int argc, char **argv)
if (ouput_vcd) { if (ouput_vcd) {
vcd_signal_dumper_init("/tmp/openair_dump_nrUE.vcd"); vcd_signal_dumper_init("/tmp/openair_dump_nrUE.vcd");
} }
#ifndef PACKAGE_VERSION
#define PACKAGE_VERSION "UNKNOWN-EXPERIMENTAL"
#endif
// strdup to put the sring in the core file for post mortem identification // strdup to put the sring in the core file for post mortem identification
char *pckg = strdup(PACKAGE_VERSION); char *pckg = strdup(OAI_PACKAGE_VERSION);
LOG_I(HW, "Version: %s\n", pckg); LOG_I(HW, "Version: %s\n", pckg);
PHY_vars_UE_g = malloc(sizeof(*PHY_vars_UE_g) * NB_UE_INST); PHY_vars_UE_g = malloc(sizeof(*PHY_vars_UE_g) * NB_UE_INST);
......
...@@ -31,7 +31,7 @@ PROJECT_NAME = @PACKAGE_NAME@ ...@@ -31,7 +31,7 @@ PROJECT_NAME = @PACKAGE_NAME@
# This could be handy for archiving the generated documentation or # This could be handy for archiving the generated documentation or
# if some version control system is used. # if some version control system is used.
PROJECT_NUMBER = @PACKAGE_VERSION@ PROJECT_NUMBER = @GIT_COMMIT_HASH@
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer # for a project that appears at the top of each page and should give viewer
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include "common/oai_version.h"
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
...@@ -359,10 +360,7 @@ void init_encoder_sse (void) { ...@@ -359,10 +360,7 @@ void init_encoder_sse (void) {
against main exec version. version mismatch no considered as fatal (interfaces not supposed to change) against main exec version. version mismatch no considered as fatal (interfaces not supposed to change)
*/ */
int coding_checkbuildver(char *mainexec_buildversion, char **shlib_buildversion) { int coding_checkbuildver(char *mainexec_buildversion, char **shlib_buildversion) {
#ifndef PACKAGE_VERSION *shlib_buildversion = OAI_PACKAGE_VERSION;
#define PACKAGE_VERSION "standalone built: " __DATE__ __TIME__
#endif
*shlib_buildversion = PACKAGE_VERSION;
if (strcmp(mainexec_buildversion, *shlib_buildversion) != 0) { if (strcmp(mainexec_buildversion, *shlib_buildversion) != 0) {
fprintf(stderr,"[CODING] shared lib version %s, doesn't match main version %s, compatibility should be checked\n", fprintf(stderr,"[CODING] shared lib version %s, doesn't match main version %s, compatibility should be checked\n",
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
# include "nas_parser.h" # include "nas_parser.h"
# include "nas_proc.h" # include "nas_proc.h"
#include "common/utils/mem/oai_memory.h" #include "common/utils/mem/oai_memory.h"
#include "common/oai_version.h"
#include "nas_user.h" #include "nas_user.h"
#include "common/ran_context.h" #include "common/ran_context.h"
...@@ -134,7 +135,7 @@ void *nas_ue_task(void *args_p) ...@@ -134,7 +135,7 @@ void *nas_ue_task(void *args_p)
user->at_response = calloc_or_fail(1, sizeof(at_response_t)); user->at_response = calloc_or_fail(1, sizeof(at_response_t));
user->lowerlayer_data = calloc_or_fail(1, sizeof(lowerlayer_data_t)); user->lowerlayer_data = calloc_or_fail(1, sizeof(lowerlayer_data_t));
/* Initialize NAS user */ /* Initialize NAS user */
nas_user_initialize(user, &user_api_emm_callback, &user_api_esm_callback, FIRMWARE_VERSION); nas_user_initialize(user, &user_api_emm_callback, &user_api_esm_callback, OAI_FIRMWARE_VERSION);
} }
} }
else else
...@@ -174,7 +175,7 @@ void *nas_ue_task(void *args_p) ...@@ -174,7 +175,7 @@ void *nas_ue_task(void *args_p)
user->at_response = calloc_or_fail(1, sizeof(at_response_t)); user->at_response = calloc_or_fail(1, sizeof(at_response_t));
user->lowerlayer_data = calloc_or_fail(1, sizeof(lowerlayer_data_t)); user->lowerlayer_data = calloc_or_fail(1, sizeof(lowerlayer_data_t));
/* Initialize NAS user */ /* Initialize NAS user */
nas_user_initialize(user, &user_api_emm_callback, &user_api_esm_callback, FIRMWARE_VERSION); nas_user_initialize(user, &user_api_emm_callback, &user_api_esm_callback, OAI_FIRMWARE_VERSION);
user->ueid = 0; user->ueid = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment