summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Chanwoo Choi [Mon, 28 Dec 2020 04:43:47 +0000 (13:43 +0900)]
halapi: common: Add hal_common_(get|put)_backend() function to handle backend data
Following step is for getting the backend data which contains the
function pointers for each HAL module.
1. get library name of HAL backend
2. dlopen with library name
3. get symbol name of HAL backend
4. dlsym with symbol name
5. Get the backend data via backend->init()
In order to reduce the duplicate code on each HAL API packages,
add hal_common_get_backend() helper function which contains
the above steps to get the backend data.
And add hal_common_put_backend() helper function to free
the hal_backend instance and dlclose the shared library.
Change-Id: Ic603d3e4f0ba1ff2aed9699b1eaf925cbd97c60c
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Chanwoo Choi [Mon, 28 Dec 2020 04:50:34 +0000 (13:50 +0900)]
halapi: common: Divide hal-common.h into two header files
Divide hal-common.h into two header files as following:
- hal-common.h is used for HAL API packages (/platform/hal/api/)
- hal-common-interface.h is used for HAL backend packages (/platform/hal/device/)
Change-Id: Ida3192ed4dbb29d9b718b2b90f3a61f8ed380e2e
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Chanwoo Choi [Mon, 28 Dec 2020 07:21:36 +0000 (16:21 +0900)]
halapi: common: Add library and symbol name for hal-api-device
Change-Id: I83f661c30b1e2dcb763c9956804d03db57e3aa46
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Chanwoo Choi [Fri, 18 Dec 2020 04:20:37 +0000 (13:20 +0900)]
Add support hal-api-common library to check HAL ABI and support of haltest
Need to provide the helper function of HAL ABI version check
in order to support HAL API layer on Tizen 6.5. By supporing
the ABI check method, Tizen can separate the hal.img from core image
and then we can remove the h/w dependency from Tizen core image.
hal-api-common-*.rpm contains the shared library providing the helper
function of the HAL ABI version check and the HAL ABI data of all
modules. If some module changes the their owr HAL ABI interface,
they must update the ABI information to /platform/hal/api/common.
It contains the following files:
- /usr/lib/hal/libhal-api-common.so
- /usr/share/licenses/hal-api-common/LICENSE
hal-api-common-devel-*.rpm contains the header file for including
the helper function of HAL ABI version check.
It contains the following files:
- /usr/include/hal/hal-common.h
- /usr/lib/pkgconfig/hal-api-common.pc
But, this patch is not enough. Usually, the configuraiton data
like HAL ABI version information should get the file like xml, json
style format file and so on. But, it just specify the HAL ABI versin
information of all modules in the src/common.h as workardound style.
It must need to be fixed on later. And this version doesn't include
the any haltest code even if it is necessary. Also on later,
The role of common-haltest make the pre-considition environment
for all haltests and then execute the haltest file to verify
the hal.img and the implementation of HAL backend pacakges.
For example, show the relationship among hal-api-foo, hal-backend-foo
and hal-api-common as following:
-----------------------------------
| 'User of hal-api-foo' |
| executes C HAl API. |
-----------------------------------
|
| (Call HAL API)
|
-----------------------------------
| /usr/include/hal-foo.h |
| |
| | ----------------------------------
| hal-api-foo.rpm | <---> | (Check HAL ABI Version) |
| (/usr/lib/libhal-api-foo.so) | | |
| | | hal-api-common.rpm |
| | | (/usr/lib/libhal-api-common.so)|
| /usr/include/hal-foo-interface.h| ----------------------------------
----------------------------------|
|
| dlopen ("/hal/lib/libhal-backend-foo.so")
| dlsym ("hal_backend_foo_daa")
|
-----------------------------------
| hal-backend-foo-rpi4.rpm |
| (/hal/lib/libhal-backend-foo.so)|
-----------------------------------
Change-Id: Ifb4b10e94c419517882794cc101bfcd598570335
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Tizen Infrastructure [Fri, 18 Dec 2020 00:45:59 +0000 (00:45 +0000)]
Initial empty repository