Commit ad6fd431 authored by jperaldi's avatar jperaldi

Sequans W34 delivery preparation PART2: SIDL preparation

SIDL update for supporting IRAT delivery from Sequans
parent 8f425f9e
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "acpMem.h" #include "acpMem.h"
#include "acpSocket.h" #include "acpSocket.h"
#include "acpInternal.h"
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
...@@ -54,24 +53,11 @@ struct acpMsgTable { ...@@ -54,24 +53,11 @@ struct acpMsgTable {
/** Defines ACP Header size. */ /** Defines ACP Header size. */
#define ACP_HEADER_SIZE 16 #define ACP_HEADER_SIZE 16
/** This message is received upon TCP connection establishment with server.
* It provides the list of services supported by server.
*/
#define ACP_SERVICE_PUSH_TYPE 0xFFFFFFFF
/** This message may be received when server sends KEEPALIVE. */ /** This message may be received when server sends KEEPALIVE. */
#define ACP_KEEPALIVE_HANDLE 0xAAAAAAAA #define ACP_KEEPALIVE_HANDLE 0xAAAAAAAA
/** Update ACP context from ACP_SERVICE_PUSH_TYPE message content. /** Default socket timeout (for acpInit), in milli-seconds. */
* Note: ACP_SERVICE_PUSH_TYPE will be received twice. First time upon TCP connection establishment #define ACP_DEFAULT_TIMEOUT 1000
* and later when the client links to a given device using internal::ConnectToMs message.
*
* @param[in] ctx Context to updaten, if NULL new context will
* @param[in] size Total message size (header + payload)
* @param[in] buffer Total message buffer
* @return 0 on success, or an error code on failure.
*/
int acpUpdateCtx(acpCtx_t ctx, size_t size, const unsigned char* buffer);
/** Creates an ACP context. /** Creates an ACP context.
* *
...@@ -103,6 +89,15 @@ bool acpIsConnected(acpCtx_t ctx); ...@@ -103,6 +89,15 @@ bool acpIsConnected(acpCtx_t ctx);
*/ */
int acpGetMsgSidlStatus(size_t size, const unsigned char* buffer, SidlStatus* sidlStatus); int acpGetMsgSidlStatus(size_t size, const unsigned char* buffer, SidlStatus* sidlStatus);
/** Sets SIDL status to the response message header.
*
* @param[in] size It should be equal to ACP_HEADER_SIZE
* @param[in/out] buffer Input header message buffer
* @param[in] sidlStatus SIDL status
* @return 0 on success, or an error code on failure.
*/
int acpSetMsgSidlStatus(size_t size, unsigned char* buffer, SidlStatus sidlStatus);
/** Returns message length from header buffer. /** Returns message length from header buffer.
* This is used after the read of ACP header to get the remaining bytes quantity to read for the * This is used after the read of ACP header to get the remaining bytes quantity to read for the
* current message. * current message.
...@@ -111,7 +106,7 @@ int acpGetMsgSidlStatus(size_t size, const unsigned char* buffer, SidlStatus* si ...@@ -111,7 +106,7 @@ int acpGetMsgSidlStatus(size_t size, const unsigned char* buffer, SidlStatus* si
* @param[in] buffer Input header message buffer * @param[in] buffer Input header message buffer
* @return Message length or a negative error code * @return Message length or a negative error code
*/ */
int acpGetMsgLength(size_t size, unsigned char* buffer); int acpGetMsgLength(size_t size, const unsigned char* buffer);
/** Returns message ID. /** Returns message ID.
* *
...@@ -157,9 +152,9 @@ typedef void (*acpFree_t)(void* ptr); ...@@ -157,9 +152,9 @@ typedef void (*acpFree_t)(void* ptr);
/** Module initialization. /** Module initialization.
* Shall be called once. * Shall be called once.
* Alloc/release callbacks shall be supplied to use in acpMalloc/acpFree. * Alloc/release callbacks shall be both supplied to use in acpMalloc/acpFree, otherwise they default to stdlib malloc/free.
* Internally acpMalloc/acpFree are used only in context creation and during connection to server. * Internally acpMalloc/acpFree are used only in context creation and during connection to server.
* The timeout argument specifies the block interval on socket operations. * The timeout argument specifies the block interval on socket operations, or default timeout if zero supplied.
* *
* @param[in] alloc Memory allocation callback * @param[in] alloc Memory allocation callback
* @param[in] release Memory release callback * @param[in] release Memory release callback
...@@ -167,6 +162,14 @@ typedef void (*acpFree_t)(void* ptr); ...@@ -167,6 +162,14 @@ typedef void (*acpFree_t)(void* ptr);
*/ */
void acpInit(acpMalloc_t alloc, acpFree_t release, MSec_t socketTimeout); void acpInit(acpMalloc_t alloc, acpFree_t release, MSec_t socketTimeout);
/** Allocates the context with registering to requested notifications.
*
* @param[in] msgTable Requested service responses/notifications to register, last element should be with name==NULL
* @param[out] ctx ACP Context
* @return 0 on success, or an error code on failure.
*/
int acpInitCtx(const struct acpMsgTable* msgTable, acpCtx_t* ctx);
/** Connects to server. /** Connects to server.
* Context should be allocated with acpCreateCtx. * Context should be allocated with acpCreateCtx.
* *
...@@ -219,7 +222,7 @@ int acpServerInitWithCtx(IpAddress_t ipaddr, int port, const struct acpMsgTable* ...@@ -219,7 +222,7 @@ int acpServerInitWithCtx(IpAddress_t ipaddr, int port, const struct acpMsgTable*
* @param[in] ctx ACP Context * @param[in] ctx ACP Context
* @return 0 on success, or an error code on failure. * @return 0 on success, or an error code on failure.
*/ */
int acpClose2(acpCtx_t ctx); int acpClose0(acpCtx_t ctx);
/** Closes the socket from the context, /** Closes the socket from the context,
* and deletes a given ACP context. * and deletes a given ACP context.
...@@ -291,15 +294,42 @@ int acpSetMsgIdFromLocalId(acpCtx_t ctx, enum acpMsgLocalId localMsgId, int user ...@@ -291,15 +294,42 @@ int acpSetMsgIdFromLocalId(acpCtx_t ctx, enum acpMsgLocalId localMsgId, int user
*/ */
const char* acpGetMsgName(size_t size, const unsigned char* buffer); const char* acpGetMsgName(size_t size, const unsigned char* buffer);
/** Sets ACP description to identify client.
* Works only if using after acpInitCtx.
*
* @param[in] ctx ACP Context
* @param[in] desc Description
* @return 0 on success, or an error code on failure.
*/
int acpSetDescription(acpCtx_t ctx, const char* desc);
/** Gets Product Mode value.
*
* @return true if enabled, false if disabled
*/
bool acpGetProductMode(void);
/** Defines getter for ACP message ID. */
#define ACP_MSG_ID(mSG) (ACP_LID_##mSG)
/** Defines helper to bind message to user id. */ /** Defines helper to bind message to user id. */
#define ASC_SET_MSG_ID(cTX, mSG, uID) acpSetMsgIdFromLocalId((cTX), ACP_LID_##mSG, (uID)) #define ACP_SET_MSG_ID(cTX, mSG, uID) acpSetMsgIdFromLocalId((cTX), ACP_MSG_ID(mSG), (uID))
// #define ASC_SET_MSG_ID(cTX, mSG, uID) acpSetMsgId((cTX), #mSG, (uID)) // #define ACP_SET_MSG_ID(cTX, mSG, uID) acpSetMsgId((cTX), #mSG, (uID))
/** These IDs (negated, -ACP_PEER_CONNECTED, -ACP_PEER_DISCONNECTED) are returned by acpRecvMsg on peer connection establishment/ordered shutdown.
* They should not appear on client side.
*/
#define ACP_PEER_CONNECTED (1)
#define ACP_PEER_DISCONNECTED (2)
/** Defines error codes. */ /** Defines error codes. */
enum acpErrorCode { enum acpErrorCode {
/** All errors below this are reserved for other codes. */
ACP_ERR_RESERVED = 5,
/** API called with invalid context. */ /** API called with invalid context. */
ACP_ERR_INVALID_CTX = 2, ACP_ERR_INVALID_CTX,
/** Invalid ACP header. */ /** Invalid ACP header. */
ACP_ERR_INVALID_HEADER, ACP_ERR_INVALID_HEADER,
/** Socket connection failure. */ /** Socket connection failure. */
...@@ -320,10 +350,10 @@ enum acpErrorCode { ...@@ -320,10 +350,10 @@ enum acpErrorCode {
ACP_ERR_INTERNAL, ACP_ERR_INTERNAL,
/** SIDL service failure. */ /** SIDL service failure. */
ACP_ERR_SIDL_FAILURE, ACP_ERR_SIDL_FAILURE,
/** No server handle received. */
ACP_ERR_SHANDLE_UNAVAILABLE,
/** ACP version not match */ /** ACP version not match */
ACP_ERR_INVALID_VERSION, ACP_ERR_INVALID_VERSION,
/** ACP service not found on server */
ACP_ERR_SERVICE_MISSING,
ACP_ERR_QTY ACP_ERR_QTY
}; };
......
...@@ -45,7 +45,9 @@ struct acpUserService { ...@@ -45,7 +45,9 @@ struct acpUserService {
struct acpCtx { struct acpCtx {
/** Context pointer. */ /** Context pointer. */
acpCtx_t ptr; acpCtx_t ptr;
/** Arena to devode received message. */ /** ACP client description. */
char* desc;
/** Arena to decode received message. */
unsigned char* arena; unsigned char* arena;
/** Arena size to decode received message. */ /** Arena size to decode received message. */
size_t aSize; size_t aSize;
...@@ -61,16 +63,32 @@ struct acpCtx { ...@@ -61,16 +63,32 @@ struct acpCtx {
int peers[ACP_MAX_PEER_QTY]; int peers[ACP_MAX_PEER_QTY];
/** Peers socket handshake state on server side. */ /** Peers socket handshake state on server side. */
int peersHandshaked[ACP_MAX_PEER_QTY]; int peersHandshaked[ACP_MAX_PEER_QTY];
/** Peers socket descriptors size. */ /** Peers registered services. */
int* peersServices[ACP_MAX_PEER_QTY];
/** Peers registered services size. */
size_t peersServicesSize[ACP_MAX_PEER_QTY];
/** Peers size. */
size_t peersSize; size_t peersSize;
/** Last peer socket descriptor who sent the message. */ /** Last peer socket descriptor who sent the message. */
int lastPeer; int lastPeer;
/** Last message type. */
int lastType;
/** Last message kind. */
int lastKind;
/** User ID map. */ /** User ID map. */
struct acpUserService* userIdMap; struct acpUserService* userIdMap;
/** User ID map max size. */ /** User ID map max size. */
size_t userIdMapMaxSize; size_t userIdMapMaxSize;
/** ID map size. */ /** ID map size. */
size_t userIdMapSize; size_t userIdMapSize;
/** Internal temporary buffer. */
unsigned char* tmpBuf;
/** Internal temporary buffer size. */
size_t tmpBufSize;
/** Internal opaque buffer. */
unsigned char* opaqueBuf;
/** Internal opaque buffer size. */
size_t opaqueBufSize;
/** Debug logger callback. */ /** Debug logger callback. */
void (*logger)(const char*); void (*logger)(const char*);
...@@ -115,6 +133,9 @@ int acpCtxResolveId(int id, const char* name); ...@@ -115,6 +133,9 @@ int acpCtxResolveId(int id, const char* name);
/** Gets message name from id (for debug). */ /** Gets message name from id (for debug). */
const char* acpCtxGetMsgNameFromId(int id); const char* acpCtxGetMsgNameFromId(int id);
/** Gets message name from id (strict case). */
const char* acpCtxGetMsgNameFromIdStrict(int id);
/** Gets message kind from id (for debug). */ /** Gets message kind from id (for debug). */
int acpCtxGetMsgKindFromId(int id); int acpCtxGetMsgKindFromId(int id);
...@@ -124,4 +145,34 @@ const char* acpCtxGetItfNameFrom_localId(int id); ...@@ -124,4 +145,34 @@ const char* acpCtxGetItfNameFrom_localId(int id);
/** Gets message kind from name */ /** Gets message kind from name */
int acpCtxGetMsgKindFromName(const char* name); int acpCtxGetMsgKindFromName(const char* name);
/** Sets ACP description. */
int acpCtxSetDescription(struct acpCtx* ctx, const char* desc);
/** Allocates temporary buffer. */
void acpCtxAllocateTmpBuf(struct acpCtx* ctx, size_t size);
/** Returns peer number from the socket. */
int acpCtxGetPeerNum(struct acpCtx* ctx, int peer);
/** Checks whether peer handshake is performed. */
bool acpCtxPeerHandshaked(struct acpCtx* ctx, int peer);
/** Checks whether any peer is handshaked. */
bool acpCtxAnyPeerHandshaked(struct acpCtx* ctx);
/** Sets peer to have been handshaked. */
void acpCtxPeerSetHandshaked(struct acpCtx* ctx, int peer, int flag);
/** Adds peer to the server context. */
void acpCtxAddPeer(struct acpCtx* ctx, int peer);
/** Removes peer from the server context. */
void acpCtxRemovePeer(struct acpCtx* ctx, int peer);
/** Checks whether a peer registered service. */
bool acpCtxPeerRespondsToService(struct acpCtx* ctx, int peer, int type);
/** Checks whether a peer registered service (check by peer number). */
bool acpCtxPeerNumRespondsToService(struct acpCtx* ctx, int peerNum, int type);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpDrbProcessFromSSInitClt(acpCtx_t _ctx, struct DRB_COMMON_REQ** FromSS);
int acpDrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_REQ* FromSS); int acpDrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_REQ* FromSS);
int acpDrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct DRB_COMMON_REQ** FromSS); int acpDrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct DRB_COMMON_REQ** FromSS);
void acpDrbProcessFromSSFree0Srv(struct DRB_COMMON_REQ* FromSS);
void acpDrbProcessFromSSFreeSrv(struct DRB_COMMON_REQ* FromSS); void acpDrbProcessFromSSFreeSrv(struct DRB_COMMON_REQ* FromSS);
void acpDrbProcessFromSSFree0CltSrv(struct DRB_COMMON_REQ* FromSS);
void acpDrbProcessFromSSFreeCltSrv(struct DRB_COMMON_REQ* FromSS);
void acpDrbProcessToSSInitSrv(acpCtx_t _ctx, struct DRB_COMMON_IND** ToSS);
int acpDrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_IND* ToSS); int acpDrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_IND* ToSS);
int acpDrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct DRB_COMMON_IND** ToSS); int acpDrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct DRB_COMMON_IND** ToSS);
void acpDrbProcessToSSFree0Clt(struct DRB_COMMON_IND* ToSS);
void acpDrbProcessToSSFreeClt(struct DRB_COMMON_IND* ToSS); void acpDrbProcessToSSFreeClt(struct DRB_COMMON_IND* ToSS);
void acpDrbProcessToSSFree0SrvClt(struct DRB_COMMON_IND* ToSS);
void acpDrbProcessToSSFreeSrvClt(struct DRB_COMMON_IND* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
int acpHandshakeHandleFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshake_Type* fromSS); void acpHandshakeProcessInitClt(acpCtx_t _ctx, struct AcpHandshakeReq** FromSS);
int acpHandshakeHandleFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshake_Type** fromSS); int acpHandshakeProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshakeReq* FromSS);
void acpHandshakeHandleFromSSFreeSrv(struct AcpHandshake_Type* fromSS); int acpHandshakeProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshakeReq** FromSS);
int acpHandshakeHandleToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshakeRsp_Type* toSS); void acpHandshakeProcessFree0Srv(struct AcpHandshakeReq* FromSS);
int acpHandshakeHandleToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshakeRsp_Type** toSS); void acpHandshakeProcessFreeSrv(struct AcpHandshakeReq* FromSS);
void acpHandshakeHandleToSSFreeClt(struct AcpHandshakeRsp_Type* toSS); void acpHandshakeProcessFree0CltSrv(struct AcpHandshakeReq* FromSS);
void acpHandshakeProcessFreeCltSrv(struct AcpHandshakeReq* FromSS);
void acpHandshakeProcessInitSrv(acpCtx_t _ctx, struct AcpHandshakeCnf** ToSS);
int acpHandshakeProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshakeCnf* ToSS);
int acpHandshakeProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshakeCnf** ToSS);
void acpHandshakeProcessFree0Clt(struct AcpHandshakeCnf* ToSS);
void acpHandshakeProcessFreeClt(struct AcpHandshakeCnf* ToSS);
void acpHandshakeProcessFree0SrvClt(struct AcpHandshakeCnf* ToSS);
void acpHandshakeProcessFreeSrvClt(struct AcpHandshakeCnf* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,13 +27,19 @@ ...@@ -27,13 +27,19 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
enum acpKind {
ACP_NTF = 0,
ACP_ONEWAY = 1,
ACP_CMD = 2
};
/** Defines ACP Context. */ /** Defines ACP Context. */
struct acpIdMapService { struct acpIdMapService {
/** Service name. */ /** Service name. */
const char* name; const char* name;
/** Service static local id. */ /** Service static local ID. */
unsigned int local_id; unsigned int local_id;
/** Service remote id. */ /** Service remote ID. */
unsigned int remote_id; unsigned int remote_id;
/** Service kind (0 - NTF, 1 - ONEWAY, 2 - CMD). */ /** Service kind (0 - NTF, 1 - ONEWAY, 2 - CMD). */
int kind; int kind;
...@@ -42,7 +48,7 @@ struct acpIdMapService { ...@@ -42,7 +48,7 @@ struct acpIdMapService {
struct acpIdMapItf { struct acpIdMapItf {
/** SIDL interface name. */ /** SIDL interface name. */
const char* name; const char* name;
/** interface id. */ /** Interface ID. */
int id; int id;
/** Start index. */ /** Start index. */
int startIndex; int startIndex;
......
/* /*
* Copyright 2022 Sequans Communications. ******************************************************************
* *
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more * Module : ACP - Asynchronous Communication Protocol
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.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.openairinterface.org/?page_id=698 * Purpose : THIS FILE IS AUTOMATICALLY GENERATED !
* *
* 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. * Copyright (c) 2014-2021 SEQUANS Communications.
* See the License for the specific language governing permissions and * All rights reserved.
* limitations under the License. *
* For more information about the OpenAirInterface (OAI) Software Alliance: * This is confidential and proprietary source code of SEQUANS
* contact@openairinterface.org * Communications. The use of the present source code and all
* its derived forms is exclusively governed by the restricted
* terms and conditions set forth in the SEQUANS
* Communications' EARLY ADOPTER AGREEMENT and/or LICENCE
* AGREEMENT. The present source code and all its derived
* forms can ONLY and EXCLUSIVELY be used with SEQUANS
* Communications' products. The distribution/sale of the
* present source code and all its derived forms is EXCLUSIVELY
* RESERVED to regular LICENCE holder and otherwise STRICTLY
* PROHIBITED.
*
*****************************************************************
*/ */
#pragma once #pragma once
......
...@@ -44,10 +44,8 @@ enum acpMsgLocalId { ...@@ -44,10 +44,8 @@ enum acpMsgLocalId {
ACP_LID_VngProcess = 0x90040500, ACP_LID_VngProcess = 0x90040500,
ACP_LID_DrbProcessFromSS = 0x90040600, ACP_LID_DrbProcessFromSS = 0x90040600,
ACP_LID_DrbProcessToSS = 0x90040601, ACP_LID_DrbProcessToSS = 0x90040601,
ACP_LID_HandshakeHandleFromSS = 0x90040700, ACP_LID_HandshakeProcess = 0x90040700,
ACP_LID_HandshakeHandleToSS = 0x90040701,
ACP_LID_SysIndProcessToSS = 0x90040800, ACP_LID_SysIndProcessToSS = 0x90040800,
ACP_LID_NrSysSrbProcessFromSS = 0x90040900, ACP_LID_NrSysSrbProcessFromSS = 0x90040900,
ACP_LID_NrSysSrbProcessToSS = 0x90040901, ACP_LID_NrSysSrbProcessToSS = 0x90040901,
ACP_LID_NrSysProcess = 0x90040A00, ACP_LID_NrSysProcess = 0x90040A00,
......
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpNrSysProcessInitClt(acpCtx_t _ctx, struct NR_SYSTEM_CTRL_REQ** FromSS);
int acpNrSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_REQ* FromSS); int acpNrSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_REQ* FromSS);
int acpNrSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_SYSTEM_CTRL_REQ** FromSS); int acpNrSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_SYSTEM_CTRL_REQ** FromSS);
void acpNrSysProcessFree0Srv(struct NR_SYSTEM_CTRL_REQ* FromSS);
void acpNrSysProcessFreeSrv(struct NR_SYSTEM_CTRL_REQ* FromSS); void acpNrSysProcessFreeSrv(struct NR_SYSTEM_CTRL_REQ* FromSS);
void acpNrSysProcessFree0CltSrv(struct NR_SYSTEM_CTRL_REQ* FromSS);
void acpNrSysProcessFreeCltSrv(struct NR_SYSTEM_CTRL_REQ* FromSS);
void acpNrSysProcessInitSrv(acpCtx_t _ctx, struct NR_SYSTEM_CTRL_CNF** ToSS);
int acpNrSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_CNF* ToSS); int acpNrSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_CNF* ToSS);
int acpNrSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_SYSTEM_CTRL_CNF** ToSS); int acpNrSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_SYSTEM_CTRL_CNF** ToSS);
void acpNrSysProcessFree0Clt(struct NR_SYSTEM_CTRL_CNF* ToSS);
void acpNrSysProcessFreeClt(struct NR_SYSTEM_CTRL_CNF* ToSS); void acpNrSysProcessFreeClt(struct NR_SYSTEM_CTRL_CNF* ToSS);
void acpNrSysProcessFree0SrvClt(struct NR_SYSTEM_CTRL_CNF* ToSS);
void acpNrSysProcessFreeSrvClt(struct NR_SYSTEM_CTRL_CNF* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpNrSysSrbProcessFromSSInitClt(acpCtx_t _ctx, struct NR_RRC_PDU_REQ** FromSS);
int acpNrSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_REQ* FromSS);
int acpNrSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_REQ** FromSS);
void acpNrSysSrbProcessFromSSFree0Srv(struct NR_RRC_PDU_REQ* FromSS);
void acpNrSysSrbProcessFromSSFreeSrv(struct NR_RRC_PDU_REQ* FromSS);
void acpNrSysSrbProcessFromSSFree0CltSrv(struct NR_RRC_PDU_REQ* FromSS);
void acpNrSysSrbProcessFromSSFreeCltSrv(struct NR_RRC_PDU_REQ* FromSS);
void acpNrSysSrbProcessToSSInitSrv(acpCtx_t _ctx, struct NR_RRC_PDU_IND** ToSS);
int acpNrSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_IND* ToSS); int acpNrSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_IND* ToSS);
int acpNrSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_IND** ToSS); int acpNrSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_IND** ToSS);
void acpNrSysSrbProcessToSSFreeClt(struct NR_RRC_PDU_IND* ToSS); void acpNrSysSrbProcessToSSFree0Clt(struct NR_RRC_PDU_IND* ToSS);
int acpNrSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_REQ* FromSS); void acpNrSysSrbProcessToSSFreeClt(struct NR_RRC_PDU_IND* ToSS);
int acpNrSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_REQ** FromSS); void acpNrSysSrbProcessToSSFree0SrvClt(struct NR_RRC_PDU_IND* ToSS);
void acpNrSysSrbProcessFromSSFreeSrv(struct NR_RRC_PDU_REQ* FromSS); void acpNrSysSrbProcessToSSFreeSrvClt(struct NR_RRC_PDU_IND* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpSysProcessInitClt(acpCtx_t _ctx, struct SYSTEM_CTRL_REQ** FromSS);
int acpSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_REQ* FromSS); int acpSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_REQ* FromSS);
int acpSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct SYSTEM_CTRL_REQ** FromSS); int acpSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct SYSTEM_CTRL_REQ** FromSS);
void acpSysProcessFree0Srv(struct SYSTEM_CTRL_REQ* FromSS);
void acpSysProcessFreeSrv(struct SYSTEM_CTRL_REQ* FromSS); void acpSysProcessFreeSrv(struct SYSTEM_CTRL_REQ* FromSS);
void acpSysProcessFree0CltSrv(struct SYSTEM_CTRL_REQ* FromSS);
void acpSysProcessFreeCltSrv(struct SYSTEM_CTRL_REQ* FromSS);
void acpSysProcessInitSrv(acpCtx_t _ctx, struct SYSTEM_CTRL_CNF** ToSS);
int acpSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_CNF* ToSS); int acpSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_CNF* ToSS);
int acpSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct SYSTEM_CTRL_CNF** ToSS); int acpSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct SYSTEM_CTRL_CNF** ToSS);
void acpSysProcessFree0Clt(struct SYSTEM_CTRL_CNF* ToSS);
void acpSysProcessFreeClt(struct SYSTEM_CTRL_CNF* ToSS); void acpSysProcessFreeClt(struct SYSTEM_CTRL_CNF* ToSS);
void acpSysProcessFree0SrvClt(struct SYSTEM_CTRL_CNF* ToSS);
void acpSysProcessFreeSrvClt(struct SYSTEM_CTRL_CNF* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,10 +27,18 @@ ...@@ -27,10 +27,18 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpSysIndProcessToSSInitSrv(acpCtx_t _ctx, struct SYSTEM_IND** ToSS);
int acpSysIndProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_IND* ToSS); int acpSysIndProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_IND* ToSS);
int acpSysIndProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct SYSTEM_IND** ToSS); int acpSysIndProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct SYSTEM_IND** ToSS);
void acpSysIndProcessToSSFree0Clt(struct SYSTEM_IND* ToSS);
void acpSysIndProcessToSSFreeClt(struct SYSTEM_IND* ToSS); void acpSysIndProcessToSSFreeClt(struct SYSTEM_IND* ToSS);
void acpSysIndProcessToSSFree0SrvClt(struct SYSTEM_IND* ToSS);
void acpSysIndProcessToSSFreeSrvClt(struct SYSTEM_IND* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpSysSrbProcessFromSSInitClt(acpCtx_t _ctx, struct EUTRA_RRC_PDU_REQ** FromSS);
int acpSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_REQ* FromSS);
int acpSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_REQ** FromSS);
void acpSysSrbProcessFromSSFree0Srv(struct EUTRA_RRC_PDU_REQ* FromSS);
void acpSysSrbProcessFromSSFreeSrv(struct EUTRA_RRC_PDU_REQ* FromSS);
void acpSysSrbProcessFromSSFree0CltSrv(struct EUTRA_RRC_PDU_REQ* FromSS);
void acpSysSrbProcessFromSSFreeCltSrv(struct EUTRA_RRC_PDU_REQ* FromSS);
void acpSysSrbProcessToSSInitSrv(acpCtx_t _ctx, struct EUTRA_RRC_PDU_IND** ToSS);
int acpSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_IND* ToSS); int acpSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_IND* ToSS);
int acpSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_IND** ToSS); int acpSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_IND** ToSS);
void acpSysSrbProcessToSSFreeClt(struct EUTRA_RRC_PDU_IND* ToSS); void acpSysSrbProcessToSSFree0Clt(struct EUTRA_RRC_PDU_IND* ToSS);
int acpSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_REQ* FromSS); void acpSysSrbProcessToSSFreeClt(struct EUTRA_RRC_PDU_IND* ToSS);
int acpSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_REQ** FromSS); void acpSysSrbProcessToSSFree0SrvClt(struct EUTRA_RRC_PDU_IND* ToSS);
void acpSysSrbProcessFromSSFreeSrv(struct EUTRA_RRC_PDU_REQ* FromSS); void acpSysSrbProcessToSSFreeSrvClt(struct EUTRA_RRC_PDU_IND* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
int acpSysVTEnquireTimingUpdEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* TimingInfoToSS); void acpSysVTEnquireTimingAckInitClt(acpCtx_t _ctx, struct VirtualTimeInfo_Type** FromSS);
int acpSysVTEnquireTimingUpdDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** TimingInfoToSS); int acpSysVTEnquireTimingAckEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* FromSS);
void acpSysVTEnquireTimingUpdFreeClt(struct VirtualTimeInfo_Type* TimingInfoToSS); int acpSysVTEnquireTimingAckDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** FromSS);
int acpSysVTEnquireTimingAckEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* TimingInfoFromSS); void acpSysVTEnquireTimingAckFree0Srv(struct VirtualTimeInfo_Type* FromSS);
int acpSysVTEnquireTimingAckDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** TimingInfoFromSS); void acpSysVTEnquireTimingAckFreeSrv(struct VirtualTimeInfo_Type* FromSS);
void acpSysVTEnquireTimingAckFreeSrv(struct VirtualTimeInfo_Type* TimingInfoFromSS); void acpSysVTEnquireTimingAckFree0CltSrv(struct VirtualTimeInfo_Type* FromSS);
void acpSysVTEnquireTimingAckFreeCltSrv(struct VirtualTimeInfo_Type* FromSS);
void acpSysVTEnquireTimingUpdInitSrv(acpCtx_t _ctx, struct VirtualTimeInfo_Type** ToSS);
int acpSysVTEnquireTimingUpdEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* ToSS);
int acpSysVTEnquireTimingUpdDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** ToSS);
void acpSysVTEnquireTimingUpdFree0Clt(struct VirtualTimeInfo_Type* ToSS);
void acpSysVTEnquireTimingUpdFreeClt(struct VirtualTimeInfo_Type* ToSS);
void acpSysVTEnquireTimingUpdFree0SrvClt(struct VirtualTimeInfo_Type* ToSS);
void acpSysVTEnquireTimingUpdFreeSrvClt(struct VirtualTimeInfo_Type* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,18 +27,34 @@ ...@@ -27,18 +27,34 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpTestHelloFromSSInitClt(acpCtx_t _ctx, char** StrArray, size_t StrQty);
int acpTestHelloFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, size_t StrQty, const char* StrArray); int acpTestHelloFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, size_t StrQty, const char* StrArray);
int acpTestHelloFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, size_t* StrQty, char** StrArray); int acpTestHelloFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, size_t* StrQty, char** StrArray);
void acpTestHelloFromSSFree0Srv(char* StrArray);
void acpTestHelloFromSSFreeSrv(char* StrArray); void acpTestHelloFromSSFreeSrv(char* StrArray);
void acpTestHelloFromSSFree0CltSrv(char* StrArray);
void acpTestHelloFromSSFreeCltSrv(char* StrArray);
void acpTestHelloToSSInitSrv(acpCtx_t _ctx, char** StrArray, size_t StrQty);
int acpTestHelloToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, size_t StrQty, const char* StrArray); int acpTestHelloToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, size_t StrQty, const char* StrArray);
int acpTestHelloToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, size_t* StrQty, char** StrArray); int acpTestHelloToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, size_t* StrQty, char** StrArray);
void acpTestHelloToSSFree0Clt(char* StrArray);
void acpTestHelloToSSFreeClt(char* StrArray); void acpTestHelloToSSFreeClt(char* StrArray);
void acpTestHelloToSSFree0SrvClt(char* StrArray);
void acpTestHelloToSSFreeSrvClt(char* StrArray);
int acpTestPingEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, uint32_t FromSS); int acpTestPingEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, uint32_t FromSS);
int acpTestPingDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, uint32_t* FromSS); int acpTestPingDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, uint32_t* FromSS);
...@@ -47,40 +63,88 @@ int acpTestPingEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, uint ...@@ -47,40 +63,88 @@ int acpTestPingEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, uint
int acpTestPingDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, uint32_t* ToSS); int acpTestPingDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, uint32_t* ToSS);
void acpTestEchoInitClt(acpCtx_t _ctx, struct EchoData** FromSS);
int acpTestEchoEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EchoData* FromSS); int acpTestEchoEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EchoData* FromSS);
int acpTestEchoDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EchoData** FromSS); int acpTestEchoDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EchoData** FromSS);
void acpTestEchoFree0Srv(struct EchoData* FromSS);
void acpTestEchoFreeSrv(struct EchoData* FromSS); void acpTestEchoFreeSrv(struct EchoData* FromSS);
void acpTestEchoFree0CltSrv(struct EchoData* FromSS);
void acpTestEchoFreeCltSrv(struct EchoData* FromSS);
void acpTestEchoInitSrv(acpCtx_t _ctx, struct EchoData** ToSS);
int acpTestEchoEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EchoData* ToSS); int acpTestEchoEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EchoData* ToSS);
int acpTestEchoDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EchoData** ToSS); int acpTestEchoDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EchoData** ToSS);
void acpTestEchoFree0Clt(struct EchoData* ToSS);
void acpTestEchoFreeClt(struct EchoData* ToSS); void acpTestEchoFreeClt(struct EchoData* ToSS);
void acpTestEchoFree0SrvClt(struct EchoData* ToSS);
void acpTestEchoFreeSrvClt(struct EchoData* ToSS);
void acpTestTest1InitClt(acpCtx_t _ctx, struct Output** out);
int acpTestTest1EncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Output* out); int acpTestTest1EncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Output* out);
int acpTestTest1DecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Output** out); int acpTestTest1DecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Output** out);
void acpTestTest1Free0Srv(struct Output* out);
void acpTestTest1FreeSrv(struct Output* out); void acpTestTest1FreeSrv(struct Output* out);
void acpTestTest1Free0CltSrv(struct Output* out);
void acpTestTest1FreeCltSrv(struct Output* out);
void acpTestTest2InitSrv(acpCtx_t _ctx, struct Output** out);
int acpTestTest2EncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Output* out); int acpTestTest2EncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Output* out);
int acpTestTest2DecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Output** out); int acpTestTest2DecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Output** out);
void acpTestTest2Free0Clt(struct Output* out);
void acpTestTest2FreeClt(struct Output* out); void acpTestTest2FreeClt(struct Output* out);
void acpTestTest2Free0SrvClt(struct Output* out);
void acpTestTest2FreeSrvClt(struct Output* out);
void acpTestOtherInitClt(acpCtx_t _ctx, struct Empty** in1, char** in3Array, size_t in3Qty, char** in4, struct Empty** in9Array, size_t in9Qty, struct Empty2** in10, struct New** in11);
int acpTestOtherEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Empty* in1, uint32_t in2, size_t in3Qty, const char* in3Array, const char* in4, bool in5, int in6, float in7, SomeEnum in8, size_t in9Qty, const struct Empty* in9Array, const struct Empty2* in10, const struct New* in11); int acpTestOtherEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Empty* in1, uint32_t in2, size_t in3Qty, const char* in3Array, const char* in4, bool in5, int in6, float in7, SomeEnum in8, size_t in9Qty, const struct Empty* in9Array, const struct Empty2* in10, const struct New* in11);
int acpTestOtherDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Empty** in1, uint32_t* in2, size_t* in3Qty, char** in3Array, char** in4, bool* in5, int* in6, float* in7, SomeEnum* in8, size_t* in9Qty, struct Empty** in9Array, struct Empty2** in10, struct New** in11); int acpTestOtherDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Empty** in1, uint32_t* in2, size_t* in3Qty, char** in3Array, char** in4, bool* in5, int* in6, float* in7, SomeEnum* in8, size_t* in9Qty, struct Empty** in9Array, struct Empty2** in10, struct New** in11);
void acpTestOtherFree0Srv(struct Empty* in1, char* in3Array, char* in4, struct Empty* in9Array, size_t in9Qty, struct Empty2* in10, struct New* in11);
void acpTestOtherFreeSrv(struct Empty* in1, char* in3Array, char* in4, struct Empty* in9Array, size_t in9Qty, struct Empty2* in10, struct New* in11); void acpTestOtherFreeSrv(struct Empty* in1, char* in3Array, char* in4, struct Empty* in9Array, size_t in9Qty, struct Empty2* in10, struct New* in11);
void acpTestOtherFree0CltSrv(struct Empty* in1, char* in3Array, char* in4, struct Empty* in9Array, size_t in9Qty, struct Empty2* in10, struct New* in11);
void acpTestOtherFreeCltSrv(struct Empty* in1, char* in3Array, char* in4, struct Empty* in9Array, size_t in9Qty, struct Empty2* in10, struct New* in11);
void acpTestOtherInitSrv(acpCtx_t _ctx, struct Empty** out1, char** out3Array, size_t out3Qty, char** out4, struct Empty** out9Array, size_t out9Qty, struct Empty2** out10, struct New** out11);
int acpTestOtherEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Empty* out1, uint32_t out2, size_t out3Qty, const char* out3Array, const char* out4, bool out5, int out6, float out7, SomeEnum out8, size_t out9Qty, const struct Empty* out9Array, const struct Empty2* out10, const struct New* out11); int acpTestOtherEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct Empty* out1, uint32_t out2, size_t out3Qty, const char* out3Array, const char* out4, bool out5, int out6, float out7, SomeEnum out8, size_t out9Qty, const struct Empty* out9Array, const struct Empty2* out10, const struct New* out11);
int acpTestOtherDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Empty** out1, uint32_t* out2, size_t* out3Qty, char** out3Array, char** out4, bool* out5, int* out6, float* out7, SomeEnum* out8, size_t* out9Qty, struct Empty** out9Array, struct Empty2** out10, struct New** out11); int acpTestOtherDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct Empty** out1, uint32_t* out2, size_t* out3Qty, char** out3Array, char** out4, bool* out5, int* out6, float* out7, SomeEnum* out8, size_t* out9Qty, struct Empty** out9Array, struct Empty2** out10, struct New** out11);
void acpTestOtherFree0Clt(struct Empty* out1, char* out3Array, char* out4, struct Empty* out9Array, size_t out9Qty, struct Empty2* out10, struct New* out11);
void acpTestOtherFreeClt(struct Empty* out1, char* out3Array, char* out4, struct Empty* out9Array, size_t out9Qty, struct Empty2* out10, struct New* out11); void acpTestOtherFreeClt(struct Empty* out1, char* out3Array, char* out4, struct Empty* out9Array, size_t out9Qty, struct Empty2* out10, struct New* out11);
void acpTestOtherFree0SrvClt(struct Empty* out1, char* out3Array, char* out4, struct Empty* out9Array, size_t out9Qty, struct Empty2* out10, struct New* out11);
void acpTestOtherFreeSrvClt(struct Empty* out1, char* out3Array, char* out4, struct Empty* out9Array, size_t out9Qty, struct Empty2* out10, struct New* out11);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -22,5 +22,5 @@ ...@@ -22,5 +22,5 @@
#pragma once #pragma once
#define ACP_VERSION "1.1.26" #define ACP_VERSION "1.1.29"
#define ACP_VERSION_CKSM "6039ebebcfebedf64afa7876fc107fdb" #define ACP_VERSION_CKSM "fce675048bccd39ca79311a03f12bdd1"
...@@ -27,16 +27,32 @@ ...@@ -27,16 +27,32 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void acpVngProcessInitClt(acpCtx_t _ctx, struct EUTRA_VNG_CTRL_REQ** FromSS);
int acpVngProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_REQ* FromSS); int acpVngProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_REQ* FromSS);
int acpVngProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_VNG_CTRL_REQ** FromSS); int acpVngProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_VNG_CTRL_REQ** FromSS);
void acpVngProcessFree0Srv(struct EUTRA_VNG_CTRL_REQ* FromSS);
void acpVngProcessFreeSrv(struct EUTRA_VNG_CTRL_REQ* FromSS); void acpVngProcessFreeSrv(struct EUTRA_VNG_CTRL_REQ* FromSS);
void acpVngProcessFree0CltSrv(struct EUTRA_VNG_CTRL_REQ* FromSS);
void acpVngProcessFreeCltSrv(struct EUTRA_VNG_CTRL_REQ* FromSS);
void acpVngProcessInitSrv(acpCtx_t _ctx, struct EUTRA_VNG_CTRL_CNF** ToSS);
int acpVngProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_CNF* ToSS); int acpVngProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_CNF* ToSS);
int acpVngProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_VNG_CTRL_CNF** ToSS); int acpVngProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_VNG_CTRL_CNF** ToSS);
void acpVngProcessFree0Clt(struct EUTRA_VNG_CTRL_CNF* ToSS);
void acpVngProcessFreeClt(struct EUTRA_VNG_CTRL_CNF* ToSS); void acpVngProcessFreeClt(struct EUTRA_VNG_CTRL_CNF* ToSS);
void acpVngProcessFree0SrvClt(struct EUTRA_VNG_CTRL_CNF* ToSS);
void acpVngProcessFreeSrvClt(struct EUTRA_VNG_CTRL_CNF* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
This diff is collapsed.
...@@ -49,9 +49,12 @@ void acpCtxInit(void) ...@@ -49,9 +49,12 @@ void acpCtxInit(void)
acpCtx_t acpTakeCtx(void) acpCtx_t acpTakeCtx(void)
{ {
ACP_DEBUG_ENTER_LOG(); ACP_DEBUG_ENTER_LOG();
for (int index = 0; index < ACP_MAX_CTX_QTY; index++) { for (int index = 0; index < ACP_MAX_CTX_QTY; index++) {
if (!_contexts[index].ptr) { if (!_contexts[index].ptr) {
_contexts[index].ptr = &_contexts[index]; _contexts[index].ptr = &_contexts[index];
_contexts[index].desc = NULL;
_contexts[index].arena = NULL; _contexts[index].arena = NULL;
_contexts[index].aSize = 0; _contexts[index].aSize = 0;
_contexts[index].isServer = false; _contexts[index].isServer = false;
...@@ -61,13 +64,21 @@ acpCtx_t acpTakeCtx(void) ...@@ -61,13 +64,21 @@ acpCtx_t acpTakeCtx(void)
for (int peer = 0; peer < ACP_MAX_PEER_QTY; peer++) { for (int peer = 0; peer < ACP_MAX_PEER_QTY; peer++) {
_contexts[index].peers[peer] = -1; _contexts[index].peers[peer] = -1;
_contexts[index].peersHandshaked[peer] = 0; _contexts[index].peersHandshaked[peer] = 0;
_contexts[index].peersServices[peer] = NULL;
_contexts[index].peersServicesSize[peer] = 0;
} }
_contexts[index].peersSize = 0; _contexts[index].peersSize = 0;
_contexts[index].lastPeer = -1; _contexts[index].lastPeer = -1;
_contexts[index].lastType = 0;
_contexts[index].lastKind = -1;
_contexts[index].userIdMap = (struct acpUserService*)acpMalloc(ACP_USER_ID_DEFAULT_MAP_SIZE * sizeof(struct acpUserService)); _contexts[index].userIdMap = (struct acpUserService*)acpMalloc(ACP_USER_ID_DEFAULT_MAP_SIZE * sizeof(struct acpUserService));
SIDL_ASSERT(_contexts[index].userIdMap); SIDL_ASSERT(_contexts[index].userIdMap);
_contexts[index].userIdMapMaxSize = ACP_USER_ID_DEFAULT_MAP_SIZE; _contexts[index].userIdMapMaxSize = ACP_USER_ID_DEFAULT_MAP_SIZE;
_contexts[index].userIdMapSize = 0; _contexts[index].userIdMapSize = 0;
_contexts[index].tmpBuf = NULL;
_contexts[index].tmpBufSize = 0;
_contexts[index].opaqueBuf = NULL;
_contexts[index].opaqueBufSize = 0;
_contexts[index].logger = NULL; _contexts[index].logger = NULL;
_contexts[index].logBuf = NULL; _contexts[index].logBuf = NULL;
...@@ -78,10 +89,12 @@ acpCtx_t acpTakeCtx(void) ...@@ -78,10 +89,12 @@ acpCtx_t acpTakeCtx(void)
_contexts[index].logFormatBufMaxSize = 0; _contexts[index].logFormatBufMaxSize = 0;
ACP_DEBUG_LOG("Adding a new context: index=%d, _contexts[%d].ptr=%p", index, index, _contexts[index].ptr); ACP_DEBUG_LOG("Adding a new context: index=%d, _contexts[%d].ptr=%p", index, index, _contexts[index].ptr);
ACP_DEBUG_EXIT_LOG(NULL); ACP_DEBUG_EXIT_LOG(NULL);
return &_contexts[index]; return &_contexts[index];
} }
} }
ACP_DEBUG_EXIT_LOG(NULL); ACP_DEBUG_EXIT_LOG(NULL);
return NULL; return NULL;
} }
...@@ -89,16 +102,29 @@ acpCtx_t acpTakeCtx(void) ...@@ -89,16 +102,29 @@ acpCtx_t acpTakeCtx(void)
void acpGiveCtx(acpCtx_t ctx) void acpGiveCtx(acpCtx_t ctx)
{ {
ACP_DEBUG_ENTER_LOG(); ACP_DEBUG_ENTER_LOG();
for (int index = 0; index < ACP_MAX_CTX_QTY; index++) { for (int index = 0; index < ACP_MAX_CTX_QTY; index++) {
if (_contexts[index].ptr == ctx) { if (_contexts[index].ptr == ctx) {
ACP_DEBUG_LOG("Clearing the context: index=%d, _contexts[%d].ptr=%p", index, index, _contexts[index].ptr); ACP_DEBUG_LOG("Clearing the context: index=%d, _contexts[%d].ptr=%p", index, index, _contexts[index].ptr);
_contexts[index].ptr = NULL; _contexts[index].ptr = NULL;
if (_contexts[index].desc) {
acpFree(_contexts[index].desc);
}
if (_contexts[index].arena) { if (_contexts[index].arena) {
acpFree(_contexts[index].arena); acpFree(_contexts[index].arena);
} }
for (int peer = 0; peer < ACP_MAX_PEER_QTY; peer++) {
if (_contexts[index].peersServices[peer]) {
acpFree(_contexts[index].peersServices[peer]);
}
}
if (_contexts[index].userIdMap) { if (_contexts[index].userIdMap) {
acpFree(_contexts[index].userIdMap); acpFree(_contexts[index].userIdMap);
} }
if (_contexts[index].tmpBuf) {
acpFree(_contexts[index].tmpBuf);
}
if (_contexts[index].logBuf) { if (_contexts[index].logBuf) {
acpFree(_contexts[index].logBuf); acpFree(_contexts[index].logBuf);
...@@ -110,6 +136,7 @@ void acpGiveCtx(acpCtx_t ctx) ...@@ -110,6 +136,7 @@ void acpGiveCtx(acpCtx_t ctx)
break; break;
} }
} }
ACP_DEBUG_EXIT_LOG(NULL); ACP_DEBUG_EXIT_LOG(NULL);
} }
...@@ -156,11 +183,14 @@ int acpGetIndexFrom_localId_name(int id, const char* name) ...@@ -156,11 +183,14 @@ int acpGetIndexFrom_localId_name(int id, const char* name)
// This is just to check that the current server service matches the generated one // This is just to check that the current server service matches the generated one
if (name) { if (name) {
size_t remoteNameOffset = strlen(acpItfMap[last_itf_id_index].name); size_t remoteNameOffset = strlen(acpItfMap[last_itf_id_index].name);
remoteNameOffset = 0; // Services names already have interface prefix in their names in this implementation
do { do {
if (service_id_index >= (int)acpIdMapSize) { if (service_id_index >= (int)acpIdMapSize) {
#ifndef ACP_ASSERT_INTERFACE_MISMATCH #ifndef ACP_ASSERT_INTERFACE_MISMATCH
service_id_index = -ACP_ERR_UNKNOWN_SERVICE_NAME; service_id_index = -ACP_ERR_UNKNOWN_SERVICE_NAME;
#else
SIDL_ASSERT(service_id_index < (int)acpIdMapSize);
#endif #endif
break; break;
} }
...@@ -203,11 +233,13 @@ int acpGetIndexFrom_localId_name(int id, const char* name) ...@@ -203,11 +233,13 @@ int acpGetIndexFrom_localId_name(int id, const char* name)
} }
} }
} else { } else {
#ifndef ACP_ASSERT_INTERFACE_MISMATCH
if (service_id_index >= (int)acpIdMapSize) { if (service_id_index >= (int)acpIdMapSize) {
#ifndef ACP_ASSERT_INTERFACE_MISMATCH
service_id_index = -ACP_ERR_UNKNOWN_SERVICE_NAME; service_id_index = -ACP_ERR_UNKNOWN_SERVICE_NAME;
} #else
SIDL_ASSERT(service_id_index < (int)acpIdMapSize);
#endif #endif
}
} }
return service_id_index; return service_id_index;
...@@ -252,7 +284,7 @@ static int acpCtxSetMsgUserIdFromIndex(struct acpCtx* ctx, int index, int userId ...@@ -252,7 +284,7 @@ static int acpCtxSetMsgUserIdFromIndex(struct acpCtx* ctx, int index, int userId
ctx->userIdMap[userIdIndex].user_id = userId; ctx->userIdMap[userIdIndex].user_id = userId;
ctx->userIdMap[userIdIndex].id_index = index; ctx->userIdMap[userIdIndex].id_index = index;
acpIdMap[index].remote_id = acpIdMap[index].local_id; // TODO: implement acpIdMap[index].remote_id = acpIdMap[index].local_id;
return 0; return 0;
} }
...@@ -297,17 +329,25 @@ int acpCtxResolveId(int id, const char* name) ...@@ -297,17 +329,25 @@ int acpCtxResolveId(int id, const char* name)
const char* acpCtxGetMsgNameFromId(int id) const char* acpCtxGetMsgNameFromId(int id)
{ {
if (id == (int)ACP_SERVICE_PUSH_TYPE) return "SERVICE_PUSH";
int index = acpGetIndexFrom_localId_name(id, NULL); int index = acpGetIndexFrom_localId_name(id, NULL);
if (index < 0 || index >= (int)acpIdMapSize) return "UNKNOWN"; if (index < 0 || index >= (int)acpIdMapSize) return "UNKNOWN";
return acpIdMap[index].name; return acpIdMap[index].name;
} }
const char* acpCtxGetMsgNameFromIdStrict(int id)
{
int index = acpGetIndexFrom_localId_name(id, NULL);
if (index < 0 || index >= (int)acpIdMapSize) {
SIDL_ASSERT(0);
return NULL;
}
return acpIdMap[index].name;
}
int acpCtxGetMsgKindFromId(int id) int acpCtxGetMsgKindFromId(int id)
{ {
if (id == (int)ACP_SERVICE_PUSH_TYPE) return -1;
int index = acpGetIndexFrom_localId_name(id, NULL); int index = acpGetIndexFrom_localId_name(id, NULL);
if (index < 0 || index >= (int)acpIdMapSize) return -ACP_ERR_SIDL_FAILURE; if (index < 0 || index >= (int)acpIdMapSize) return -ACP_ERR_UNKNOWN_SERVICE_NAME;
return acpIdMap[index].kind; return acpIdMap[index].kind;
} }
...@@ -317,3 +357,118 @@ int acpCtxGetMsgKindFromName(const char* name) ...@@ -317,3 +357,118 @@ int acpCtxGetMsgKindFromName(const char* name)
if (id < 0) return id; if (id < 0) return id;
return acpIdMap[id].kind; return acpIdMap[id].kind;
} }
int acpCtxSetDescription(struct acpCtx* ctx, const char* desc)
{
size_t descLen = strlen(desc) + 1;
if (ctx->desc) {
acpFree(ctx->desc);
}
ctx->desc = (char*)acpMalloc(descLen);
SIDL_ASSERT(ctx->desc);
memcpy(ctx->desc, desc, descLen);
return 0;
}
void acpCtxAllocateTmpBuf(struct acpCtx* ctx, size_t size)
{
if (ctx->tmpBuf && (ctx->tmpBufSize < size)) {
acpFree(ctx->tmpBuf);
ctx->tmpBuf = NULL;
}
if (!ctx->tmpBuf) {
ctx->tmpBuf = (unsigned char*)acpMalloc(size);
}
SIDL_ASSERT(ctx->tmpBuf);
ctx->tmpBufSize = size;
}
int acpCtxGetPeerNum(struct acpCtx* ctx, int peer)
{
for (int i = 0; i < ACP_MAX_PEER_QTY; i++) {
if (ctx->peers[i] == peer) {
return i;
}
}
return -1;
}
bool acpCtxPeerHandshaked(struct acpCtx* ctx, int peer)
{
for (int i = 0; i < ACP_MAX_PEER_QTY; i++) {
if (ctx->peers[i] == peer) {
return (ctx->peersHandshaked[i] != 0) ? true : false;
}
}
return false;
}
bool acpCtxAnyPeerHandshaked(struct acpCtx* ctx)
{
for (int i = 0; i < ACP_MAX_PEER_QTY; i++) {
if (ctx->peersHandshaked[i] > 0) {
return true;
}
}
return false;
}
void acpCtxPeerSetHandshaked(struct acpCtx* ctx, int peer, int flag)
{
for (int i = 0; i < ACP_MAX_PEER_QTY; i++) {
if (ctx->peers[i] == peer) {
ctx->peersHandshaked[i] = flag;
return;
}
}
}
void acpCtxAddPeer(struct acpCtx* ctx, int peer)
{
for (int i = 0; i < ACP_MAX_PEER_QTY; i++) {
if (ctx->peers[i] == -1) {
ctx->peers[i] = peer;
ctx->peersHandshaked[i] = 0;
SIDL_ASSERT(!ctx->peersServices[i]);
ctx->peersSize++;
return;
}
}
SIDL_ASSERT(0);
}
void acpCtxRemovePeer(struct acpCtx* ctx, int peer)
{
for (int i = 0; i < ACP_MAX_PEER_QTY; i++) {
if (ctx->peers[i] == peer) {
ctx->peers[i] = -1;
ctx->peersHandshaked[i] = 0;
if (ctx->peersServices[i]) {
acpFree(ctx->peersServices[i]);
ctx->peersServices[i] = NULL;
ctx->peersServicesSize[i] = 0;
}
ctx->peersSize--;
return;
}
}
}
bool acpCtxPeerRespondsToService(struct acpCtx* ctx, int peer, int type)
{
int peerNum = acpCtxGetPeerNum(ctx, peer);
if (peerNum == -1) {
return false;
}
return acpCtxPeerNumRespondsToService(ctx, peerNum, type);
}
bool acpCtxPeerNumRespondsToService(struct acpCtx* ctx, int peerNum, int type)
{
for (size_t i = 0; i < ctx->peersServicesSize[peerNum]; i++) {
if (ctx->peersServices[peerNum][i] == type) {
return true;
}
}
return false;
}
...@@ -26,6 +26,14 @@ ...@@ -26,6 +26,14 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serDrb.h" #include "serDrb.h"
void acpDrbProcessFromSSInitClt(acpCtx_t _ctx, struct DRB_COMMON_REQ** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serDrbProcessFromSSInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpDrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_REQ* FromSS) int acpDrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_REQ* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -48,11 +56,34 @@ int acpDrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_ ...@@ -48,11 +56,34 @@ int acpDrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_
return serDrbProcessFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS); return serDrbProcessFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
} }
void acpDrbProcessFromSSFree0Srv(struct DRB_COMMON_REQ* FromSS)
{
serDrbProcessFromSSFree0Srv(FromSS);
}
void acpDrbProcessFromSSFreeSrv(struct DRB_COMMON_REQ* FromSS) void acpDrbProcessFromSSFreeSrv(struct DRB_COMMON_REQ* FromSS)
{ {
serDrbProcessFromSSFreeSrv(FromSS); serDrbProcessFromSSFreeSrv(FromSS);
} }
void acpDrbProcessFromSSFree0CltSrv(struct DRB_COMMON_REQ* FromSS)
{
serDrbProcessFromSSFree0Srv(FromSS);
}
void acpDrbProcessFromSSFreeCltSrv(struct DRB_COMMON_REQ* FromSS)
{
serDrbProcessFromSSFreeSrv(FromSS);
}
void acpDrbProcessToSSInitSrv(acpCtx_t _ctx, struct DRB_COMMON_IND** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serDrbProcessToSSInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpDrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_IND* ToSS) int acpDrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct DRB_COMMON_IND* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -75,7 +106,22 @@ int acpDrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t ...@@ -75,7 +106,22 @@ int acpDrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t
return serDrbProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serDrbProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpDrbProcessToSSFree0Clt(struct DRB_COMMON_IND* ToSS)
{
serDrbProcessToSSFree0Clt(ToSS);
}
void acpDrbProcessToSSFreeClt(struct DRB_COMMON_IND* ToSS) void acpDrbProcessToSSFreeClt(struct DRB_COMMON_IND* ToSS)
{ {
serDrbProcessToSSFreeClt(ToSS); serDrbProcessToSSFreeClt(ToSS);
} }
void acpDrbProcessToSSFree0SrvClt(struct DRB_COMMON_IND* ToSS)
{
serDrbProcessToSSFree0Clt(ToSS);
}
void acpDrbProcessToSSFreeSrvClt(struct DRB_COMMON_IND* ToSS)
{
serDrbProcessToSSFreeClt(ToSS);
}
...@@ -26,56 +26,102 @@ ...@@ -26,56 +26,102 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serHandshake.h" #include "serHandshake.h"
int acpHandshakeHandleFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshake_Type* fromSS) void acpHandshakeProcessInitClt(acpCtx_t _ctx, struct AcpHandshakeReq** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serHandshakeProcessInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpHandshakeProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshakeReq* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serHandshakeHandleFromSSEncClt(_buffer, *_size, &_lidx, fromSS); int _ret = serHandshakeProcessEncClt(_buffer, *_size, &_lidx, FromSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_HandshakeHandleFromSS, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_HandshakeProcess, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpHandshakeHandleFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshake_Type** fromSS) int acpHandshakeProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshakeReq** FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serHandshakeHandleFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, fromSS); return serHandshakeProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
void acpHandshakeProcessFree0Srv(struct AcpHandshakeReq* FromSS)
{
serHandshakeProcessFree0Srv(FromSS);
}
void acpHandshakeProcessFreeSrv(struct AcpHandshakeReq* FromSS)
{
serHandshakeProcessFreeSrv(FromSS);
}
void acpHandshakeProcessFree0CltSrv(struct AcpHandshakeReq* FromSS)
{
serHandshakeProcessFree0Srv(FromSS);
} }
void acpHandshakeHandleFromSSFreeSrv(struct AcpHandshake_Type* fromSS) void acpHandshakeProcessFreeCltSrv(struct AcpHandshakeReq* FromSS)
{ {
serHandshakeHandleFromSSFreeSrv(fromSS); serHandshakeProcessFreeSrv(FromSS);
} }
int acpHandshakeHandleToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshakeRsp_Type* toSS) void acpHandshakeProcessInitSrv(acpCtx_t _ctx, struct AcpHandshakeCnf** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serHandshakeProcessInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpHandshakeProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct AcpHandshakeCnf* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serHandshakeHandleToSSEncSrv(_buffer, *_size, &_lidx, toSS); int _ret = serHandshakeProcessEncSrv(_buffer, *_size, &_lidx, ToSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_HandshakeHandleToSS, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_HandshakeProcess, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpHandshakeHandleToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshakeRsp_Type** toSS) int acpHandshakeProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct AcpHandshakeCnf** ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serHandshakeHandleToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, toSS); return serHandshakeProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
void acpHandshakeProcessFree0Clt(struct AcpHandshakeCnf* ToSS)
{
serHandshakeProcessFree0Clt(ToSS);
}
void acpHandshakeProcessFreeClt(struct AcpHandshakeCnf* ToSS)
{
serHandshakeProcessFreeClt(ToSS);
}
void acpHandshakeProcessFree0SrvClt(struct AcpHandshakeCnf* ToSS)
{
serHandshakeProcessFree0Clt(ToSS);
} }
void acpHandshakeHandleToSSFreeClt(struct AcpHandshakeRsp_Type* toSS) void acpHandshakeProcessFreeSrvClt(struct AcpHandshakeCnf* ToSS)
{ {
serHandshakeHandleToSSFreeClt(toSS); serHandshakeProcessFreeClt(ToSS);
} }
...@@ -29,10 +29,10 @@ const struct acpIdMapItf acpItfMap[] = { ...@@ -29,10 +29,10 @@ const struct acpIdMapItf acpItfMap[] = {
{ "Srb", 4, 10, 2 }, { "Srb", 4, 10, 2 },
{ "Vng", 5, 12, 1 }, { "Vng", 5, 12, 1 },
{ "Drb", 6, 13, 2 }, { "Drb", 6, 13, 2 },
{ "Handshake", 7, 15, 2 }, { "Handshake", 7, 15, 1 },
{ "SysInd", 8, 17, 1 }, { "SysInd", 8, 16, 1 },
{ "NrSysSrb", 9, 18, 2 }, { "NrSysSrb", 9, 17, 2 },
{ "NrSys", 10, 20, 1 }, { "NrSys", 10, 19, 1 },
}; };
const unsigned int acpItfMapSize = sizeof(acpItfMap) / sizeof(acpItfMap[0]); const unsigned int acpItfMapSize = sizeof(acpItfMap) / sizeof(acpItfMap[0]);
...@@ -43,45 +43,44 @@ const unsigned int acpItfMapSize = sizeof(acpItfMap) / sizeof(acpItfMap[0]); ...@@ -43,45 +43,44 @@ const unsigned int acpItfMapSize = sizeof(acpItfMap) / sizeof(acpItfMap[0]);
// and YY is the number of service (sequence of 00..NN) in the interface. // and YY is the number of service (sequence of 00..NN) in the interface.
struct acpIdMapService acpIdMap[] = { struct acpIdMapService acpIdMap[] = {
// Test part // Test part
{ "TestHelloFromSS", 0x90040100, (unsigned int)-1, 1 }, { "TestHelloFromSS", 0x90040100, (unsigned int)-1, ACP_ONEWAY },
{ "TestHelloToSS", 0x90040101, (unsigned int)-1, 0 }, { "TestHelloToSS", 0x90040101, (unsigned int)-1, ACP_NTF },
{ "TestPing", 0x90040102, (unsigned int)-1, 2 }, { "TestPing", 0x90040102, (unsigned int)-1, ACP_CMD },
{ "TestEcho", 0x90040103, (unsigned int)-1, 2 }, { "TestEcho", 0x90040103, (unsigned int)-1, ACP_CMD },
{ "TestTest1", 0x90040104, (unsigned int)-1, 2 }, { "TestTest1", 0x90040104, (unsigned int)-1, ACP_CMD },
{ "TestTest2", 0x90040105, (unsigned int)-1, 2 }, { "TestTest2", 0x90040105, (unsigned int)-1, ACP_CMD },
{ "TestOther", 0x90040106, (unsigned int)-1, 2 }, { "TestOther", 0x90040106, (unsigned int)-1, ACP_CMD },
// Sys part // Sys part
{ "SysProcess", 0x90040200, (unsigned int)-1, 2 }, { "SysProcess", 0x90040200, (unsigned int)-1, ACP_CMD },
// SysVT (internal) part // SysVT (internal) part
{ "SysVTEnquireTimingAck", 0x90040300, (unsigned int)-1, 1 }, { "SysVTEnquireTimingAck", 0x90040300, (unsigned int)-1, ACP_ONEWAY },
{ "SysVTEnquireTimingUpd", 0x90040301, (unsigned int)-1, 0 }, { "SysVTEnquireTimingUpd", 0x90040301, (unsigned int)-1, ACP_NTF },
// SysSrb part // SysSrb part
{ "SysSrbProcessFromSS", 0x90040400, (unsigned int)-1, 1 }, { "SysSrbProcessFromSS", 0x90040400, (unsigned int)-1, ACP_ONEWAY },
{ "SysSrbProcessToSS", 0x90040401, (unsigned int)-1, 0 }, { "SysSrbProcessToSS", 0x90040401, (unsigned int)-1, ACP_NTF },
// Vng part // Vng part
{ "VngProcess", 0x90040500, (unsigned int)-1, 2 }, { "VngProcess", 0x90040500, (unsigned int)-1, ACP_CMD },
// Drb part // Drb part
{ "DrbProcessFromSS", 0x90040600, (unsigned int)-1, 1 }, { "DrbProcessFromSS", 0x90040600, (unsigned int)-1, ACP_ONEWAY },
{ "DrbProcessToSS", 0x90040601, (unsigned int)-1, 0 }, { "DrbProcessToSS", 0x90040601, (unsigned int)-1, ACP_NTF },
// Handshake (internale) part // Handshake (internal) part
{ "HandshakeHandleFromSS", 0x90040700, (unsigned int)-1, 1 }, { "HandshakeProcess", 0x90040700, (unsigned int)-1, ACP_ONEWAY },
{ "HandshakeHandleToSS", 0x90040701, (unsigned int)-1, 0 },
// SysInd part // SysInd part
{ "SysIndProcessToSS", 0x90040800, (unsigned int)-1, 0 }, { "SysIndProcessToSS", 0x90040800, (unsigned int)-1, ACP_NTF },
// NrSysSrb part // NrSysSrb part
{ "NrSysSrbProcessFromSS", 0x90040900, (unsigned int)-1, 1 }, { "NrSysSrbProcessFromSS", 0x90040900, (unsigned int)-1, ACP_ONEWAY },
{ "NrSysSrbProcessToSS", 0x90040901, (unsigned int)-1, 0 }, { "NrSysSrbProcessToSS", 0x90040901, (unsigned int)-1, ACP_NTF },
// NrSys part // NrSys part
{ "NrSysProcess", 0x90040A00, (unsigned int)-1, 2 }, { "NrSysProcess", 0x90040A00, (unsigned int)-1, ACP_CMD },
}; };
const unsigned int acpIdMapSize = sizeof(acpIdMap) / sizeof(acpIdMap[0]); const unsigned int acpIdMapSize = sizeof(acpIdMap) / sizeof(acpIdMap[0]);
This diff is collapsed.
/*
* Copyright 2022 Sequans Communications.
*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.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.openairinterface.org/?page_id=698
*
* 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.
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#pragma once
// Internal includes
#include "acp.h"
#include "acpCtx.h"
#include "acpHandshake.h"
SIDL_BEGIN_C_INTERFACE
/** Short type aliases for generated ones. */
typedef struct AcpHandshakeService_AcpHandshakeReqService_services_Dynamic acpHandshakeReqServices;
typedef struct AcpHandshakeService_AcpHandshakeCnfService_services_Dynamic acpHandshakeCnfServices;
/** Handles handshake from client. */
int acpHandleHandshakeFromClient(struct acpCtx* ctx, int sock);
/** Handles handshake to server. */
int acpHandleHandshakeToServer(struct acpCtx* ctx, int sock);
/** Receives the message. */
int acpRecvMsgInternal(int sock, size_t* size, unsigned char* buffer);
/** Sends the message. */
int acpSendMsgInternal(int sock, size_t size, const unsigned char* buffer);
SIDL_END_C_INTERFACE
...@@ -26,6 +26,14 @@ ...@@ -26,6 +26,14 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serNrSys.h" #include "serNrSys.h"
void acpNrSysProcessInitClt(acpCtx_t _ctx, struct NR_SYSTEM_CTRL_REQ** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serNrSysProcessInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpNrSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_REQ* FromSS) int acpNrSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_REQ* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -48,11 +56,34 @@ int acpNrSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _s ...@@ -48,11 +56,34 @@ int acpNrSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _s
return serNrSysProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS); return serNrSysProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
} }
void acpNrSysProcessFree0Srv(struct NR_SYSTEM_CTRL_REQ* FromSS)
{
serNrSysProcessFree0Srv(FromSS);
}
void acpNrSysProcessFreeSrv(struct NR_SYSTEM_CTRL_REQ* FromSS) void acpNrSysProcessFreeSrv(struct NR_SYSTEM_CTRL_REQ* FromSS)
{ {
serNrSysProcessFreeSrv(FromSS); serNrSysProcessFreeSrv(FromSS);
} }
void acpNrSysProcessFree0CltSrv(struct NR_SYSTEM_CTRL_REQ* FromSS)
{
serNrSysProcessFree0Srv(FromSS);
}
void acpNrSysProcessFreeCltSrv(struct NR_SYSTEM_CTRL_REQ* FromSS)
{
serNrSysProcessFreeSrv(FromSS);
}
void acpNrSysProcessInitSrv(acpCtx_t _ctx, struct NR_SYSTEM_CTRL_CNF** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serNrSysProcessInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpNrSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_CNF* ToSS) int acpNrSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_SYSTEM_CTRL_CNF* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -75,7 +106,22 @@ int acpNrSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _s ...@@ -75,7 +106,22 @@ int acpNrSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _s
return serNrSysProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serNrSysProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpNrSysProcessFree0Clt(struct NR_SYSTEM_CTRL_CNF* ToSS)
{
serNrSysProcessFree0Clt(ToSS);
}
void acpNrSysProcessFreeClt(struct NR_SYSTEM_CTRL_CNF* ToSS) void acpNrSysProcessFreeClt(struct NR_SYSTEM_CTRL_CNF* ToSS)
{ {
serNrSysProcessFreeClt(ToSS); serNrSysProcessFreeClt(ToSS);
} }
void acpNrSysProcessFree0SrvClt(struct NR_SYSTEM_CTRL_CNF* ToSS)
{
serNrSysProcessFree0Clt(ToSS);
}
void acpNrSysProcessFreeSrvClt(struct NR_SYSTEM_CTRL_CNF* ToSS)
{
serNrSysProcessFreeClt(ToSS);
}
...@@ -26,56 +26,102 @@ ...@@ -26,56 +26,102 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serNrSysSrb.h" #include "serNrSysSrb.h"
int acpNrSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_IND* ToSS) void acpNrSysSrbProcessFromSSInitClt(acpCtx_t _ctx, struct NR_RRC_PDU_REQ** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serNrSysSrbProcessFromSSInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpNrSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_REQ* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serNrSysSrbProcessToSSEncSrv(_buffer, *_size, &_lidx, ToSS); int _ret = serNrSysSrbProcessFromSSEncClt(_buffer, *_size, &_lidx, FromSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_NrSysSrbProcessToSS, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_NrSysSrbProcessFromSS, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpNrSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_IND** ToSS) int acpNrSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_REQ** FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serNrSysSrbProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serNrSysSrbProcessFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
} }
void acpNrSysSrbProcessToSSFreeClt(struct NR_RRC_PDU_IND* ToSS) void acpNrSysSrbProcessFromSSFree0Srv(struct NR_RRC_PDU_REQ* FromSS)
{ {
serNrSysSrbProcessToSSFreeClt(ToSS); serNrSysSrbProcessFromSSFree0Srv(FromSS);
} }
int acpNrSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_REQ* FromSS) void acpNrSysSrbProcessFromSSFreeSrv(struct NR_RRC_PDU_REQ* FromSS)
{
serNrSysSrbProcessFromSSFreeSrv(FromSS);
}
void acpNrSysSrbProcessFromSSFree0CltSrv(struct NR_RRC_PDU_REQ* FromSS)
{
serNrSysSrbProcessFromSSFree0Srv(FromSS);
}
void acpNrSysSrbProcessFromSSFreeCltSrv(struct NR_RRC_PDU_REQ* FromSS)
{
serNrSysSrbProcessFromSSFreeSrv(FromSS);
}
void acpNrSysSrbProcessToSSInitSrv(acpCtx_t _ctx, struct NR_RRC_PDU_IND** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serNrSysSrbProcessToSSInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpNrSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct NR_RRC_PDU_IND* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serNrSysSrbProcessFromSSEncClt(_buffer, *_size, &_lidx, FromSS); int _ret = serNrSysSrbProcessToSSEncSrv(_buffer, *_size, &_lidx, ToSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_NrSysSrbProcessFromSS, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_NrSysSrbProcessToSS, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpNrSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_REQ** FromSS) int acpNrSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct NR_RRC_PDU_IND** ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serNrSysSrbProcessFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS); return serNrSysSrbProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpNrSysSrbProcessFromSSFreeSrv(struct NR_RRC_PDU_REQ* FromSS) void acpNrSysSrbProcessToSSFree0Clt(struct NR_RRC_PDU_IND* ToSS)
{ {
serNrSysSrbProcessFromSSFreeSrv(FromSS); serNrSysSrbProcessToSSFree0Clt(ToSS);
}
void acpNrSysSrbProcessToSSFreeClt(struct NR_RRC_PDU_IND* ToSS)
{
serNrSysSrbProcessToSSFreeClt(ToSS);
}
void acpNrSysSrbProcessToSSFree0SrvClt(struct NR_RRC_PDU_IND* ToSS)
{
serNrSysSrbProcessToSSFree0Clt(ToSS);
}
void acpNrSysSrbProcessToSSFreeSrvClt(struct NR_RRC_PDU_IND* ToSS)
{
serNrSysSrbProcessToSSFreeClt(ToSS);
} }
...@@ -27,44 +27,18 @@ ...@@ -27,44 +27,18 @@
#include "acpProto.h" #include "acpProto.h"
#include "acpCtx.h" #include "acpCtx.h"
void acpProcessPushMsg(acpCtx_t ctx, size_t size, const unsigned char* buffer) void acpBuildHeader(acpCtx_t ctx, int type, size_t size, unsigned char* buffer)
{ {
struct acpCtx* c = ACP_CTX_CAST(ctx); SIDL_ASSERT(ctx);
SIDL_ASSERT(buffer);
c->handle = (void*)(uintptr_t)((buffer[8] << 24) | (buffer[9] << 16) | (buffer[10] << 8) | (buffer[11])); SIDL_ASSERT(size >= ACP_HEADER_SIZE);
size -= ACP_HEADER_SIZE;
struct acpWklmServicePushMessage* m = (struct acpWklmServicePushMessage*)&buffer[ACP_HEADER_SIZE];
size_t serviceQty = ntohl(m->serviceQty);
const uint8_t* p = (uint8_t*)m + 4;
size_t offset = 0;
size -= 4;
for (size_t i = 0; i < serviceQty; i++) {
const struct acpWklmService* s = (struct acpWklmService*)&p[offset];
const char* name = (char*)&p[offset + 4];
offset += 4;
while ((offset < size) && p[offset]) {
offset++;
}
offset++;
if (offset >= size) {
break;
}
acpCtxResolveId(ntohl(s->id), name);
}
}
void acpBuildHeader(acpCtx_t ctx, unsigned int type, size_t size, unsigned char* buffer)
{
struct acpCtx* c = ACP_CTX_CAST(ctx); struct acpCtx* c = ACP_CTX_CAST(ctx);
uint32_t handle = (uint32_t)(uintptr_t)(c->sHandle ? c->sHandle : c->handle); int handle = (int)(uintptr_t)(c->sHandle ? c->sHandle : c->handle);
uint32_t status = 0; int sidlStatus = 0;
size_t payloadSize = size - ACP_HEADER_SIZE; // payload size int payloadSize = (int)size - ACP_HEADER_SIZE; // payload size
buffer[0] = 0x01; buffer[0] = 0x01;
buffer[1] = 0x06; buffer[1] = 0x06;
...@@ -78,8 +52,51 @@ void acpBuildHeader(acpCtx_t ctx, unsigned int type, size_t size, unsigned char* ...@@ -78,8 +52,51 @@ void acpBuildHeader(acpCtx_t ctx, unsigned int type, size_t size, unsigned char*
buffer[9] = (handle >> 16) & 0xFF; buffer[9] = (handle >> 16) & 0xFF;
buffer[10] = (handle >> 8) & 0xFF; buffer[10] = (handle >> 8) & 0xFF;
buffer[11] = handle & 0xFF; buffer[11] = handle & 0xFF;
buffer[12] = (status >> 24) & 0xFF; buffer[12] = (sidlStatus >> 24) & 0xFF;
buffer[13] = (status >> 16) & 0xFF; buffer[13] = (sidlStatus >> 16) & 0xFF;
buffer[14] = (status >> 8) & 0xFF; buffer[14] = (sidlStatus >> 8) & 0xFF;
buffer[15] = status & 0xFF; buffer[15] = sidlStatus & 0xFF;
}
int acpGetServicePayloadLength(size_t size, const unsigned char* buffer)
{
SIDL_ASSERT(buffer);
SIDL_ASSERT(size >= ACP_HEADER_SIZE);
return (int)((buffer[2] << 8) | buffer[3]);
}
int acpGetServiceType(size_t size, const unsigned char* buffer)
{
SIDL_ASSERT(buffer);
SIDL_ASSERT(size >= ACP_HEADER_SIZE);
return (int)((buffer[4] << 24) | (buffer[5] << 16) | (buffer[6] << 8) | (buffer[7]));
}
int acpGetServiceHandle(size_t size, const unsigned char* buffer)
{
SIDL_ASSERT(buffer);
SIDL_ASSERT(size >= ACP_HEADER_SIZE);
return (int)((buffer[8] << 24) | (buffer[9] << 16) | (buffer[10] << 8) | (buffer[11]));
}
int acpGetServiceStatus(size_t size, const unsigned char* buffer)
{
SIDL_ASSERT(buffer);
SIDL_ASSERT(size >= ACP_HEADER_SIZE);
return (int)((buffer[12] << 24) | (buffer[13] << 16) | (buffer[14] << 8) | (buffer[15]));
}
void acpSetServiceStatus(size_t size, unsigned char* buffer, int sidlStatus)
{
SIDL_ASSERT(buffer);
SIDL_ASSERT(size >= ACP_HEADER_SIZE);
buffer[12] = (sidlStatus >> 24) & 0xFF;
buffer[13] = (sidlStatus >> 16) & 0xFF;
buffer[14] = (sidlStatus >> 8) & 0xFF;
buffer[15] = sidlStatus & 0xFF;
} }
...@@ -22,32 +22,27 @@ ...@@ -22,32 +22,27 @@
#pragma once #pragma once
// System includes
#include <stdbool.h>
// Internal includes // Internal includes
#include "acp.h" #include "acp.h"
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
#pragma pack(push, 1) /** Add ACP header in the begining of the buffer. */
struct acpWklmService { void acpBuildHeader(acpCtx_t ctx, int type, size_t size, unsigned char* buffer);
unsigned int id; // Service ID
/*const char name[];*/ // NULL terminated service name
};
#pragma pack(pop)
#pragma pack(push, 1) /** Get ACP header payload length of the service. */
struct acpWklmServicePushMessage { int acpGetServicePayloadLength(size_t size, const unsigned char* buffer);
unsigned int serviceQty; // Number of pushed services
/*struct dcxWklmService services[];*/ // Array of services
};
#pragma pack(pop)
/** Process push message and resolve ids. */ /** Get ACP header type of the service. */
void acpProcessPushMsg(acpCtx_t ctx, size_t size, const unsigned char* buffer); int acpGetServiceType(size_t size, const unsigned char* buffer);
/** Add ACP header in the begining of the buffer. */ /** Get ACP header handle of the service. */
void acpBuildHeader(acpCtx_t ctx, unsigned int type, size_t size, unsigned char* buffer); int acpGetServiceHandle(size_t size, const unsigned char* buffer);
/** Get ACP header SIDL status. */
int acpGetServiceStatus(size_t size, const unsigned char* buffer);
/** Update ACP header SIDL status .*/
void acpSetServiceStatus(size_t size, unsigned char* buffer, int sidlStatus);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -35,49 +35,85 @@ ...@@ -35,49 +35,85 @@
#include "acpSocket.h" #include "acpSocket.h"
#include "adbg.h" #include "adbg.h"
int acpSocketConnect(IpAddress_t ipaddr, int port) static int acpSocketSetOpts(int sock, bool isServer)
{ {
SIDL_ASSERT(sock >= 0);
ACP_DEBUG_ENTER_LOG(); ACP_DEBUG_ENTER_LOG();
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = ntohl(ipaddr.v.ipv4);
int client_fd = -1;
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
// Configure KEEPALIVE
const int keepalive = 1; const int keepalive = 1;
const int keepalive_time = 30; const int keepalive_time = 30;
const int keepalive_intvl = 2; const int keepalive_intvl = 2;
const int keepalive_probes = 5; const int keepalive_probes = 5;
const int reuse = 1;
const int syn_retries = 2; // Send a total of 3 SYN packets => Timeout ~7s const int syn_retries = 2; // Send a total of 3 SYN packets => Timeout ~7s
const int fcntl_args = O_NONBLOCK;
if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &keepalive, (socklen_t)sizeof(keepalive)) == -1) { if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &keepalive, (socklen_t)sizeof(keepalive)) == -1) {
goto _error; ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPIDLE, &keepalive_time, (socklen_t)sizeof(keepalive_time)) == -1) { if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPIDLE, &keepalive_time, (socklen_t)sizeof(keepalive_time)) == -1) {
goto _error; ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPINTVL, &keepalive_intvl, (socklen_t)sizeof(keepalive_intvl)) == -1) { if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPINTVL, &keepalive_intvl, (socklen_t)sizeof(keepalive_intvl)) == -1) {
goto _error; ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPCNT, &keepalive_probes, (socklen_t)sizeof(keepalive_probes)) == -1) { if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPCNT, &keepalive_probes, (socklen_t)sizeof(keepalive_probes)) == -1) {
goto _error; ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
if (isServer) {
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &reuse, (socklen_t)sizeof(reuse)) == -1) {
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
} else {
if (setsockopt(sock, IPPROTO_TCP, TCP_SYNCNT, &syn_retries, (socklen_t)sizeof(syn_retries)) == -1) {
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
} }
if (setsockopt(sock, IPPROTO_TCP, TCP_SYNCNT, &syn_retries, (socklen_t)sizeof(syn_retries)) == -1) { int arg = fcntl(sock, F_GETFL, NULL);
goto _error; if (arg == -1) {
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
arg |= fcntl_args;
if (fcntl(sock, F_SETFL, arg) == -1) {
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
ACP_DEBUG_EXIT_LOG(NULL);
return 0;
}
int acpSocketConnect(IpAddress_t ipaddr, int port)
{
ACP_DEBUG_ENTER_LOG();
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = ntohl(ipaddr.v.ipv4);
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
if (acpSocketSetOpts(sock, false) == -1) {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
client_fd = connect(sock, (struct sockaddr*)&sin, sizeof(sin)); if (connect(sock, (struct sockaddr*)&sin, sizeof(sin)) == -1) {
if (client_fd == -1) { if ((errno == EINPROGRESS) || (errno == EAGAIN)) {
int myerrno = errno;
if (myerrno == EINPROGRESS || myerrno == EAGAIN) {
fd_set fdset; fd_set fdset;
FD_ZERO(&fdset); FD_ZERO(&fdset);
FD_SET(sock, &fdset); FD_SET(sock, &fdset);
...@@ -87,33 +123,29 @@ int acpSocketConnect(IpAddress_t ipaddr, int port) ...@@ -87,33 +123,29 @@ int acpSocketConnect(IpAddress_t ipaddr, int port)
tv.tv_usec = 0; tv.tv_usec = 0;
if (select(sock + 1, NULL, &fdset, NULL, &tv) == 1) { if (select(sock + 1, NULL, &fdset, NULL, &tv) == 1) {
socklen_t optlen = sizeof(int);
int valopt; int valopt;
if ((getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&valopt, &optlen) == 0) && !valopt) { socklen_t optlen = sizeof(valopt);
ACP_DEBUG_LOG("Connected to server: %s:%d", inet_ntoa(sin.sin_addr), port); if ((getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&valopt, &optlen) == -1) || valopt) {
ACP_DEBUG_EXIT_LOG(NULL); close(sock);
return sock; ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
} else {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
} } else {
close(sock);
if (myerrno) { ACP_DEBUG_EXIT_LOG(strerror(errno));
goto _error; return -1;
} }
} }
int arg = fcntl(sock, F_GETFL, NULL); ACP_DEBUG_LOG("Connected to server %s:%d", inet_ntoa(sin.sin_addr), port);
arg |= O_NONBLOCK;
fcntl(sock, F_SETFL, arg);
ACP_DEBUG_LOG("Connected to server: %s:%d", inet_ntoa(sin.sin_addr), port);
ACP_DEBUG_EXIT_LOG(NULL); ACP_DEBUG_EXIT_LOG(NULL);
return sock; return sock;
_error:
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
int acpSocketListen(IpAddress_t ipaddr, int port) int acpSocketListen(IpAddress_t ipaddr, int port)
...@@ -131,46 +163,14 @@ int acpSocketListen(IpAddress_t ipaddr, int port) ...@@ -131,46 +163,14 @@ int acpSocketListen(IpAddress_t ipaddr, int port)
return -1; return -1;
} }
// Configure KEEPALIVE if (acpSocketSetOpts(sock, true) == -1) {
const int keepalive = 1;
const int keepalive_time = 30;
const int keepalive_intvl = 2;
const int keepalive_probes = 5;
if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &keepalive, (socklen_t)sizeof(keepalive)) == -1) {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPIDLE, &keepalive_time, (socklen_t)sizeof(keepalive_time)) == -1) {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPINTVL, &keepalive_intvl, (socklen_t)sizeof(keepalive_intvl)) == -1) {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
if (setsockopt(sock, IPPROTO_TCP, TCP_KEEPCNT, &keepalive_probes, (socklen_t)sizeof(keepalive_probes)) == -1) {
close(sock); close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno)); ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1; return -1;
} }
const int reuse = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &reuse, (socklen_t)sizeof(reuse)) == -1) {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
}
int arg = fcntl(sock, F_GETFL, NULL);
arg |= O_NONBLOCK;
fcntl(sock, F_SETFL, arg);
if (bind(sock, (struct sockaddr*)&sin, sizeof(sin)) == -1) { if (bind(sock, (struct sockaddr*)&sin, sizeof(sin)) == -1) {
int myerrno = errno; if ((errno == EINPROGRESS) || (errno == EAGAIN)) {
if (myerrno == EINPROGRESS) {
fd_set fdset; fd_set fdset;
FD_ZERO(&fdset); FD_ZERO(&fdset);
FD_SET(sock, &fdset); FD_SET(sock, &fdset);
...@@ -180,24 +180,34 @@ int acpSocketListen(IpAddress_t ipaddr, int port) ...@@ -180,24 +180,34 @@ int acpSocketListen(IpAddress_t ipaddr, int port)
tv.tv_usec = 0; tv.tv_usec = 0;
if (select(sock + 1, NULL, &fdset, NULL, &tv) == 1) { if (select(sock + 1, NULL, &fdset, NULL, &tv) == 1) {
socklen_t optlen = sizeof(int);
int valopt; int valopt;
if ((getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&valopt, &optlen) == 0) && !valopt) { socklen_t optlen = sizeof(valopt);
return sock; if ((getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&valopt, &optlen) == -1) || valopt) {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
} else {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
} else {
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1;
} }
if (listen(sock, 3) == -1) { const int backlog = 3;
if (listen(sock, backlog) == -1) {
close(sock); close(sock);
ACP_DEBUG_EXIT_LOG(strerror(errno)); ACP_DEBUG_EXIT_LOG(strerror(errno));
return -1; return -1;
} }
ACP_DEBUG_LOG("Created listening server %s:%d", inet_ntoa(sin.sin_addr), port);
ACP_DEBUG_EXIT_LOG(NULL); ACP_DEBUG_EXIT_LOG(NULL);
return sock; return sock;
} }
...@@ -209,7 +219,7 @@ int acpSocketSelect(int sock, MSec_t socketTimeout) ...@@ -209,7 +219,7 @@ int acpSocketSelect(int sock, MSec_t socketTimeout)
#endif #endif
if (sock < 0) { if (sock < 0) {
ACP_DEBUG_EXIT_TRACE_LOG("invalid socket argument"); ACP_DEBUG_EXIT_TRACE_LOG("Invalid socket argument");
return -1; return -1;
} }
...@@ -257,13 +267,12 @@ int acpSocketSelect(int sock, MSec_t socketTimeout) ...@@ -257,13 +267,12 @@ int acpSocketSelect(int sock, MSec_t socketTimeout)
int acpSocketSelectMulti(int* sock, MSec_t socketTimeout, size_t peersSize, int* peers) int acpSocketSelectMulti(int* sock, MSec_t socketTimeout, size_t peersSize, int* peers)
{ {
SIDL_ASSERT(sock); SIDL_ASSERT(sock);
#ifdef ACP_DEBUG_TRACE_FLOOD #ifdef ACP_DEBUG_TRACE_FLOOD
ACP_DEBUG_ENTER_TRACE_LOG(); ACP_DEBUG_ENTER_TRACE_LOG();
#endif #endif
if (*sock < 0) { if (*sock < 0) {
ACP_DEBUG_EXIT_TRACE_LOG("invalid socket argument"); ACP_DEBUG_EXIT_TRACE_LOG("Invalid socket argument");
return -1; return -1;
} }
...@@ -354,7 +363,7 @@ int acpSocketSend(int sock, size_t size, const unsigned char* buffer) ...@@ -354,7 +363,7 @@ int acpSocketSend(int sock, size_t size, const unsigned char* buffer)
#endif #endif
if (sock < 0) { if (sock < 0) {
ACP_DEBUG_EXIT_TRACE_LOG("invalid socket argument"); ACP_DEBUG_EXIT_TRACE_LOG("Invalid socket argument");
return -1; return -1;
} }
...@@ -364,16 +373,15 @@ int acpSocketSend(int sock, size_t size, const unsigned char* buffer) ...@@ -364,16 +373,15 @@ int acpSocketSend(int sock, size_t size, const unsigned char* buffer)
do { do {
ssize_t bytes = send(sock, buffer + index, dataToWrite, MSG_DONTWAIT); ssize_t bytes = send(sock, buffer + index, dataToWrite, MSG_DONTWAIT);
if (bytes <= 0) { if (bytes <= 0) {
int err = errno; if ((bytes < 0) && (errno == EPIPE)) {
if ((bytes < 0) && (err == EPIPE)) {
// TODO: fix infinite loop between select() > 0 and send() <= 0 // TODO: fix infinite loop between select() > 0 and send() <= 0
} else if (bytes < 0) { } else if (bytes < 0) {
if ((err != EAGAIN) && (err != EPIPE)) { if ((errno != EAGAIN) && (errno != EPIPE)) {
ACP_DEBUG_EXIT_TRACE_LOG(strerror(errno)); ACP_DEBUG_EXIT_TRACE_LOG(strerror(errno));
return -1; return -1;
} }
} }
if ((bytes == 0) || (err == EAGAIN)) { if ((bytes == 0) || (errno == EAGAIN)) {
fd_set fdset; fd_set fdset;
FD_ZERO(&fdset); FD_ZERO(&fdset);
FD_SET(sock, &fdset); FD_SET(sock, &fdset);
...@@ -382,13 +390,14 @@ int acpSocketSend(int sock, size_t size, const unsigned char* buffer) ...@@ -382,13 +390,14 @@ int acpSocketSend(int sock, size_t size, const unsigned char* buffer)
tv.tv_sec = 1; tv.tv_sec = 1;
tv.tv_usec = 0; tv.tv_usec = 0;
int ret = select(sock + 1, NULL, &fdset, NULL, &tv); int err = select(sock + 1, NULL, &fdset, NULL, &tv);
if (ret > 0) { if (err > 0) {
continue; continue;
} else if (ret == 0) { } else if (err == 0) {
continue; continue;
} }
} }
ACP_DEBUG_EXIT_TRACE_LOG(strerror(errno)); ACP_DEBUG_EXIT_TRACE_LOG(strerror(errno));
return -1; return -1;
} }
...@@ -411,7 +420,7 @@ int acpSocketReceive(int sock, size_t size, unsigned char* buffer, MSec_t socket ...@@ -411,7 +420,7 @@ int acpSocketReceive(int sock, size_t size, unsigned char* buffer, MSec_t socket
#endif #endif
if (sock < 0) { if (sock < 0) {
ACP_DEBUG_EXIT_TRACE_LOG("invalid socket argument"); ACP_DEBUG_EXIT_TRACE_LOG("Invalid socket argument");
return -1; return -1;
} }
...@@ -446,8 +455,9 @@ int acpSocketReceive(int sock, size_t size, unsigned char* buffer, MSec_t socket ...@@ -446,8 +455,9 @@ int acpSocketReceive(int sock, size_t size, unsigned char* buffer, MSec_t socket
break; break;
} }
if (--attemps <= 0) break; if (--attemps <= 0) {
break;
}
} while (available == 0); } while (available == 0);
if (available == 0) { if (available == 0) {
......
...@@ -26,6 +26,14 @@ ...@@ -26,6 +26,14 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serSys.h" #include "serSys.h"
void acpSysProcessInitClt(acpCtx_t _ctx, struct SYSTEM_CTRL_REQ** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysProcessInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_REQ* FromSS) int acpSysProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_REQ* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -48,11 +56,34 @@ int acpSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz ...@@ -48,11 +56,34 @@ int acpSysProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz
return serSysProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS); return serSysProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
} }
void acpSysProcessFree0Srv(struct SYSTEM_CTRL_REQ* FromSS)
{
serSysProcessFree0Srv(FromSS);
}
void acpSysProcessFreeSrv(struct SYSTEM_CTRL_REQ* FromSS) void acpSysProcessFreeSrv(struct SYSTEM_CTRL_REQ* FromSS)
{ {
serSysProcessFreeSrv(FromSS); serSysProcessFreeSrv(FromSS);
} }
void acpSysProcessFree0CltSrv(struct SYSTEM_CTRL_REQ* FromSS)
{
serSysProcessFree0Srv(FromSS);
}
void acpSysProcessFreeCltSrv(struct SYSTEM_CTRL_REQ* FromSS)
{
serSysProcessFreeSrv(FromSS);
}
void acpSysProcessInitSrv(acpCtx_t _ctx, struct SYSTEM_CTRL_CNF** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysProcessInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_CNF* ToSS) int acpSysProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_CTRL_CNF* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -75,7 +106,22 @@ int acpSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz ...@@ -75,7 +106,22 @@ int acpSysProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz
return serSysProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serSysProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpSysProcessFree0Clt(struct SYSTEM_CTRL_CNF* ToSS)
{
serSysProcessFree0Clt(ToSS);
}
void acpSysProcessFreeClt(struct SYSTEM_CTRL_CNF* ToSS) void acpSysProcessFreeClt(struct SYSTEM_CTRL_CNF* ToSS)
{ {
serSysProcessFreeClt(ToSS); serSysProcessFreeClt(ToSS);
} }
void acpSysProcessFree0SrvClt(struct SYSTEM_CTRL_CNF* ToSS)
{
serSysProcessFree0Clt(ToSS);
}
void acpSysProcessFreeSrvClt(struct SYSTEM_CTRL_CNF* ToSS)
{
serSysProcessFreeClt(ToSS);
}
...@@ -26,6 +26,14 @@ ...@@ -26,6 +26,14 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serSysInd.h" #include "serSysInd.h"
void acpSysIndProcessToSSInitSrv(acpCtx_t _ctx, struct SYSTEM_IND** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysIndProcessToSSInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpSysIndProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_IND* ToSS) int acpSysIndProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct SYSTEM_IND* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -48,7 +56,22 @@ int acpSysIndProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size ...@@ -48,7 +56,22 @@ int acpSysIndProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size
return serSysIndProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serSysIndProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpSysIndProcessToSSFree0Clt(struct SYSTEM_IND* ToSS)
{
serSysIndProcessToSSFree0Clt(ToSS);
}
void acpSysIndProcessToSSFreeClt(struct SYSTEM_IND* ToSS) void acpSysIndProcessToSSFreeClt(struct SYSTEM_IND* ToSS)
{ {
serSysIndProcessToSSFreeClt(ToSS); serSysIndProcessToSSFreeClt(ToSS);
} }
void acpSysIndProcessToSSFree0SrvClt(struct SYSTEM_IND* ToSS)
{
serSysIndProcessToSSFree0Clt(ToSS);
}
void acpSysIndProcessToSSFreeSrvClt(struct SYSTEM_IND* ToSS)
{
serSysIndProcessToSSFreeClt(ToSS);
}
...@@ -26,56 +26,102 @@ ...@@ -26,56 +26,102 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serSysSrb.h" #include "serSysSrb.h"
int acpSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_IND* ToSS) void acpSysSrbProcessFromSSInitClt(acpCtx_t _ctx, struct EUTRA_RRC_PDU_REQ** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysSrbProcessFromSSInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_REQ* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serSysSrbProcessToSSEncSrv(_buffer, *_size, &_lidx, ToSS); int _ret = serSysSrbProcessFromSSEncClt(_buffer, *_size, &_lidx, FromSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_SysSrbProcessToSS, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_SysSrbProcessFromSS, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_IND** ToSS) int acpSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_REQ** FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serSysSrbProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serSysSrbProcessFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
} }
void acpSysSrbProcessToSSFreeClt(struct EUTRA_RRC_PDU_IND* ToSS) void acpSysSrbProcessFromSSFree0Srv(struct EUTRA_RRC_PDU_REQ* FromSS)
{ {
serSysSrbProcessToSSFreeClt(ToSS); serSysSrbProcessFromSSFree0Srv(FromSS);
} }
int acpSysSrbProcessFromSSEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_REQ* FromSS) void acpSysSrbProcessFromSSFreeSrv(struct EUTRA_RRC_PDU_REQ* FromSS)
{
serSysSrbProcessFromSSFreeSrv(FromSS);
}
void acpSysSrbProcessFromSSFree0CltSrv(struct EUTRA_RRC_PDU_REQ* FromSS)
{
serSysSrbProcessFromSSFree0Srv(FromSS);
}
void acpSysSrbProcessFromSSFreeCltSrv(struct EUTRA_RRC_PDU_REQ* FromSS)
{
serSysSrbProcessFromSSFreeSrv(FromSS);
}
void acpSysSrbProcessToSSInitSrv(acpCtx_t _ctx, struct EUTRA_RRC_PDU_IND** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysSrbProcessToSSInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpSysSrbProcessToSSEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_RRC_PDU_IND* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serSysSrbProcessFromSSEncClt(_buffer, *_size, &_lidx, FromSS); int _ret = serSysSrbProcessToSSEncSrv(_buffer, *_size, &_lidx, ToSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_SysSrbProcessFromSS, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_SysSrbProcessToSS, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpSysSrbProcessFromSSDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_REQ** FromSS) int acpSysSrbProcessToSSDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct EUTRA_RRC_PDU_IND** ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serSysSrbProcessFromSSDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS); return serSysSrbProcessToSSDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpSysSrbProcessFromSSFreeSrv(struct EUTRA_RRC_PDU_REQ* FromSS) void acpSysSrbProcessToSSFree0Clt(struct EUTRA_RRC_PDU_IND* ToSS)
{ {
serSysSrbProcessFromSSFreeSrv(FromSS); serSysSrbProcessToSSFree0Clt(ToSS);
}
void acpSysSrbProcessToSSFreeClt(struct EUTRA_RRC_PDU_IND* ToSS)
{
serSysSrbProcessToSSFreeClt(ToSS);
}
void acpSysSrbProcessToSSFree0SrvClt(struct EUTRA_RRC_PDU_IND* ToSS)
{
serSysSrbProcessToSSFree0Clt(ToSS);
}
void acpSysSrbProcessToSSFreeSrvClt(struct EUTRA_RRC_PDU_IND* ToSS)
{
serSysSrbProcessToSSFreeClt(ToSS);
} }
...@@ -26,56 +26,102 @@ ...@@ -26,56 +26,102 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serSysVT.h" #include "serSysVT.h"
int acpSysVTEnquireTimingUpdEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* TimingInfoToSS) void acpSysVTEnquireTimingAckInitClt(acpCtx_t _ctx, struct VirtualTimeInfo_Type** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysVTEnquireTimingAckInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpSysVTEnquireTimingAckEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serSysVTEnquireTimingUpdEncSrv(_buffer, *_size, &_lidx, TimingInfoToSS); int _ret = serSysVTEnquireTimingAckEncClt(_buffer, *_size, &_lidx, FromSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_SysVTEnquireTimingUpd, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_SysVTEnquireTimingAck, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpSysVTEnquireTimingUpdDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** TimingInfoToSS) int acpSysVTEnquireTimingAckDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serSysVTEnquireTimingUpdDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, TimingInfoToSS); return serSysVTEnquireTimingAckDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
void acpSysVTEnquireTimingAckFree0Srv(struct VirtualTimeInfo_Type* FromSS)
{
serSysVTEnquireTimingAckFree0Srv(FromSS);
}
void acpSysVTEnquireTimingAckFreeSrv(struct VirtualTimeInfo_Type* FromSS)
{
serSysVTEnquireTimingAckFreeSrv(FromSS);
}
void acpSysVTEnquireTimingAckFree0CltSrv(struct VirtualTimeInfo_Type* FromSS)
{
serSysVTEnquireTimingAckFree0Srv(FromSS);
} }
void acpSysVTEnquireTimingUpdFreeClt(struct VirtualTimeInfo_Type* TimingInfoToSS) void acpSysVTEnquireTimingAckFreeCltSrv(struct VirtualTimeInfo_Type* FromSS)
{ {
serSysVTEnquireTimingUpdFreeClt(TimingInfoToSS); serSysVTEnquireTimingAckFreeSrv(FromSS);
} }
int acpSysVTEnquireTimingAckEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* TimingInfoFromSS) void acpSysVTEnquireTimingUpdInitSrv(acpCtx_t _ctx, struct VirtualTimeInfo_Type** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serSysVTEnquireTimingUpdInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpSysVTEnquireTimingUpdEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct VirtualTimeInfo_Type* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
size_t _lidx = ACP_HEADER_SIZE; size_t _lidx = ACP_HEADER_SIZE;
int _ret = serSysVTEnquireTimingAckEncClt(_buffer, *_size, &_lidx, TimingInfoFromSS); int _ret = serSysVTEnquireTimingUpdEncSrv(_buffer, *_size, &_lidx, ToSS);
if (_ret == SIDL_STATUS_OK) { if (_ret == SIDL_STATUS_OK) {
acpBuildHeader(_ctx, ACP_LID_SysVTEnquireTimingAck, _lidx, _buffer); acpBuildHeader(_ctx, ACP_LID_SysVTEnquireTimingUpd, _lidx, _buffer);
} }
*_size = _lidx; *_size = _lidx;
return _ret; return _ret;
} }
int acpSysVTEnquireTimingAckDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** TimingInfoFromSS) int acpSysVTEnquireTimingUpdDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _size, struct VirtualTimeInfo_Type** ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
return -ACP_ERR_INVALID_CTX; return -ACP_ERR_INVALID_CTX;
} }
return serSysVTEnquireTimingAckDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, TimingInfoFromSS); return serSysVTEnquireTimingUpdDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
void acpSysVTEnquireTimingUpdFree0Clt(struct VirtualTimeInfo_Type* ToSS)
{
serSysVTEnquireTimingUpdFree0Clt(ToSS);
}
void acpSysVTEnquireTimingUpdFreeClt(struct VirtualTimeInfo_Type* ToSS)
{
serSysVTEnquireTimingUpdFreeClt(ToSS);
}
void acpSysVTEnquireTimingUpdFree0SrvClt(struct VirtualTimeInfo_Type* ToSS)
{
serSysVTEnquireTimingUpdFree0Clt(ToSS);
} }
void acpSysVTEnquireTimingAckFreeSrv(struct VirtualTimeInfo_Type* TimingInfoFromSS) void acpSysVTEnquireTimingUpdFreeSrvClt(struct VirtualTimeInfo_Type* ToSS)
{ {
serSysVTEnquireTimingAckFreeSrv(TimingInfoFromSS); serSysVTEnquireTimingUpdFreeClt(ToSS);
} }
This diff is collapsed.
...@@ -26,6 +26,14 @@ ...@@ -26,6 +26,14 @@
#include "acpMsgIds.h" #include "acpMsgIds.h"
#include "serVng.h" #include "serVng.h"
void acpVngProcessInitClt(acpCtx_t _ctx, struct EUTRA_VNG_CTRL_REQ** FromSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serVngProcessInitClt(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
}
int acpVngProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_REQ* FromSS) int acpVngProcessEncClt(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_REQ* FromSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -48,11 +56,34 @@ int acpVngProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz ...@@ -48,11 +56,34 @@ int acpVngProcessDecSrv(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz
return serVngProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS); return serVngProcessDecSrv(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, FromSS);
} }
void acpVngProcessFree0Srv(struct EUTRA_VNG_CTRL_REQ* FromSS)
{
serVngProcessFree0Srv(FromSS);
}
void acpVngProcessFreeSrv(struct EUTRA_VNG_CTRL_REQ* FromSS) void acpVngProcessFreeSrv(struct EUTRA_VNG_CTRL_REQ* FromSS)
{ {
serVngProcessFreeSrv(FromSS); serVngProcessFreeSrv(FromSS);
} }
void acpVngProcessFree0CltSrv(struct EUTRA_VNG_CTRL_REQ* FromSS)
{
serVngProcessFree0Srv(FromSS);
}
void acpVngProcessFreeCltSrv(struct EUTRA_VNG_CTRL_REQ* FromSS)
{
serVngProcessFreeSrv(FromSS);
}
void acpVngProcessInitSrv(acpCtx_t _ctx, struct EUTRA_VNG_CTRL_CNF** ToSS)
{
if (!acpCtxIsValid(_ctx)) {
SIDL_ASSERT(_ctx != _ctx);
}
serVngProcessInitSrv(ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
}
int acpVngProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_CNF* ToSS) int acpVngProcessEncSrv(acpCtx_t _ctx, unsigned char* _buffer, size_t* _size, const struct EUTRA_VNG_CTRL_CNF* ToSS)
{ {
if (!acpCtxIsValid(_ctx)) { if (!acpCtxIsValid(_ctx)) {
...@@ -75,7 +106,22 @@ int acpVngProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz ...@@ -75,7 +106,22 @@ int acpVngProcessDecClt(acpCtx_t _ctx, const unsigned char* _buffer, size_t _siz
return serVngProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS); return serVngProcessDecClt(_buffer + ACP_HEADER_SIZE, _size - ACP_HEADER_SIZE, ACP_CTX_CAST(_ctx)->arena, ACP_CTX_CAST(_ctx)->aSize, ToSS);
} }
void acpVngProcessFree0Clt(struct EUTRA_VNG_CTRL_CNF* ToSS)
{
serVngProcessFree0Clt(ToSS);
}
void acpVngProcessFreeClt(struct EUTRA_VNG_CTRL_CNF* ToSS) void acpVngProcessFreeClt(struct EUTRA_VNG_CTRL_CNF* ToSS)
{ {
serVngProcessFreeClt(ToSS); serVngProcessFreeClt(ToSS);
} }
void acpVngProcessFree0SrvClt(struct EUTRA_VNG_CTRL_CNF* ToSS)
{
serVngProcessFree0Clt(ToSS);
}
void acpVngProcessFreeSrvClt(struct EUTRA_VNG_CTRL_CNF* ToSS)
{
serVngProcessFreeClt(ToSS);
}
...@@ -39,7 +39,7 @@ SIDL_BEGIN_C_INTERFACE ...@@ -39,7 +39,7 @@ SIDL_BEGIN_C_INTERFACE
#define ACP_DEBUG_ENTER_CLOG(ctx) do { adbgPrintLog(ctx, ">>> ACP_DEBUG: Entering %s at [%s:%d]", __FUNCTION__, __FILE__, __LINE__); adbgPrintLog(ctx, NULL); } while (false) #define ACP_DEBUG_ENTER_CLOG(ctx) do { adbgPrintLog(ctx, ">>> ACP_DEBUG: Entering %s at [%s:%d]", __FUNCTION__, __FILE__, __LINE__); adbgPrintLog(ctx, NULL); } while (false)
#define ACP_DEBUG_EXIT_CLOG(ctx, val) do { \ #define ACP_DEBUG_EXIT_CLOG(ctx, val) do { \
if (val != NULL) adbgPrintLog(ctx, "<<< ACP_DEBUG: Exiting %s at [%s:%d] with return code '%s'", __FUNCTION__, __FILE__, __LINE__, val); \ if (val != NULL) adbgPrintLog(ctx, "<<< ACP_DEBUG: Exiting %s at [%s:%d] with return code '%s'", __FUNCTION__, __FILE__, __LINE__, val); \
else adbgPrintLog(ctx, "<<< ACP_DEBUG: Exiting %s at %s:%d", __FUNCTION__, __FILE__, __LINE__); \ else adbgPrintLog(ctx, "<<< ACP_DEBUG: Exiting %s at [%s:%d]", __FUNCTION__, __FILE__, __LINE__); \
adbgPrintLog(ctx, NULL); \ adbgPrintLog(ctx, NULL); \
} while (false) } while (false)
#define ACP_DEBUG_LOG(fmt, args...) do { adbgCheckAndSetGlobalLogger(); adbgGlobalLogger("=== ACP_DEBUG: [%s:%d] " fmt, __FILE__, __LINE__, ##args); } while (false) #define ACP_DEBUG_LOG(fmt, args...) do { adbgCheckAndSetGlobalLogger(); adbgGlobalLogger("=== ACP_DEBUG: [%s:%d] " fmt, __FILE__, __LINE__, ##args); } while (false)
...@@ -51,11 +51,11 @@ SIDL_BEGIN_C_INTERFACE ...@@ -51,11 +51,11 @@ SIDL_BEGIN_C_INTERFACE
} while (false) } while (false)
#ifdef ACP_DEBUG_TRACE #ifdef ACP_DEBUG_TRACE
#define ACP_DEBUG_PREFIX_TRACE_CLOG(ctx, fmt, args...) ACP_DEBUG_PREFIX_CLOG(ctx, fmt, args) #define ACP_DEBUG_PREFIX_TRACE_CLOG(ctx, fmt, args...) ACP_DEBUG_PREFIX_CLOG(ctx, fmt, ##args)
#define ACP_DEBUG_TRACE_CLOG(ctx, fmt, args...) ACP_DEBUG_CLOG(ctx, fmt, args) #define ACP_DEBUG_TRACE_CLOG(ctx, fmt, args...) ACP_DEBUG_CLOG(ctx, fmt, ##args)
#define ACP_DEBUG_ENTER_TRACE_CLOG(ctx) ACP_DEBUG_ENTER_CLOG(ctx) #define ACP_DEBUG_ENTER_TRACE_CLOG(ctx) ACP_DEBUG_ENTER_CLOG(ctx)
#define ACP_DEBUG_EXIT_TRACE_CLOG(ctx, val) ACP_DEBUG_EXIT_CLOG(ctx, val) #define ACP_DEBUG_EXIT_TRACE_CLOG(ctx, val) ACP_DEBUG_EXIT_CLOG(ctx, val)
#define ACP_DEBUG_TRACE_LOG(fmt, args...) ACP_DEBUG_LOG(fmt, args) #define ACP_DEBUG_TRACE_LOG(fmt, args...) ACP_DEBUG_LOG(fmt, ##args)
#define ACP_DEBUG_ENTER_TRACE_LOG() ACP_DEBUG_ENTER_LOG() #define ACP_DEBUG_ENTER_TRACE_LOG() ACP_DEBUG_ENTER_LOG()
#define ACP_DEBUG_EXIT_TRACE_LOG(val) ACP_DEBUG_EXIT_LOG(val) #define ACP_DEBUG_EXIT_TRACE_LOG(val) ACP_DEBUG_EXIT_LOG(val)
#else //!ACP_DEBUG_TRACE #else //!ACP_DEBUG_TRACE
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void adbgHandshakeHandleFromSSLogIn(acpCtx_t _ctx, const struct AcpHandshake_Type* fromSS); void adbgHandshakeProcessLogIn(acpCtx_t _ctx, const struct AcpHandshakeReq* FromSS);
void adbgHandshakeHandleToSSLogOut(acpCtx_t _ctx, const struct AcpHandshakeRsp_Type* toSS); void adbgHandshakeProcessLogOut(acpCtx_t _ctx, const struct AcpHandshakeCnf* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void adbgNrSysSrbProcessToSSLogOut(acpCtx_t _ctx, const struct NR_RRC_PDU_IND* ToSS);
void adbgNrSysSrbProcessFromSSLogIn(acpCtx_t _ctx, const struct NR_RRC_PDU_REQ* FromSS); void adbgNrSysSrbProcessFromSSLogIn(acpCtx_t _ctx, const struct NR_RRC_PDU_REQ* FromSS);
void adbgNrSysSrbProcessToSSLogOut(acpCtx_t _ctx, const struct NR_RRC_PDU_IND* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void adbgSysSrbProcessToSSLogOut(acpCtx_t _ctx, const struct EUTRA_RRC_PDU_IND* ToSS);
void adbgSysSrbProcessFromSSLogIn(acpCtx_t _ctx, const struct EUTRA_RRC_PDU_REQ* FromSS); void adbgSysSrbProcessFromSSLogIn(acpCtx_t _ctx, const struct EUTRA_RRC_PDU_REQ* FromSS);
void adbgSysSrbProcessToSSLogOut(acpCtx_t _ctx, const struct EUTRA_RRC_PDU_IND* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
SIDL_BEGIN_C_INTERFACE SIDL_BEGIN_C_INTERFACE
void adbgSysVTEnquireTimingUpdLogOut(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* TimingInfoToSS); void adbgSysVTEnquireTimingAckLogIn(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* FromSS);
void adbgSysVTEnquireTimingAckLogIn(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* TimingInfoFromSS); void adbgSysVTEnquireTimingUpdLogOut(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* ToSS);
SIDL_END_C_INTERFACE SIDL_END_C_INTERFACE
...@@ -73,21 +73,18 @@ void adbgSetLogger(acpCtx_t ctx, adbgLogger_t logger, size_t size) ...@@ -73,21 +73,18 @@ void adbgSetLogger(acpCtx_t ctx, adbgLogger_t logger, size_t size)
} }
if (logger) { if (logger) {
if (ACP_CTX_CAST(ctx)->logger) {
SIDL_ASSERT(!ACP_CTX_CAST(ctx)->logger);
}
ACP_CTX_CAST(ctx)->logger = logger; ACP_CTX_CAST(ctx)->logger = logger;
} }
if (size) { if (size) {
if (ACP_CTX_CAST(ctx)->logBuf) {
SIDL_ASSERT(!ACP_CTX_CAST(ctx)->logBuf);
}
ACP_CTX_CAST(ctx)->logBuf = (unsigned char*)acpMalloc(size); ACP_CTX_CAST(ctx)->logBuf = (unsigned char*)acpMalloc(size);
SIDL_ASSERT(ACP_CTX_CAST(ctx)->logBuf); SIDL_ASSERT(ACP_CTX_CAST(ctx)->logBuf);
ACP_CTX_CAST(ctx)->logBufMaxSize = size;
ACP_CTX_CAST(ctx)->logBufSize = 0; ACP_CTX_CAST(ctx)->logBufSize = 0;
} else {
ACP_CTX_CAST(ctx)->logBuf = NULL;
} }
ACP_CTX_CAST(ctx)->logBufMaxSize = size;
} }
static void adbgCheckAndSetLogger(acpCtx_t ctx) static void adbgCheckAndSetLogger(acpCtx_t ctx)
...@@ -123,6 +120,10 @@ void adbgPrintLog(acpCtx_t ctx, const char* fmt, ...) ...@@ -123,6 +120,10 @@ void adbgPrintLog(acpCtx_t ctx, const char* fmt, ...)
return; return;
} }
if (ACP_CTX_CAST(ctx)->logBufMaxSize == 0 || ACP_CTX_CAST(ctx)->logBuf == NULL) {
return;
}
adbgCheckAndSetLogger(ctx); adbgCheckAndSetLogger(ctx);
if (fmt) { if (fmt) {
......
...@@ -22,56 +22,130 @@ ...@@ -22,56 +22,130 @@
#include "adbgHandshake.h" #include "adbgHandshake.h"
static void _adbgHandshake__AcpHandshake_Type(acpCtx_t _ctx, const struct AcpHandshake_Type* p) static void _adbgHandshake__AcpHandshakeVersion(acpCtx_t _ctx, const struct AcpHandshakeVersion* p)
{ {
adbgPrintLog(_ctx, "acpVersion := '"); adbgPrintLog(_ctx, "release := '");
for (size_t i1 = 0; i1 < 32; i1++) { for (size_t i1 = 0; i1 < 32; i1++) {
adbgPrintLog(_ctx, "%02X", p->acpVersion[i1]); adbgPrintLog(_ctx, "%02X", p->release[i1]);
} }
adbgPrintLog(_ctx, "'O"); adbgPrintLog(_ctx, "'O");
adbgPrintLog(_ctx, ", "); adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "acpVerCksm := '"); adbgPrintLog(_ctx, "checksum := '");
for (size_t i1 = 0; i1 < 64; i1++) { for (size_t i1 = 0; i1 < 64; i1++) {
adbgPrintLog(_ctx, "%02X", p->acpVerCksm[i1]); adbgPrintLog(_ctx, "%02X", p->checksum[i1]);
} }
adbgPrintLog(_ctx, "'O"); adbgPrintLog(_ctx, "'O");
} }
void adbgHandshakeHandleFromSSLogIn(acpCtx_t _ctx, const struct AcpHandshake_Type* fromSS) static void _adbgHandshake__AcpHandshakeReqControlInfo(acpCtx_t _ctx, const struct AcpHandshakeReqControlInfo* p)
{ {
adbgPrintLog(_ctx, "@HandshakeHandleFromSS In Args : { "); adbgPrintLog(_ctx, "productMode := %s", (p->productMode ? "true" : "false"));
adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "desc := \"%s\"", p->desc);
}
adbgPrintLog(_ctx, "fromSS := { "); static void _adbgHandshake__AcpHandshakeReqCommon(acpCtx_t _ctx, const struct AcpHandshakeReqCommon* p)
_adbgHandshake__AcpHandshake_Type(_ctx, fromSS); {
adbgPrintLog(_ctx, "version := { ");
_adbgHandshake__AcpHandshakeVersion(_ctx, &p->version);
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "control := { ");
_adbgHandshake__AcpHandshakeReqControlInfo(_ctx, &p->control);
adbgPrintLog(_ctx, " }");
}
static void _adbgHandshake__AcpHandshakeService(acpCtx_t _ctx, const struct AcpHandshakeService* p)
{
adbgPrintLog(_ctx, "id := %u", (unsigned int)p->id);
adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "name := \"%s\"", p->name);
}
static void _adbgHandshake__AcpHandshakeReqService(acpCtx_t _ctx, const struct AcpHandshakeReqService* p)
{
adbgPrintLog(_ctx, "services := { ");
for (size_t i1 = 0; i1 < p->services.d; i1++) {
adbgPrintLog(_ctx, "{ ");
_adbgHandshake__AcpHandshakeService(_ctx, &p->services.v[i1]);
adbgPrintLog(_ctx, " }");
if (i1 != p->services.d - 1) { adbgPrintLog(_ctx, ", "); }
}
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
adbgPrintFormatLog(_ctx);
} }
static void _adbgHandshake__AcpHandshakeRsp_Type(acpCtx_t _ctx, const struct AcpHandshakeRsp_Type* p) static void _adbgHandshake__AcpHandshakeReq(acpCtx_t _ctx, const struct AcpHandshakeReq* p)
{ {
adbgPrintLog(_ctx, "acpVersionChk := %s", (p->acpVersionChk ? "true" : "false")); adbgPrintLog(_ctx, "common := { ");
_adbgHandshake__AcpHandshakeReqCommon(_ctx, &p->common);
adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, ", "); adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "acpVersion := '"); adbgPrintLog(_ctx, "request := { ");
for (size_t i1 = 0; i1 < 32; i1++) { _adbgHandshake__AcpHandshakeReqService(_ctx, &p->request);
adbgPrintLog(_ctx, "%02X", p->acpVersion[i1]); adbgPrintLog(_ctx, " }");
}
void adbgHandshakeProcessLogIn(acpCtx_t _ctx, const struct AcpHandshakeReq* FromSS)
{
adbgPrintLog(_ctx, "@HandshakeProcess In Args : { ");
adbgPrintLog(_ctx, "FromSS := { ");
_adbgHandshake__AcpHandshakeReq(_ctx, FromSS);
adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, " }");
adbgPrintFormatLog(_ctx);
}
static const char* adbgHandshake__AcpHandshakeCnfResult__ToString(AcpHandshakeCnfResult v)
{
switch(v) {
case ACP_HANDSHAKE_OK: return "ACP_HANDSHAKE_OK";
case ACP_HANDSHAKE_GENERAL_ERROR: return "ACP_HANDSHAKE_GENERAL_ERROR";
case ACP_HANDSHAKE_VERSION_ERROR: return "ACP_HANDSHAKE_VERSION_ERROR";
case ACP_HANDSHAKE_SERVICE_ERROR: return "ACP_HANDSHAKE_SERVICE_ERROR";
default: return "Unknown";
} }
adbgPrintLog(_ctx, "'O"); }
static void _adbgHandshake__AcpHandshakeCnfCommon(acpCtx_t _ctx, const struct AcpHandshakeCnfCommon* p)
{
adbgPrintLog(_ctx, "version := { ");
_adbgHandshake__AcpHandshakeVersion(_ctx, &p->version);
adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, ", "); adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "acpVerCksm := '"); adbgPrintLog(_ctx, "result := %s (%d)", adbgHandshake__AcpHandshakeCnfResult__ToString(p->result), (int)p->result);
for (size_t i1 = 0; i1 < 64; i1++) { }
adbgPrintLog(_ctx, "%02X", p->acpVerCksm[i1]);
static void _adbgHandshake__AcpHandshakeCnfService(acpCtx_t _ctx, const struct AcpHandshakeCnfService* p)
{
adbgPrintLog(_ctx, "services := { ");
for (size_t i1 = 0; i1 < p->services.d; i1++) {
adbgPrintLog(_ctx, "{ ");
_adbgHandshake__AcpHandshakeService(_ctx, &p->services.v[i1]);
adbgPrintLog(_ctx, " }");
if (i1 != p->services.d - 1) { adbgPrintLog(_ctx, ", "); }
} }
adbgPrintLog(_ctx, "'O"); adbgPrintLog(_ctx, " }");
}
static void _adbgHandshake__AcpHandshakeCnf(acpCtx_t _ctx, const struct AcpHandshakeCnf* p)
{
adbgPrintLog(_ctx, "common := { ");
_adbgHandshake__AcpHandshakeCnfCommon(_ctx, &p->common);
adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, ", ");
adbgPrintLog(_ctx, "confirm := { ");
_adbgHandshake__AcpHandshakeCnfService(_ctx, &p->confirm);
adbgPrintLog(_ctx, " }");
} }
void adbgHandshakeHandleToSSLogOut(acpCtx_t _ctx, const struct AcpHandshakeRsp_Type* toSS) void adbgHandshakeProcessLogOut(acpCtx_t _ctx, const struct AcpHandshakeCnf* ToSS)
{ {
adbgPrintLog(_ctx, "@HandshakeHandleToSS Out Args : { "); adbgPrintLog(_ctx, "@HandshakeProcess Out Args : { ");
adbgPrintLog(_ctx, "toSS := { "); adbgPrintLog(_ctx, "ToSS := { ");
_adbgHandshake__AcpHandshakeRsp_Type(_ctx, toSS); _adbgHandshake__AcpHandshakeCnf(_ctx, ToSS);
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
......
...@@ -29,7 +29,7 @@ void adbgMsgLog(acpCtx_t ctx, enum adbgMsgLogDir dir, size_t size, const unsigne ...@@ -29,7 +29,7 @@ void adbgMsgLog(acpCtx_t ctx, enum adbgMsgLogDir dir, size_t size, const unsigne
{ {
if (!acpCtxIsValid(ctx)) { if (!acpCtxIsValid(ctx)) {
SIDL_ASSERT(ctx != ctx); SIDL_ASSERT(ctx != ctx);
ACP_DEBUG_LOG("invalid context"); ACP_DEBUG_LOG("Invalid context");
return; return;
} }
...@@ -38,13 +38,7 @@ void adbgMsgLog(acpCtx_t ctx, enum adbgMsgLogDir dir, size_t size, const unsigne ...@@ -38,13 +38,7 @@ void adbgMsgLog(acpCtx_t ctx, enum adbgMsgLogDir dir, size_t size, const unsigne
enum acpMsgLocalId localId; enum acpMsgLocalId localId;
if (acpGetMsgLocalId(size, buffer, &localId) < -1) { if (acpGetMsgLocalId(size, buffer, &localId) < -1) {
adbgPrintLog(ctx, "invalid buffer"); adbgPrintLog(ctx, "Invalid buffer");
adbgPrintLog(ctx, NULL);
return;
}
if ((int)localId == (int)ACP_SERVICE_PUSH_TYPE) {
adbgPrintLog(ctx, "ACP_SERVICE_PUSH_TYPE");
adbgPrintLog(ctx, NULL); adbgPrintLog(ctx, NULL);
return; return;
} }
...@@ -53,7 +47,7 @@ void adbgMsgLog(acpCtx_t ctx, enum adbgMsgLogDir dir, size_t size, const unsigne ...@@ -53,7 +47,7 @@ void adbgMsgLog(acpCtx_t ctx, enum adbgMsgLogDir dir, size_t size, const unsigne
int kind = acpCtxGetMsgKindFromId(localId); int kind = acpCtxGetMsgKindFromId(localId);
SIDL_ASSERT(kind != -1); SIDL_ASSERT(kind != -1);
if (kind < -1) { if (kind < -1) {
adbgPrintLog(ctx, "cannot find service"); adbgPrintLog(ctx, "Cannot find service");
adbgPrintLog(ctx, NULL); adbgPrintLog(ctx, NULL);
return; return;
} }
......
...@@ -121,7 +121,7 @@ void adbgMsgLogInArgs(acpCtx_t ctx, enum acpMsgLocalId id, size_t size, const un ...@@ -121,7 +121,7 @@ void adbgMsgLogInArgs(acpCtx_t ctx, enum acpMsgLocalId id, size_t size, const un
return; return;
} }
#endif #endif
if (id == ACP_LID_HandshakeHandleFromSS) { if (id == ACP_LID_HandshakeProcess) {
return; return;
} }
#if defined(PROJECT_HAS_RAT_NR) #if defined(PROJECT_HAS_RAT_NR)
...@@ -234,8 +234,7 @@ void adbgMsgLogOutArgs(acpCtx_t ctx, enum acpMsgLocalId id, size_t size, const u ...@@ -234,8 +234,7 @@ void adbgMsgLogOutArgs(acpCtx_t ctx, enum acpMsgLocalId id, size_t size, const u
return; return;
} }
#endif #endif
/* Handshake */ if (id == ACP_LID_HandshakeProcess) {
if (id == ACP_LID_HandshakeHandleToSS) {
return; return;
} }
#if defined(PROJECT_HAS_RAT_NR) #if defined(PROJECT_HAS_RAT_NR)
......
This diff is collapsed.
...@@ -145,24 +145,24 @@ static void _adbgSysVT__VirtualTimeInfo_Type(acpCtx_t _ctx, const struct Virtual ...@@ -145,24 +145,24 @@ static void _adbgSysVT__VirtualTimeInfo_Type(acpCtx_t _ctx, const struct Virtual
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
} }
void adbgSysVTEnquireTimingUpdLogOut(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* TimingInfoToSS) void adbgSysVTEnquireTimingAckLogIn(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* FromSS)
{ {
adbgPrintLog(_ctx, "@SysVTEnquireTimingUpd Out Args : { "); adbgPrintLog(_ctx, "@SysVTEnquireTimingAck In Args : { ");
adbgPrintLog(_ctx, "TimingInfoToSS := { "); adbgPrintLog(_ctx, "FromSS := { ");
_adbgSysVT__VirtualTimeInfo_Type(_ctx, TimingInfoToSS); _adbgSysVT__VirtualTimeInfo_Type(_ctx, FromSS);
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
adbgPrintFormatLog(_ctx); adbgPrintFormatLog(_ctx);
} }
void adbgSysVTEnquireTimingAckLogIn(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* TimingInfoFromSS) void adbgSysVTEnquireTimingUpdLogOut(acpCtx_t _ctx, const struct VirtualTimeInfo_Type* ToSS)
{ {
adbgPrintLog(_ctx, "@SysVTEnquireTimingAck In Args : { "); adbgPrintLog(_ctx, "@SysVTEnquireTimingUpd Out Args : { ");
adbgPrintLog(_ctx, "TimingInfoFromSS := { "); adbgPrintLog(_ctx, "ToSS := { ");
_adbgSysVT__VirtualTimeInfo_Type(_ctx, TimingInfoFromSS); _adbgSysVT__VirtualTimeInfo_Type(_ctx, ToSS);
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
adbgPrintLog(_ctx, " }"); adbgPrintLog(_ctx, " }");
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#define SIDL_END_C_INTERFACE #define SIDL_END_C_INTERFACE
#endif // __cplusplus #endif // __cplusplus
// Different WA // Different WA.
#include "SidlWA.h" #include "SidlWA.h"
#define SIDL_ASSERT(eXPR) assert(eXPR) #define SIDL_ASSERT(eXPR) assert(eXPR)
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment