Apply multi-hal interface 26/314326/3 accepted/tizen_9.0_unified accepted/tizen_unified accepted/tizen_unified_dev accepted/tizen_unified_toolchain accepted/tizen_unified_x accepted/tizen_unified_x_asan tizen tizen_9.0 accepted/tizen/9.0/unified/20241030.235611 accepted/tizen/unified/20240712.160055 accepted/tizen/unified/20240715.155436 accepted/tizen/unified/dev/20240715.080515 accepted/tizen/unified/toolchain/20240812.132135 accepted/tizen/unified/x/20240715.090413 accepted/tizen/unified/x/asan/20240813.230421 tizen_9.0_m2_release
authorWootak Jung <wootak.jung@samsung.com>
Wed, 10 Jul 2024 06:43:21 +0000 (15:43 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Wed, 10 Jul 2024 06:48:40 +0000 (15:48 +0900)
Change-Id: I2ddf0e960e776c55cc1bddc24b95b5d4705a3811
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
CMakeLists.txt
packaging/bluetooth-firmware-bcm.spec
set-address/CMakeLists.txt
set-address/setbd.c
src/CMakeLists.txt
src/hal-backend-bluetooth.c
src/log.h [new file with mode: 0644]

index de149a5..95e718e 100644 (file)
@@ -1,12 +1,9 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(bluetooth-firmware-bcm C)
 
-INCLUDE(FindPkgConfig)
-pkg_check_modules(package REQUIRED glib-2.0 vconf)
-
-FOREACH(flag ${package_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
+IF(ENABLE_DLOG STREQUAL on)
+       ADD_DEFINITIONS("-DFEATURE_DLOG")
+ENDIF()
 
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fPIE")
 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
index 2015569..44edf42 100644 (file)
@@ -8,11 +8,8 @@ License:    Apache-2.0 and Broadcom
 # resolved in the future, by I don't have that power. - Ryan Ware
 Source0:    %{name}-%{version}.tar.gz
 
-BuildRequires:  pkgconfig(vconf)
-BuildRequires:  pkgconfig(dlog)
-BuildRequires:  pkgconfig(hal-api-common)
-BuildRequires:  pkgconfig(hal-api-bluetooth)
 BuildRequires:  cmake
+BuildRequires:  pkgconfig(hal-rootstrap)
 
 %description
  firmware and tools for bluetooth
index 2544f1e..6335349 100644 (file)
@@ -3,6 +3,18 @@ PROJECT(setbd C)
 
 SET(SRCS setbd.c)
 
+INCLUDE(FindPkgConfig)
+pkg_check_modules(setbd_pkgs REQUIRED
+       hal-rootstrap
+)
+
+FOREACH(flag ${setbd_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 
 FIND_PROGRAM(UNAME NAMES uname)
@@ -18,7 +30,7 @@ ADD_DEFINITIONS("-D__BROADCOM_PATCH__")
 ADD_DEFINITIONS("-DDEBUG_EN")
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${package_LDFLAGS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${setbd_pkgs_LDFLAGS})
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${HAL_SYSCONF_DIR}/bluetooth)
 
index 49f9525..c9ccf48 100644 (file)
@@ -28,7 +28,6 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <time.h>
-#include <vconf.h>
 #include <glib.h>
 
 #ifdef __TI_PATCH__
index 964fe52..a5d2986 100644 (file)
@@ -5,9 +5,7 @@ INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(hal-backend-bluetooth_pkgs REQUIRED
-       dlog
-       hal-api-common
-       hal-api-bluetooth
+       hal-rootstrap
 )
 
 SET(SRCS
index b62024a..47ae48f 100644 (file)
@@ -1,13 +1,27 @@
+/*
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdint.h>
 #include <errno.h>
-#include <dlog.h>
 
 #include <hal/hal-bluetooth-interface.h>
 
-#undef LOG_TAG
-#define LOG_TAG "HALAPI_BLUETOOTH"
+#include "log.h"
 
 #define EXPORT __attribute__ ((visibility("default")))
 
@@ -16,13 +30,13 @@ static int bluetooth_bcm_start(void)
        int ret;
        ret = system("/hal/etc/bluetooth/bt-dev-start.sh");
        if (ret == 0x100) {
-               LOGE("script internal failed");
+               _E("script internal failed");
                return HAL_BACKEND_ERROR_INTERNAL;
        } else if (ret == 0x200) {
-               LOGE("script timeout failed");
+               _E("script timeout failed");
                return HAL_BACKEND_ERROR_TIMEOUT;
        }
-       LOGD("script started successfully");
+       _D("script started successfully");
        return HAL_BACKEND_ERROR_NONE;
 }
 
@@ -31,13 +45,13 @@ static int bluetooth_bcm_stop(void)
        int ret;
        ret = system("/hal/etc/bluetooth/bt-dev-end.sh");
        if (ret == 0x100) {
-               LOGE("script internal failed");
+               _E("script internal failed");
                return HAL_BACKEND_ERROR_INTERNAL;
        } else if (ret == 0x200) {
-               LOGE("script timeout failed");
+               _E("script timeout failed");
                return HAL_BACKEND_ERROR_TIMEOUT;
        }
-       LOGD("script started successfully");
+       _D("script started successfully");
        return HAL_BACKEND_ERROR_NONE;
 }
 
@@ -45,31 +59,32 @@ static int bluetooth_bcm_init(void **data)
 {
        hal_backend_bluetooth_funcs *bluetooth_funcs;
 
-       bluetooth_funcs = calloc(1, sizeof(hal_backend_bluetooth_funcs));
+       if (!data) {
+               _E("data is NULL");
+               return -EINVAL;
+       }
+
+       bluetooth_funcs = *(hal_backend_bluetooth_funcs **)data;
        if (!bluetooth_funcs)
-               return -ENOMEM;
+               return -EINVAL;
 
        bluetooth_funcs->start = bluetooth_bcm_start;
        bluetooth_funcs->stop = bluetooth_bcm_stop;
 
-       *data = (void *)bluetooth_funcs;
-
        return 0;
 }
 
 static int bluetooth_bcm_exit(void *data)
 {
-       if (!data)
-               return -EINVAL;
-       free(data);
-
        return 0;
 }
 
 hal_backend EXPORT hal_backend_bluetooth_data = {
-       .name = "bluetooth",
-       .vendor = "broadcom",
+       .name = "bluetooth-bcm",
+       .vendor = "Samsung",
        .abi_version = HAL_ABI_VERSION_TIZEN_6_5,
        .init = bluetooth_bcm_init,
        .exit = bluetooth_bcm_exit,
+       .major_version = 1,
+       .minor_version = 0,
 };
diff --git a/src/log.h b/src/log.h
new file mode 100644 (file)
index 0000000..14e266d
--- /dev/null
+++ b/src/log.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ */
+
+#ifdef FEATURE_DLOG
+       #define LOG_TAG "HAL_BACKEND_BLUETOOTH_BCM"
+       #include <dlog.h>
+       #define _D(fmt, args...)        dlog_print(DLOG_DEBUG, LOG_TAG, fmt, ##args)
+       #define _I(fmt, args...)        dlog_print(DLOG_INFO, LOG_TAG, fmt, ##args)
+       #define _W(fmt, args...)        dlog_print(DLOG_WARN, LOG_TAG, fmt, ##args)
+       #define _E(fmt, args...)        dlog_print(DLOG_ERROR, LOG_TAG, fmt, ##args)
+#else
+       #define _D(x, ...)
+       #define _I(x, ...)
+       #define _W(x, ...)
+       #define _E(x, ...)
+#endif