Modify licenses
[scp/ocu/5gnr.git] / Include / vos_module.h
index 5dcbbc8..60a25a0 100644 (file)
@@ -1,12 +1,24 @@
 /******************************************************************************
-###############################################################################
-#   Copyright (c) [2017-2020] [ICT/CAS]                                        #
-#   Licensed under the ORAN Software License v1.0 (License)             #
-###############################################################################
-******************************************************************************/
-
-
-#ifndef __VOS_MODULE_H__ 
+*
+*   Copyright (c) 2020 ICT/CAS.
+*
+*   Licensed under the O-RAN Software License, Version 1.0 (the "Software License");
+*   you may not use this file except in compliance with the License.
+*   You may obtain a copy of the License at
+*
+*       https://www.o-ran.org/software
+*
+*   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.
+*
+*******************************************************************************/
+
+
+
+#ifndef __VOS_MODULE_H__
 #define __VOS_MODULE_H__
 
 #include "vos_types.h"
@@ -26,7 +38,7 @@ typedef enum module_type_e{
     VOS_MOD_T_HOST,             ///< host task
     VOS_MOD_T_USER,             ///< user task
     VOS_MOD_T_EXTERN,           ///< 外部模块 (不是 vos app 中的模块,其他的进程 )
-    VOS_MOD_T_MAX,              ///< 
+    VOS_MOD_T_MAX,              ///<
 }module_type_t;
 
 /** 模块通信类型 */
@@ -53,9 +65,9 @@ typedef enum module_comm_type_e{
 typedef struct vos_module_s{
     module_type_t       modType;                      ///< 模块类型
     LONG                commType;                     ///< 当前的通信类型
-    ULONG               moduleID;                     ///< 模块ID 
-    CHAR                name[MODULE_NAME_LEN];        ///< 模块名 
-    ULONG               queueID;                      ///< 模块消息队列,用于接收从其他模块发送过来的消息 
+    ULONG               moduleID;                     ///< 模块ID
+    CHAR                name[MODULE_NAME_LEN];        ///< 模块名
+    ULONG               queueID;                      ///< 模块消息队列,用于接收从其他模块发送过来的消息
     LONG                paraCount;                    ///< 无需关心,         (添加的额外参数个数)
     void                *pPara;                       ///< 无需关心,         (vos_mod_com_para_cb_t)
     LONG                paraLock;                     ///< 无需关心,
@@ -65,15 +77,15 @@ typedef struct vos_module_s{
 /** 采用非VOS通信方式的模块需要提供的handle函数,用于接收数据
 *   buf         用于消息接收的缓冲区
 *   size        buf 大小
-*   opval       额外信息,类型为 vos_mod_com_op_t 
+*   opval       额外信息,类型为 vos_mod_com_op_t
 *   opvalLen    opval的大小
-*   
+*
 */
 typedef LONG (*receive_handler)(VOID *buf,LONG size,VOID *opval,LONG opvalLen);
 
 
-/** 
- * 模块注册 API 
+/**
+ * 模块注册 API
  * 向VOS 模块管理中注册模块 。
  * @param[in ]   name         模块名,大小为 MODULE_NAME_LEN
  * @param[in]    module       模块管理信息
@@ -85,37 +97,37 @@ typedef LONG (*receive_handler)(VOID *buf,LONG size,VOID *opval,LONG opvalLen);
  *                                      module.name
  *                                      module.moduleID
  * @return       VOS_OK - 成功,其他 - 失败
- */ 
+ */
 LONG VOS_module_register(const CHAR *name,vos_module_t *module);
 
 
-/** 
- * 模块注销 API 
+/**
+ * 模块注销 API
  * 向VOS 模块管理中注册模块 。
  * @param[in ]   name         模块名,大小为 MODULE_NAME_LEN
  * @return       VOS_OK - 成功,其他 - 失败
- */ 
+ */
 LONG VOS_module_deregister(const CHAR *name);
 
 
-/** 
- * 根据模块ID获得模块名 
+/**
+ * 根据模块ID获得模块名
  * @param[in ]   id         模块ID
  * @param[out]   name       模块名,大小为 MODULE_NAME_LEN
  * @return       VOS_OK - 成功,其他 - 失败
- */ 
+ */
 LONG VOS_module_get_name(ULONG id,CHAR name[MODULE_NAME_LEN]);
 
-/** 
- * 根据模块名获得模块ID 
+/**
+ * 根据模块名获得模块ID
  * @param[in ]   name       模块名,大小为 MODULE_NAME_LEN
  * @return       成功返回模块ID,失败返回 0
- */ 
+ */
 ULONG VOS_module_get_Id(CHAR *name);
 
 
-/** 
- * 向某个模块发送异步消息 
+/**
+ * 向某个模块发送异步消息
  * @param[in ]   dst_slot           目的槽位号
  * @param[in ]   dst_moduleName     目的模块名,大小为 MODULE_NAME_LEN
  * @param[in ]   src_moduleName     源模块名,大小为 MODULE_NAME_LEN
@@ -123,12 +135,12 @@ ULONG VOS_module_get_Id(CHAR *name);
  * @param[in ]   msgData            消息数据
  * @param[in ]   msgDataLen         消息数据长度
  * @return       成功返回 VOS_OK,失败返回 其他
- */ 
+ */
 LONG VOS_SendAsynMsg2Module(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN],CHAR src_moduleName[MODULE_NAME_LEN],
                                     LONG msgCode,VOID *msgData,LONG msgDataLen);
 
-/** 
- * 向某个模块发送同步消息 
+/**
+ * 向某个模块发送同步消息
  * @param[in ]   dst_slot           目的槽位号
  * @param[in ]   dst_moduleName     目的模块名,大小为 MODULE_NAME_LEN
  * @param[in ]   src_moduleName     源模块名,大小为 MODULE_NAME_LEN
@@ -140,14 +152,14 @@ LONG VOS_SendAsynMsg2Module(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN],C
  * @param[out]   ackDataLen         输出:buf的有效长度
  * @param[in ]   timeout            等待接收的时间,单位毫秒,调用者自行判断需要等待时间,一般等待 5秒
  * @return       成功返回 VOS_OK,失败返回 其他
- */ 
+ */
 LONG VOS_SendSynMsg2Module(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN],CHAR src_moduleName[MODULE_NAME_LEN],
                                   LONG msgCode,VOID *msgData,LONG msgDataLen,VOID *ackData,LONG *ackDataLen,LONG timeout);
 
 
 
-/** 
- * 向某个模块发送异步消息,支持非VOS通信方式 
+/**
+ * 向某个模块发送异步消息,支持非VOS通信方式
  * @param[in ]   dst_slot           目的槽位号
  * @param[in ]   dst_moduleName     目的模块名,大小为 MODULE_NAME_LEN
  * @param[in ]   src_moduleName     源模块名,大小为 MODULE_NAME_LEN
@@ -158,14 +170,14 @@ LONG VOS_SendSynMsg2Module(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN],CH
  * @param[in ]   optval             可选参数,不需要则填NULL
  * @param[in ]   optlen             可选参数长度
  * @return       成功返回 VOS_OK,失败返回 其他
- */ 
+ */
 LONG VOS_SendAsynMsg2ModuleEx(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN],CHAR src_moduleName[MODULE_NAME_LEN],
                                       LONG msgCode,VOID *msgData,LONG msgDataLen,
                                       module_comm_type_t commType,VOID *optval,LONG optlen);
 
 
