usb_gadget: apply next HAL architecture (hal api + backend)
authorINSUN PYO <insun.pyo@samsung.com>
Tue, 19 Jan 2021 06:10:04 +0000 (15:10 +0900)
committerINSUN PYO <insun.pyo@samsung.com>
Mon, 25 Jan 2021 22:58:11 +0000 (07:58 +0900)
Change-Id: Iacf00a03eeebfb24aa10348f4f8e157a71cd915d

CMakeLists.txt
hw/usb_client/CMakeLists.txt [deleted file]
hw/usb_client/usb_client.c [deleted file]
hw/usb_gadget/CMakeLists.txt
hw/usb_gadget/usb_gadget.c
packaging/device-manager-plugin-emul.spec

index d55a9a2415cb51472e0fe158564ffddb398f6842..4c624d387c0941daae67ca919c1dcbbcd9fd30bb 100644 (file)
@@ -40,5 +40,4 @@ ADD_SUBDIRECTORY(hw/battery)
 ADD_SUBDIRECTORY(hw/display)
 ADD_SUBDIRECTORY(hw/external_connection)
 ADD_SUBDIRECTORY(hw/usb_gadget)
-ADD_SUBDIRECTORY(hw/usb_client)
 ADD_SUBDIRECTORY(hw/haptic)
diff --git a/hw/usb_client/CMakeLists.txt b/hw/usb_client/CMakeLists.txt
deleted file mode 100644 (file)
index 32183ab..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(usb_client C)
-
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(usb_client_pkgs REQUIRED hwcommon dlog glib-2.0)
-
-FOREACH(flag ${usb_client_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}")
-
-ADD_LIBRARY(${PROJECT_NAME} MODULE usb_client.c)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${usb_client_pkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "")
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}/hw COMPONENT RuntimeLibraries)
diff --git a/hw/usb_client/usb_client.c b/hw/usb_client/usb_client.c
deleted file mode 100644 (file)
index 4993f28..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * device-node
- *
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * 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 <hw/usb_client.h>
-
-static int legacy_reconfigure_gadget(struct usb_client *usb, struct usb_gadget *gadget)
-{
-       return 0;
-}
-
-static int legacy_enable(struct usb_client *usb)
-{
-       return 0;
-}
-
-static int legacy_disable(struct usb_client *usb)
-{
-       return 0;
-}
-
-static int legacy_gadget_open(struct hw_info *info,
-               const char *id, struct hw_common **common)
-{
-       struct usb_client *legacy;
-
-       if (!info || !common)
-               return -EINVAL;
-
-       legacy = calloc(1, sizeof(*legacy));
-       if (!legacy)
-               return -ENOMEM;
-
-       legacy->common.info = info;
-
-       legacy->reconfigure_gadget = legacy_reconfigure_gadget;
-       legacy->enable = legacy_enable;
-       legacy->disable = legacy_disable;
-
-       *common = &legacy->common;
-
-       return 0;
-}
-
-static int legacy_gadget_close(struct hw_common *common)
-{
-       struct usb_client *legacy;
-
-       if (!common)
-               return -EINVAL;
-
-       legacy = container_of(common, struct usb_client, common);
-
-       free(legacy);
-
-       return 0;
-}
-
-HARDWARE_MODULE_STRUCTURE = {
-       .magic = HARDWARE_INFO_TAG,
-       .hal_version = HARDWARE_INFO_VERSION,
-       .device_version = USB_CLIENT_HARDWARE_DEVICE_VERSION,
-       .id = USB_CLIENT_HARDWARE_DEVICE_ID,
-       .name = "legacy-gadget",
-       .open = legacy_gadget_open,
-       .close = legacy_gadget_close,
-};
index 039baa4eb3343c1874737267942dce78c76c924d..efebc325eb7a685a270a4fedd4bd6ded52917520 100644 (file)
@@ -1,12 +1,14 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(usb_gadget C)
+PROJECT(hal-backend-device-usb-gadget C)
 
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 
+INCLUDE_DIRECTORIES(../common)
+
 INCLUDE(FindPkgConfig)
-pkg_check_modules(usb_gadget_pkgs REQUIRED hwcommon)
+pkg_check_modules(hal-backend-device-usb-gadget_pkgs REQUIRED dlog hal-backend-device-common)
 
