13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* module: List of SyncML Instances */ 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* file: mgrinstancelist.c */ 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target system: all */ 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target OS: all */ 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Description: */ 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* This module handles an element list of type InstanceInfo. Each */ 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* element is identified by the InstanceID. There are functions provided */ 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* to add, find and remove InstanceInfo elements. */ 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* This file is private to the core module. The InstanceInfo list is */ 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* used by the Modules MGR, MGRCmdDispatcher, MGRCmdBuilder */ 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* and MGRInstanceMgr. */ 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright Notice 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc., 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001). 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * All Rights Reserved. 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Implementation of all or part of any Specification may require 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * licenses under third party intellectual property rights, 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * including without limitation, patent rights (such a third party 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * may or may not be a Supporter). The Sponsors of the Specification 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * are not responsible and shall not be held responsible in any 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * manner for identifying or failing to identify any or all such 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * third party intellectual property rights. 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM, 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA, 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO., 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * The above notice and this paragraph must be included on all copies 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * of this document that are made. 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Definitions 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Include Headers */ 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <smlerr.h> 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "libmem.h" 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "liblock.h" 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "mgr.h" 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* Only ONE instance is supported in the Toolkit lite version */ 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef NOWSM /* only need if we are using workspace manager */ 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Used external functions */ 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySyncMLInfoPtr_t mgrGetSyncMLAnchor(void); 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyInstanceInfoPtr_t mgrGetInstanceListAnchor(void); 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid mgrSetInstanceListAnchor(InstanceInfoPtr_t newListAnchor); 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* SyncML internal function prototypes */ 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t addInfo(InstanceInfoPtr_t pInfo); 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyInstanceInfoPtr_t findInfo(InstanceID_t id); 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t removeInfo(InstanceID_t id); 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Private function prototypes */ 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SyncML internal functions 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Adds a new element to the list 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceInfoPtr_t 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * pointer to the structure to be be added to list 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Return value, 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_OK if element was added successfully 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t addInfo(InstanceInfoPtr_t pInfo) 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pInfo!=NULL) 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t _pTmp; 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby LOCKTOOLKIT("addInfo"); 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Remember old beginning of the list */ 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby _pTmp=mgrGetInstanceListAnchor(); 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* insert element immediately after anchor */ 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mgrSetInstanceListAnchor(pInfo); // anchor of list points now to new info element 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pInfo->nextInfo=_pTmp; // Next info element is the prior first one. 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("addInfo"); 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_OK; 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } else { // Invalid InstanceInfo pointer was used (NULL) 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_MGR_INVALID_INSTANCE_INFO; 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Searches an element with the given InstanceID in the list 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the InstanceInfo structure to be retrieved 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: InstanceInfoPtr_t 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Pointer to the InstanceInfo structure with the given ID 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NULL, if no InstanceInfo with the given ID has been found 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyInstanceInfoPtr_t findInfo(InstanceID_t id) 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t _pTmp; // A helper pointer 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* go through the list until end */ 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby LOCKTOOLKIT("findInfo"); 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (_pTmp=mgrGetInstanceListAnchor(); _pTmp!=NULL; _pTmp=_pTmp->nextInfo) 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (_pTmp->id == id) { 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("findInfo"); 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return _pTmp; // STOP, we've found the info, return! 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("findInfo"); 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return NULL; // Info was not found, return NULL 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/** 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * FUNCTION: 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Removes an element with the given InstanceID from the list 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * IN: InstanceID_t 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ID of the InstanceInfo structure to be removed 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * RETURN: Return value, 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SML_ERR_OK if element was removed successfully 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyRet_t removeInfo(InstanceID_t id) 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t _pTmp; // A helper pointer 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby InstanceInfoPtr_t _pRemember; // A helper pointer 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby LOCKTOOLKIT("removeInfo"); 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Remember current anchor */ 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby _pRemember=mgrGetInstanceListAnchor(); 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* special check, if list is empty */ 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (_pRemember==NULL ) { 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("removeInfo"); 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_MGR_INVALID_INSTANCE_INFO; 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* special check, if first element should be removed */ 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (_pRemember->id == id) 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // It's the first element, update anchor! 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mgrSetInstanceListAnchor(_pRemember->nextInfo); 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //freeInfo(_pRemember); // Delete structure, free memory 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("removeInfo"); 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_OK; // return 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* go through the list until end */ 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (_pTmp=_pRemember->nextInfo; _pTmp!=NULL; _pTmp=_pTmp->nextInfo) 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (_pTmp->id == id) // STOP, we've found the info 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby _pRemember->nextInfo=_pTmp->nextInfo; 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //freeInfo(_pTmp); // Delete structure, free memory 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("removeInfo"); 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_OK; // return 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } else { 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby _pRemember=_pTmp; // update helper pointer 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby RELEASETOOLKIT("removeInfo"); 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SML_ERR_MGR_INVALID_INSTANCE_INFO; // Info wasn't found 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif // !defined(NOWSM) 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 234