| /* --COPYRIGHT--,ESD |
| * Copyright (c) 2008-2019 Texas Instruments Incorporated |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v1.0 and Eclipse Distribution License |
| * v. 1.0 which accompanies this distribution. The Eclipse Public License is |
| * available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse |
| * Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * Texas Instruments - initial implementation |
| * --/COPYRIGHT--*/ |
| /* |
| * ======== Core-params.c ======== |
| */ |
| |
| #include <string.h> |
| |
| #include <xdc/runtime/IInstance.h> |
| #include <xdc/runtime/Types.h> |
| |
| #include "package/internal/Core.xdc.h" |
| |
| /* |
| * ======== Core_assignParams ======== |
| */ |
| /* REQ_TAG(SYSBIOS-876) */ |
| Void Core_assignParams(Ptr dstPrms, CPtr srcPrms, SizeT mpsz, SizeT ipsz) |
| { |
| Types_PrmsHdr *dHdr; |
| const Types_PrmsHdr *sHdr; |
| IInstance_Params *dIPrms; |
| IInstance_Params *sIPrms; |
| SizeT sz, sz2, isz2; |
| |
| sHdr = (const Types_PrmsHdr *)srcPrms; |
| sIPrms = (IInstance_Params *)sHdr->instPrms; |
| |
| sz = mpsz - ipsz; /* size of mod params beyond interface */ |
| isz2 = sIPrms->__size; |
| sz2 = sHdr->size - isz2; |
| |
| (void)memcpy(dstPrms, srcPrms, sz2 < sz ? sz2 : sz); |
| dHdr = (Types_PrmsHdr *)dstPrms; |
| dHdr->size = mpsz; |
| dHdr->self = dstPrms; /* mark dstParams as initialized */ |
| dIPrms = (IInstance_Params *)((Char *)dstPrms + sz); |
| dHdr->instPrms = (Char *)dstPrms + sz; |
| |
| (void)memcpy(dIPrms, sIPrms, isz2 < ipsz ? isz2 : ipsz); |
| dIPrms->__size = ipsz; |
| } |