1 /*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15
16 #include "hitls_build.h"
17 #include "bsl_errno.h"
18 #include "bsl_sal.h"
19
20 #ifdef HITLS_BSL_SAL_NET
21 #include "sal_netimpl.h"
22 #endif
23 #ifdef HITLS_BSL_SAL_TIME
24 #include "sal_timeimpl.h"
25 #endif
26 #ifdef HITLS_BSL_SAL_FILE
27 #include "sal_fileimpl.h"
28 #endif
29 #ifdef HITLS_BSL_SAL_DL
30 #include "sal_dlimpl.h"
31 #endif
32
33 #include "sal_lockimpl.h"
34 #include "sal_memimpl.h"
35
36 /* The prefix of BSL_SAL_CB_FUNC_TYPE */
37 #define BSL_SAL_MEM_CB 0x0100
38 #define BSL_SAL_THREAD_CB 0x0200
39
40 #ifdef HITLS_BSL_SAL_NET
41 #define BSL_SAL_NET_CB 0x0300
42 #endif
43
44 #ifdef HITLS_BSL_SAL_TIME
45 #define BSL_SAL_TIME_CB 0x0400
46 #endif
47
48 #ifdef HITLS_BSL_SAL_FILE
49 #define BSL_SAL_FILE_CB 0x0500
50 #endif
51
52 #ifdef HITLS_BSL_SAL_DL
53 #define BSL_SAL_DL_CB 0x0700
54 #endif
55
BSL_SAL_CallBack_Ctrl(BSL_SAL_CB_FUNC_TYPE funcType,void * funcCb)56 int32_t BSL_SAL_CallBack_Ctrl(BSL_SAL_CB_FUNC_TYPE funcType, void *funcCb)
57 {
58 uint32_t type = (uint32_t)funcType & 0xff00;
59 switch (type) {
60 case BSL_SAL_MEM_CB:
61 return SAL_MemCallBack_Ctrl(funcType, funcCb);
62 case BSL_SAL_THREAD_CB:
63 return SAL_ThreadCallback_Ctrl(funcType, funcCb);
64 #ifdef HITLS_BSL_SAL_NET
65 case BSL_SAL_NET_CB:
66 return SAL_NetCallback_Ctrl(funcType, funcCb);
67 #endif
68 #ifdef HITLS_BSL_SAL_TIME
69 case BSL_SAL_TIME_CB:
70 return SAL_TimeCallback_Ctrl(funcType, funcCb);
71 #endif
72 #ifdef HITLS_BSL_SAL_FILE
73 case BSL_SAL_FILE_CB:
74 return SAL_FileCallback_Ctrl(funcType, funcCb);
75 #endif
76 #ifdef HITLS_BSL_SAL_DL
77 case BSL_SAL_DL_CB:
78 return SAL_DlCallback_Ctrl(funcType, funcCb);
79 #endif
80 default:
81 return BSL_SAL_ERR_BAD_PARAM;
82 }
83 }