-FOREACH(flag ${usb_gadget_pkgs_CFLAGS})
+FOREACH(flag ${hal-backend-device-usb-gadget_pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
@@ -14,6 +16,5 @@ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
 
 ADD_LIBRARY(${PROJECT_NAME} MODULE usb_gadget.c)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${usb_gadget_pkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "")
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}/hw COMPONENT RuntimeLibraries)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${hal-backend-device-usb-gadget_pkgs_LDFLAGS})
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /hal/lib COMPONENT RuntimeLibraries)
index 2bf9d96ff5bae5b4f4ba777c69ef2d656719b9d3..7eb0134994b88b06fe40b53bf96c63908bf11e9c 100644 (file)
  * limitations under the License.
  */
 
-#include <hw/usb_gadget.h>
-
-HARDWARE_MODULE_STRUCTURE = {
-       .magic = HARDWARE_INFO_TAG,
-       .hal_version = HARDWARE_INFO_VERSION,
-       .device_version = USB_GADGET_DEVICE_VERSION,
-       .id = USB_GADGET_DEVICE_ID,
-       .name = "simple_translator",
-       .open = simple_translator_open,
-       .close = simple_translator_close,
+#include <errno.h>
+#include <stdlib.h>
+
+#include <hal/hal-common-interface.h>
+#include <hal/device/hal-common-interface.h>
+#include <hal/device/hal-usb_gadget-interface.h>
+
+#include "common.h"
+
+static int dummy_enable(void)
+{
+       return 0;
+}
+
+static int dummy_disable(void)
+{
+       return 0;
+}
+
+static int dummy_reconfigure_gadget(struct usb_gadget *gadget)
+{
+       return 0;
+}
+
+static int usb_gadget_init(void **data)
+{
+       hal_backend_usb_gadget_funcs *usb_gadget_funcs;
+
+       if (!data)
+               return -EINVAL;
+
+       usb_gadget_funcs = calloc(1, sizeof(hal_backend_usb_gadget_funcs));
+       if (!usb_gadget_funcs)
+               return -ENOMEM;
+
+       // usb_gadget_translator
+       if (simple_translator_open(usb_gadget_funcs)) {
+               _E("No USB gadget translator");
+               goto error_translator_open;
+       }
+
+       usb_gadget_funcs->enable = dummy_enable;
+       usb_gadget_funcs->disable = dummy_disable;
+       usb_gadget_funcs->reconfigure_gadget = dummy_reconfigure_gadget;
+
+       *data = (void *)usb_gadget_funcs;
+
+       return 0;
+
+error_translator_open:
+       free(usb_gadget_funcs);
+
+       return -ENODEV;
+}
+
+static int usb_gadget_exit(void *data)
+{
+       hal_backend_usb_gadget_funcs *usb_gadget_funcs = (hal_backend_usb_gadget_funcs *)data;
+
+       if (usb_gadget_funcs) {
+               simple_translator_close(usb_gadget_funcs);
+               free(usb_gadget_funcs);
+       }
+
+       return 0;
+}
+
+hal_backend EXPORT hal_backend_device_usb_gadget_data = {
+       .name = "usb_gadget",
+       .vendor = "RPI",
+       .abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+       .init = usb_gadget_init,
+       .exit = usb_gadget_exit,
 };
index c9a9f32114e96fc39c4e815080d3db4b267bfe20..83d13abc753d9d74f065fef3503e6b4461064124 100644 (file)
@@ -10,13 +10,13 @@ Requires(postun):   /sbin/ldconfig
 BuildRequires:      cmake
 BuildRequires:      pkgconfig(dlog)
 BuildRequires:      pkgconfig(devman_plugin)
-BuildRequires:      pkgconfig(hwcommon)
 BuildRequires:      pkgconfig(glib-2.0)
 BuildRequires:      pkgconfig(gio-2.0)
 BuildRequires:      pkgconfig(hal-api-common)
 BuildRequires:      pkgconfig(hal-api-device)
 BuildRequires:      pkgconfig(libsyscommon)
 BuildRequires:      pkgconfig(capi-system-info)
+BuildRequires:      pkgconfig(hal-backend-device-common)
 
 %description
 Emulator plugin for libdevice-node.
@@ -44,5 +44,4 @@ make
 %defattr(-,root,root,-)
 %manifest device-manager-plugin-emul.manifest
 %{_libdir}/libslp_devman_plugin.so
-%{_libdir}/hw/*.so
 /hal/lib/*.so*