13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* module: SyncML WorkSpace Manager */ 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* file: WSM_SM.h */ 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target system: All */ 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target OS: All */ 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Description */ 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Storage Management for Workspace Manager API <BR> */ 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Encapsulates OS dependent parts of WSM. */ 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright Notice 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc., 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001). 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * All Rights Reserved. 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Implementation of all or part of any Specification may require 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * licenses under third party intellectual property rights, 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * including without limitation, patent rights (such a third party 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * may or may not be a Supporter). The Sponsors of the Specification 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * are not responsible and shall not be held responsible in any 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * manner for identifying or failing to identify any or all such 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * third party intellectual property rights. 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM, 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA, 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO., 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * The above notice and this paragraph must be included on all copies 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * of this document that are made. 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @version @label 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef _WSM_SM_H 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define _WSM_SM_H 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <smldef.h> 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __ANSI_C__ 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* sbuffer list */ 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef struct smWinList_s { 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby char *memName; // name of buffer 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby char *winH; // reference to memory block 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemHandle_t memH; // handle of memory block 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Byte_t locked; // is handle locked? 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemSize_t memSize; // size of memory block 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby struct smWinList_s *next; // next list item 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} smWinList_t; 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef smWinList_t *WsmSmGlobals_t; 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __PALM_OS__ 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <Pilot.h> 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* dynamic buffer array */ 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef struct smPalm_s { 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Handle smPalmH; // reference to only memory block 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemHandle_t smMemH; // handle of only memory block 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Byte_t smLocked; // is handle locked? 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} WsmSmGlobals_t; 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __EPOC_OS__ 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* sbuffer list */ 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef struct smWinList_s { 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby char *memName; // name of buffer 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby char *winH; // reference to memory block 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemHandle_t memH; // handle of memory block 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Byte_t locked; // is handle locked? 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby MemSize_t memSize; // size of memory block 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby struct smWinList_s *next; // next list item 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} smWinList_t; 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef smWinList_t *WsmSmGlobals_t; 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smCreate 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Creates a new memory block with name memName and size memSize. 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: OS does not know memName; memSize > 0 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: memName exists with size memSize; 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * memH refers to new memory block. 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memName 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Name of new memory block 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memSize 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Size of new memory block 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OUT: memH 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to new memory block 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_USAGE, if memName is already known to the OS 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_INVALID_SIZE, if memSize <= 0 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_NOT_ENOUGH_SPACE, if available memory < memSize 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smDestroy 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smCreate (String_t memName, MemSize_t memSize, MemHandle_t *memH); 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smOpen 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Open connection to memory block with name memName. 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: OS does know memName 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: memH refers to memory block memName 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memName 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Name of memory block to open 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OUT: memH 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to opened memory block 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_PARAM, if memName is unknown 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smClose 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smOpen (String_t memName, MemHandle_t *memH); 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smClose 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Close link to memory block. 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: memH is a valid memory block handle; memH is unlocked; 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * no pointers to records are in use 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: memH is not valid anymore 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memH 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to close 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_USAGE, if memH is locked 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smOpen 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smClose (MemHandle_t memH); 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smDestroy 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Remove memory block memName within OS. 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: memName is a valid memory block name; 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * memory block is not in use (i.e. no handles and 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * pointers to this memory block are in use) 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: memName is not a valid memory block name anymore 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memName 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Name of memory block to remove 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_PARAM, if memName is unknown 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_USAGE, if memory block is still locked 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smCreate 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smDestroy (String_t memName); 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smLock 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Map memory block memH to local address space. 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: memH is a valid handle; memory block is not locked 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: pMem points to memory block memH; 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * memory block is locked 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memH 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to memory block 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OUT: pMem 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Pointer to memory block memH mapped in local address space 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_PARAM, if memH is unknown 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_USAGE, if memH was already locked 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_UNSPECIFIC, if lock failed 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smUnlock 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smLock (MemHandle_t memH, MemPtr_t *pMem); 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smUnlock 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Free pointer mapped to memH memory block. 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: memH is a valid handle; memory block is locked 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: memory block is unlocked 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memH 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to memory block 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_PARAM, if memH is unknown 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_USAGE, if memH was already unlocked 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_UNSPECIFIC, if unlock failed 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smLock 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smUnlock (MemHandle_t memH); 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smSetSize 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Set size of memory block memH to newSize. 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: memH is a valid handle; newSize > 0; 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * memory block is unlocked 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: memory block size = newSize 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memH 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to memory block 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: newSize 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * New size of memory block 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_PARAM, if memH is unknown 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_USAGE, if memH is locked 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_INVALID_SIZE, if newSize <= 0 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_NOT_ENOUGH_SPACE, if available memory < newSize 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smGetSize 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smSetSize (MemHandle_t memH, MemSize_t newSize); 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: smGetSize 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Get size of memory block memH. 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PRE-Condition: memH is a valid handle 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * POST-Condition: actSize = memory block size 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: memH 2773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Handle to memory block 2783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OUT: actSize 2803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Actual size of memory block 2813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: SML_ERR_OK, if O.K. 2833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_WRONG_PARAM, if memH is unknown 2843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 2853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * @see smSetSize 2863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 2873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t smGetSize (MemHandle_t memH, MemSize_t *actSize); 2883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 291