-/** 
- * 向某个模块发送同步消息,仅支持VOS通信方式 
+/**
+ * 向某个模块发送同步消息,仅支持VOS通信方式
  * @param[in ]   dst_slot           目的槽位号
  * @param[in ]   dst_moduleName     目的模块名,大小为 MODULE_NAME_LEN
  * @param[in ]   src_moduleName     源模块名,大小为 MODULE_NAME_LEN
@@ -180,7 +192,7 @@ LONG VOS_SendAsynMsg2ModuleEx(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN]
  * @param[in ]   optval             可选参数,不需要则填NULL
  * @param[in ]   optlen             可选参数长度
  * @return       成功返回 VOS_OK,失败返回 其他
- */ 
+ */
 LONG VOS_SendSynMsg2ModuleEx(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LEN],CHAR src_moduleName[MODULE_NAME_LEN],
                                     LONG msgCode,VOID *msgData,LONG msgDataLen,VOID *ackData,LONG *ackDataLen,LONG timeout,
                                     module_comm_type_t commType,VOID *optval,LONG optlen);
@@ -190,34 +202,34 @@ LONG VOS_SendAsynMsg2Module_Raw(LONG dst_slot,CHAR dst_moduleName[MODULE_NAME_LE
 
 
 
-/** 
-* 回复同步消息 
+/**
+* 回复同步消息
 * @param[in ]   aulMsg             VOS_QueReceive 收到的原始消息
 * @param[in ]   ackData            返回数据的buf
 * @param[in ]   ackDataLen         返回数据buf的长度
 * @return       成功返回 VOS_OK,失败返回 其他
-*/ 
+*/
 LONG VOS_SendSynAckMsg(ULONG aulMsg[VOS_QUEUE_MSG_SIZE],VOID *ackData,LONG ackDataLen);
 
 
-/** 
-* 注册timer 消息 
+/**
+* 注册timer 消息
 * @param[in ]   module_ID        要注册timer msg的模块号
 * @param[in ]   msg_code         消息码
 * @param[in ]   interval         发送间隔,毫秒
 * @param[in ]   type             类型,循环或者只执行一次
 * @param[in ]   pArg             附加参数,一般为一个指针
 * @return       成功返回 VOS_OK,失败返回 其他
-*/ 
+*/
 LONG VOS_RegTimerMsg(LONG module_ID,LONG msg_code,LONG interval,VOS_TIMER_TYPE_EN type,VOID  *pArg);
 
 
-/** 
-* 注销timer 消息 
+/**
+* 注销timer 消息
 * @param[in ]   module_ID        要注销timer msg的模块号
 * @param[in ]   msg_code         消息码
 * @return       成功返回 VOS_OK,失败返回 其他
-*/ 
+*/
 LONG VOS_DeregTimerMsg(LONG module_ID,LONG msg_code);
 
 
@@ -267,7 +279,7 @@ typedef LONG(*VOS_msg_code_handler_ptr)(ULONG aulMsg[VOS_QUEUE_MSG_SIZE]);
 /** 用于模块间通信的code 和 handler的map */
 typedef struct msg_code_handle_map_s
 {
-    LONG                     msg_code;   ///< 消息码 
+    LONG                     msg_code;   ///< 消息码
     VOS_msg_code_handler_ptr handler;    ///< 消息码的处理函数
 }VOS_msg_code_handle_map_t;