164064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 264064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+** 364064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 464064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |** 564064216a8433360745f69edddce19a606659163The Android Open Source Project**| All rights reserved. |** 664064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 764064216a8433360745f69edddce19a606659163The Android Open Source Project**| Redistribution and use in source and binary forms, with or without |** 864064216a8433360745f69edddce19a606659163The Android Open Source Project**| modification, are permitted provided that the following conditions |** 964064216a8433360745f69edddce19a606659163The Android Open Source Project**| are met: |** 1064064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 1164064216a8433360745f69edddce19a606659163The Android Open Source Project**| * Redistributions of source code must retain the above copyright |** 1264064216a8433360745f69edddce19a606659163The Android Open Source Project**| notice, this list of conditions and the following disclaimer. |** 1364064216a8433360745f69edddce19a606659163The Android Open Source Project**| * Redistributions in binary form must reproduce the above copyright |** 1464064216a8433360745f69edddce19a606659163The Android Open Source Project**| notice, this list of conditions and the following disclaimer in |** 1564064216a8433360745f69edddce19a606659163The Android Open Source Project**| the documentation and/or other materials provided with the |** 1664064216a8433360745f69edddce19a606659163The Android Open Source Project**| distribution. |** 1764064216a8433360745f69edddce19a606659163The Android Open Source Project**| * Neither the name Texas Instruments nor the names of its |** 1864064216a8433360745f69edddce19a606659163The Android Open Source Project**| contributors may be used to endorse or promote products derived |** 1964064216a8433360745f69edddce19a606659163The Android Open Source Project**| from this software without specific prior written permission. |** 2064064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 2164064216a8433360745f69edddce19a606659163The Android Open Source Project**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |** 2264064216a8433360745f69edddce19a606659163The Android Open Source Project**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |** 2364064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |** 2464064216a8433360745f69edddce19a606659163The Android Open Source Project**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |** 2564064216a8433360745f69edddce19a606659163The Android Open Source Project**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |** 2664064216a8433360745f69edddce19a606659163The Android Open Source Project**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |** 2764064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |** 2864064216a8433360745f69edddce19a606659163The Android Open Source Project**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |** 2964064216a8433360745f69edddce19a606659163The Android Open Source Project**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |** 3064064216a8433360745f69edddce19a606659163The Android Open Source Project**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |** 3164064216a8433360745f69edddce19a606659163The Android Open Source Project**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |** 3264064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 3364064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+** 3464064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/ 3564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "GeneralUtilApi.h" 3664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "GeneralUtil.h" 3764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "report.h" 3864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "osApi.h" 3964064216a8433360745f69edddce19a606659163The Android Open Source Project 4064064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************* 4164064216a8433360745f69edddce19a606659163The Android Open Source Project* LIST OBJ * 4264064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************** 4364064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************** 4464064216a8433360745f69edddce19a606659163The Android Open Source Project* 4564064216a8433360745f69edddce19a606659163The Android Open Source Project * The list object mange the allocation and deallocation of generic element. 4664064216a8433360745f69edddce19a606659163The Android Open Source Project * The obj create a list of N generic elements and fined a free entry for the Alloc process. 4764064216a8433360745f69edddce19a606659163The Android Open Source Project * And free the entry for dealloc. 4864064216a8433360745f69edddce19a606659163The Android Open Source Project * 4964064216a8433360745f69edddce19a606659163The Android Open Source Project * 5064064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 5164064216a8433360745f69edddce19a606659163The Android Open Source Project 5264064216a8433360745f69edddce19a606659163The Android Open Source Project 5364064216a8433360745f69edddce19a606659163The Android Open Source Project 5464064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************* 5564064216a8433360745f69edddce19a606659163The Android Open Source Project* List_create * 5664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************** 5764064216a8433360745f69edddce19a606659163The Android Open Source Project* DESCRIPTION: This function initializes the List data module. 5864064216a8433360745f69edddce19a606659163The Android Open Source Project* 5964064216a8433360745f69edddce19a606659163The Android Open Source Project* INPUT: hOs - handle to Os Abstraction Layer 6064064216a8433360745f69edddce19a606659163The Android Open Source Project* MaxNumOfElements - the number of elemnts that will be Managed by the list 6164064216a8433360745f69edddce19a606659163The Android Open Source Project ContainerSize - The size of the basic data type managed by the list 6264064216a8433360745f69edddce19a606659163The Android Open Source Project* OUTPUT: 6364064216a8433360745f69edddce19a606659163The Android Open Source Project* 6464064216a8433360745f69edddce19a606659163The Android Open Source Project* 6564064216a8433360745f69edddce19a606659163The Android Open Source Project* RETURN: Handle to the allocated List data control block 6664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/ 6764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE List_create(TI_HANDLE hOs,int MaxNumOfElements,int ContainerSize) 6864064216a8433360745f69edddce19a606659163The Android Open Source Project{ 6964064216a8433360745f69edddce19a606659163The Android Open Source Project int index; 7064064216a8433360745f69edddce19a606659163The Android Open Source Project List_t *List; 7164064216a8433360745f69edddce19a606659163The Android Open Source Project 7264064216a8433360745f69edddce19a606659163The Android Open Source Project if( hOs == NULL ) 7364064216a8433360745f69edddce19a606659163The Android Open Source Project { 7464064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("FATAL ERROR:List_create(): OS handle Error - Aborting\n")); 7564064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 7664064216a8433360745f69edddce19a606659163The Android Open Source Project } 7764064216a8433360745f69edddce19a606659163The Android Open Source Project 7864064216a8433360745f69edddce19a606659163The Android Open Source Project /* alocate List block */ 7964064216a8433360745f69edddce19a606659163The Android Open Source Project List = (List_t*)os_memoryAlloc(hOs, sizeof(List_t)); 8064064216a8433360745f69edddce19a606659163The Android Open Source Project if(List == NULL) 8164064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 8264064216a8433360745f69edddce19a606659163The Android Open Source Project 8364064216a8433360745f69edddce19a606659163The Android Open Source Project 8464064216a8433360745f69edddce19a606659163The Android Open Source Project /* alocate the List of Elements */ 8564064216a8433360745f69edddce19a606659163The Android Open Source Project List->ElementList =(ListElement_t*)os_memoryAlloc(hOs, (sizeof(ListElement_t)*MaxNumOfElements)); 8664064216a8433360745f69edddce19a606659163The Android Open Source Project if(List->ElementList == NULL) 8764064216a8433360745f69edddce19a606659163The Android Open Source Project { 8864064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(List->hOs, List, sizeof(List_t)); 8964064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 9064064216a8433360745f69edddce19a606659163The Android Open Source Project } 9164064216a8433360745f69edddce19a606659163The Android Open Source Project 9264064216a8433360745f69edddce19a606659163The Android Open Source Project /*Allocate the Data containers*/ 9364064216a8433360745f69edddce19a606659163The Android Open Source Project for(index=0;index<MaxNumOfElements;index++) 9464064216a8433360745f69edddce19a606659163The Android Open Source Project { 9564064216a8433360745f69edddce19a606659163The Android Open Source Project List->ElementList[index].Container = os_memoryAlloc(hOs,ContainerSize); 9664064216a8433360745f69edddce19a606659163The Android Open Source Project if(List->ElementList[index].Container == NULL) 9764064216a8433360745f69edddce19a606659163The Android Open Source Project break; 9864064216a8433360745f69edddce19a606659163The Android Open Source Project List->ElementList[index].Inuse = FALSE; 9964064216a8433360745f69edddce19a606659163The Android Open Source Project } 10064064216a8433360745f69edddce19a606659163The Android Open Source Project if (index != MaxNumOfElements) /*Not all the list element was allocated and*/ 10164064216a8433360745f69edddce19a606659163The Android Open Source Project { /*therefore we free the entire list and rap it up*/ 10264064216a8433360745f69edddce19a606659163The Android Open Source Project index--; 10364064216a8433360745f69edddce19a606659163The Android Open Source Project for(;index>=0;index--) 10464064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(hOs,List->ElementList[index].Container,ContainerSize); 10564064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(List->hOs, List->ElementList, (sizeof(ListElement_t)*MaxNumOfElements)); 10664064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(List->hOs,List,(sizeof(List_t))); 10764064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 10864064216a8433360745f69edddce19a606659163The Android Open Source Project 10964064216a8433360745f69edddce19a606659163The Android Open Source Project } 11064064216a8433360745f69edddce19a606659163The Android Open Source Project 11164064216a8433360745f69edddce19a606659163The Android Open Source Project List->MaxNumOfElements = MaxNumOfElements; 11264064216a8433360745f69edddce19a606659163The Android Open Source Project List->ContainerSize = ContainerSize; 11364064216a8433360745f69edddce19a606659163The Android Open Source Project return((TI_HANDLE)List); 11464064216a8433360745f69edddce19a606659163The Android Open Source Project} 11564064216a8433360745f69edddce19a606659163The Android Open Source Project 11664064216a8433360745f69edddce19a606659163The Android Open Source Project 11764064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 11864064216a8433360745f69edddce19a606659163The Android Open Source Project* List_Destroy * 11964064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 12064064216a8433360745f69edddce19a606659163The Android Open Source Project* DESCRIPTION: This function unload the List data module. 12164064216a8433360745f69edddce19a606659163The Android Open Source Project* 12264064216a8433360745f69edddce19a606659163The Android Open Source Project* INPUTS: hCtrlData - the object 12364064216a8433360745f69edddce19a606659163The Android Open Source Project* 12464064216a8433360745f69edddce19a606659163The Android Open Source Project* OUTPUT: 12564064216a8433360745f69edddce19a606659163The Android Open Source Project* 12664064216a8433360745f69edddce19a606659163The Android Open Source Project* RETURNS: OK - Unload succesfull 12764064216a8433360745f69edddce19a606659163The Android Open Source Project* NOK - Unload unsuccesfull 12864064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 12964064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS List_Destroy(TI_HANDLE hList) 13064064216a8433360745f69edddce19a606659163The Android Open Source Project{ 13164064216a8433360745f69edddce19a606659163The Android Open Source Project List_t* List = (List_t*)hList; 13264064216a8433360745f69edddce19a606659163The Android Open Source Project int index; 13364064216a8433360745f69edddce19a606659163The Android Open Source Project 13464064216a8433360745f69edddce19a606659163The Android Open Source Project if(List!=NULL) 13564064216a8433360745f69edddce19a606659163The Android Open Source Project { 13664064216a8433360745f69edddce19a606659163The Android Open Source Project if(List->ElementList != NULL) 13764064216a8433360745f69edddce19a606659163The Android Open Source Project { 13864064216a8433360745f69edddce19a606659163The Android Open Source Project for(index=0;index<List->MaxNumOfElements;index++) 13964064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(List->hOs,List->ElementList[index].Container,List->ContainerSize); 14064064216a8433360745f69edddce19a606659163The Android Open Source Project 14164064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(List->hOs,List->ElementList,(sizeof(ListElement_t)*List->MaxNumOfElements)); 14264064216a8433360745f69edddce19a606659163The Android Open Source Project } 14364064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(List->hOs, List, sizeof(List_t)); 14464064216a8433360745f69edddce19a606659163The Android Open Source Project } 14564064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 14664064216a8433360745f69edddce19a606659163The Android Open Source Project} 14764064216a8433360745f69edddce19a606659163The Android Open Source Project 14864064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 14964064216a8433360745f69edddce19a606659163The Android Open Source Project* List_AllocElement * 15064064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 15164064216a8433360745f69edddce19a606659163The Android Open Source Project* 15264064216a8433360745f69edddce19a606659163The Android Open Source Project* 15364064216a8433360745f69edddce19a606659163The Android Open Source Project* Fined an empty entry in the list and returns 15464064216a8433360745f69edddce19a606659163The Android Open Source Project* a pointer to a memory that contains an element that not in use. 15564064216a8433360745f69edddce19a606659163The Android Open Source Project* 15664064216a8433360745f69edddce19a606659163The Android Open Source Project* Note in multi Task environment we need to add semaphore to protect the 15764064216a8433360745f69edddce19a606659163The Android Open Source Project* Function. 15864064216a8433360745f69edddce19a606659163The Android Open Source Project* 15964064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 16064064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE List_AllocElement(TI_HANDLE hList) 16164064216a8433360745f69edddce19a606659163The Android Open Source Project{ 16264064216a8433360745f69edddce19a606659163The Android Open Source Project List_t* List = (List_t*)hList; 16364064216a8433360745f69edddce19a606659163The Android Open Source Project int index; 16464064216a8433360745f69edddce19a606659163The Android Open Source Project 16564064216a8433360745f69edddce19a606659163The Android Open Source Project if (List == NULL) 16664064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 16764064216a8433360745f69edddce19a606659163The Android Open Source Project 16864064216a8433360745f69edddce19a606659163The Android Open Source Project for(index=0;index<List->MaxNumOfElements;index++) 16964064216a8433360745f69edddce19a606659163The Android Open Source Project { 17064064216a8433360745f69edddce19a606659163The Android Open Source Project if(!(List->ElementList[index].Inuse)) 17164064216a8433360745f69edddce19a606659163The Android Open Source Project { 17264064216a8433360745f69edddce19a606659163The Android Open Source Project List->ElementList[index].Inuse = TRUE; 17364064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryZero(List->hOs,List->ElementList[index].Container,List->ContainerSize); 17464064216a8433360745f69edddce19a606659163The Android Open Source Project return((TI_HANDLE)List->ElementList[index].Container); 17564064216a8433360745f69edddce19a606659163The Android Open Source Project } 17664064216a8433360745f69edddce19a606659163The Android Open Source Project } 17764064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 17864064216a8433360745f69edddce19a606659163The Android Open Source Project} 17964064216a8433360745f69edddce19a606659163The Android Open Source Project 18064064216a8433360745f69edddce19a606659163The Android Open Source Project 18164064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 18264064216a8433360745f69edddce19a606659163The Android Open Source Project* List_FreeElement * 18364064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 18464064216a8433360745f69edddce19a606659163The Android Open Source Project* 18564064216a8433360745f69edddce19a606659163The Android Open Source Project* Marks the entry that was allocated as free. 18664064216a8433360745f69edddce19a606659163The Android Open Source Project* An alloc process can use this space. 18764064216a8433360745f69edddce19a606659163The Android Open Source Project* 18864064216a8433360745f69edddce19a606659163The Android Open Source Project* 18964064216a8433360745f69edddce19a606659163The Android Open Source Project* 19064064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 19164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS List_FreeElement(TI_HANDLE hList,TI_HANDLE Container) 19264064216a8433360745f69edddce19a606659163The Android Open Source Project{ 19364064216a8433360745f69edddce19a606659163The Android Open Source Project List_t* List = (List_t*)hList; 19464064216a8433360745f69edddce19a606659163The Android Open Source Project int index; 19564064216a8433360745f69edddce19a606659163The Android Open Source Project 19664064216a8433360745f69edddce19a606659163The Android Open Source Project if (List == NULL) 19764064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 19864064216a8433360745f69edddce19a606659163The Android Open Source Project 19964064216a8433360745f69edddce19a606659163The Android Open Source Project for(index=0;index<List->MaxNumOfElements;index++) 20064064216a8433360745f69edddce19a606659163The Android Open Source Project { 20164064216a8433360745f69edddce19a606659163The Android Open Source Project if(List->ElementList[index].Container == Container) 20264064216a8433360745f69edddce19a606659163The Android Open Source Project { 20364064216a8433360745f69edddce19a606659163The Android Open Source Project if(!List->ElementList[index].Inuse) 20464064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; /*double free not legal*/ 20564064216a8433360745f69edddce19a606659163The Android Open Source Project List->ElementList[index].Inuse = FALSE; 20664064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 20764064216a8433360745f69edddce19a606659163The Android Open Source Project } 20864064216a8433360745f69edddce19a606659163The Android Open Source Project } 20964064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 21064064216a8433360745f69edddce19a606659163The Android Open Source Project} 21164064216a8433360745f69edddce19a606659163The Android Open Source Project 21264064216a8433360745f69edddce19a606659163The Android Open Source Project 21364064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 21464064216a8433360745f69edddce19a606659163The Android Open Source Project* List_GetFirst * 21564064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 21664064216a8433360745f69edddce19a606659163The Android Open Source Project* 21764064216a8433360745f69edddce19a606659163The Android Open Source Project* For purposes of searching the element list (going over all the element in the list) 21864064216a8433360745f69edddce19a606659163The Android Open Source Project* Get first is used to reset an index for the search. 21964064216a8433360745f69edddce19a606659163The Android Open Source Project* This function is work combined with GetNext. 22064064216a8433360745f69edddce19a606659163The Android Open Source Project* 22164064216a8433360745f69edddce19a606659163The Android Open Source Project* Note this function can't be used in multi Task environment. 22264064216a8433360745f69edddce19a606659163The Android Open Source Project* 22364064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 22464064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE List_GetFirst(TI_HANDLE hList) 22564064216a8433360745f69edddce19a606659163The Android Open Source Project{ 22664064216a8433360745f69edddce19a606659163The Android Open Source Project List_t* List = (List_t*)hList; 22764064216a8433360745f69edddce19a606659163The Android Open Source Project int index; 22864064216a8433360745f69edddce19a606659163The Android Open Source Project 22964064216a8433360745f69edddce19a606659163The Android Open Source Project if (List == NULL) 23064064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 23164064216a8433360745f69edddce19a606659163The Android Open Source Project 23264064216a8433360745f69edddce19a606659163The Android Open Source Project for(index=0;index<List->MaxNumOfElements;index++) 23364064216a8433360745f69edddce19a606659163The Android Open Source Project { 23464064216a8433360745f69edddce19a606659163The Android Open Source Project if(List->ElementList[index].Inuse) 23564064216a8433360745f69edddce19a606659163The Android Open Source Project { 23664064216a8433360745f69edddce19a606659163The Android Open Source Project List->CurrentIndex = index; 23764064216a8433360745f69edddce19a606659163The Android Open Source Project return (List->ElementList[index].Container); 23864064216a8433360745f69edddce19a606659163The Android Open Source Project } 23964064216a8433360745f69edddce19a606659163The Android Open Source Project } 24064064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 24164064216a8433360745f69edddce19a606659163The Android Open Source Project} 24264064216a8433360745f69edddce19a606659163The Android Open Source Project 24364064216a8433360745f69edddce19a606659163The Android Open Source Project 24464064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 24564064216a8433360745f69edddce19a606659163The Android Open Source Project* List_GetNext * 24664064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 24764064216a8433360745f69edddce19a606659163The Android Open Source Project* 24864064216a8433360745f69edddce19a606659163The Android Open Source Project* This function returns the next element in the list till null 24964064216a8433360745f69edddce19a606659163The Android Open Source Project* that indicate that there no more element or we have reached the end of the list. 25064064216a8433360745f69edddce19a606659163The Android Open Source Project* This function is work combined with GetFirst. 25164064216a8433360745f69edddce19a606659163The Android Open Source Project* 25264064216a8433360745f69edddce19a606659163The Android Open Source Project* Note this function can't be used in multi Task environment. 25364064216a8433360745f69edddce19a606659163The Android Open Source Project* 25464064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 25564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE List_GetNext(TI_HANDLE hList) 25664064216a8433360745f69edddce19a606659163The Android Open Source Project{ 25764064216a8433360745f69edddce19a606659163The Android Open Source Project List_t* List = (List_t*)hList; 25864064216a8433360745f69edddce19a606659163The Android Open Source Project int index; 25964064216a8433360745f69edddce19a606659163The Android Open Source Project 26064064216a8433360745f69edddce19a606659163The Android Open Source Project if (List == NULL) 26164064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 26264064216a8433360745f69edddce19a606659163The Android Open Source Project 26364064216a8433360745f69edddce19a606659163The Android Open Source Project /* the code works fine even if the elment is the last*/ 26464064216a8433360745f69edddce19a606659163The Android Open Source Project for(index=List->CurrentIndex+1;index<List->MaxNumOfElements;index++) 26564064216a8433360745f69edddce19a606659163The Android Open Source Project { 26664064216a8433360745f69edddce19a606659163The Android Open Source Project if(List->ElementList[index].Inuse) 26764064216a8433360745f69edddce19a606659163The Android Open Source Project { 26864064216a8433360745f69edddce19a606659163The Android Open Source Project List->CurrentIndex = index; 26964064216a8433360745f69edddce19a606659163The Android Open Source Project return (List->ElementList[index].Container); 27064064216a8433360745f69edddce19a606659163The Android Open Source Project 27164064216a8433360745f69edddce19a606659163The Android Open Source Project } 27264064216a8433360745f69edddce19a606659163The Android Open Source Project } 27364064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 27464064216a8433360745f69edddce19a606659163The Android Open Source Project} 27564064216a8433360745f69edddce19a606659163The Android Open Source Project 27664064216a8433360745f69edddce19a606659163The Android Open Source Project 27764064216a8433360745f69edddce19a606659163The Android Open Source Project 27864064216a8433360745f69edddce19a606659163The Android Open Source Project 27964064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 28064064216a8433360745f69edddce19a606659163The Android Open Source Project* DISTRIBUTOR MANAGER * 28164064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 28264064216a8433360745f69edddce19a606659163The Android Open Source Project*************************************************************************** 28364064216a8433360745f69edddce19a606659163The Android Open Source Project* 28464064216a8433360745f69edddce19a606659163The Android Open Source Project * PURPOSE:The distributor manger supplies 28564064216a8433360745f69edddce19a606659163The Android Open Source Project * 1. Register mechanism that has a callback function and the condition 28664064216a8433360745f69edddce19a606659163The Android Open Source Project * (bit mask format) that will be used to distinguish if to call this callback. 28764064216a8433360745f69edddce19a606659163The Android Open Source Project * 2. Event occurrence function that go over all the registered function and compare 28864064216a8433360745f69edddce19a606659163The Android Open Source Project * the input mask to the callback mask condition. 28964064216a8433360745f69edddce19a606659163The Android Open Source Project * 29064064216a8433360745f69edddce19a606659163The Android Open Source Project * 29164064216a8433360745f69edddce19a606659163The Android Open Source Project * 29264064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 29364064216a8433360745f69edddce19a606659163The Android Open Source Project 29464064216a8433360745f69edddce19a606659163The Android Open Source Project 29564064216a8433360745f69edddce19a606659163The Android Open Source Project 29664064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 29764064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_Create * 29864064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 29964064216a8433360745f69edddce19a606659163The Android Open Source Project* 30064064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 30164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE DistributorMgr_Create(TI_HANDLE hOs , int MaxNotifReqElment) 30264064216a8433360745f69edddce19a606659163The Android Open Source Project{ 30364064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr; 30464064216a8433360745f69edddce19a606659163The Android Open Source Project 30564064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr = (DistributorMgr_t*)os_memoryAlloc(hOs, sizeof(DistributorMgr_t)); 30664064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 30764064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 30864064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr->hOs = hOs; 30964064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr->DistributionList = (List_t*)List_create(hOs,MaxNotifReqElment,sizeof(NotifReqElment_t)); 31064064216a8433360745f69edddce19a606659163The Android Open Source Project if (DistributorMgr->DistributionList == NULL) 31164064216a8433360745f69edddce19a606659163The Android Open Source Project { 31264064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(hOs, DistributorMgr, sizeof(DistributorMgr_t)); 31364064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 31464064216a8433360745f69edddce19a606659163The Android Open Source Project } 31564064216a8433360745f69edddce19a606659163The Android Open Source Project return (TI_HANDLE)DistributorMgr; 31664064216a8433360745f69edddce19a606659163The Android Open Source Project} 31764064216a8433360745f69edddce19a606659163The Android Open Source Project 31864064216a8433360745f69edddce19a606659163The Android Open Source Project 31964064216a8433360745f69edddce19a606659163The Android Open Source Project 32064064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************/ 32164064216a8433360745f69edddce19a606659163The Android Open Source Project/* DistributorMgr_Destroy */ 32264064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************/ 32364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS DistributorMgr_Destroy(TI_HANDLE hDistributorMgr) 32464064216a8433360745f69edddce19a606659163The Android Open Source Project{ 32564064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr =(DistributorMgr_t*)hDistributorMgr; 32664064216a8433360745f69edddce19a606659163The Android Open Source Project 32764064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 32864064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 32964064216a8433360745f69edddce19a606659163The Android Open Source Project 33064064216a8433360745f69edddce19a606659163The Android Open Source Project List_Destroy(DistributorMgr->DistributionList); 33164064216a8433360745f69edddce19a606659163The Android Open Source Project 33264064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(DistributorMgr->hOs, hDistributorMgr, sizeof(DistributorMgr_t)); 33364064216a8433360745f69edddce19a606659163The Android Open Source Project 33464064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 33564064216a8433360745f69edddce19a606659163The Android Open Source Project 33664064216a8433360745f69edddce19a606659163The Android Open Source Project} 33764064216a8433360745f69edddce19a606659163The Android Open Source Project 33864064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 33964064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_Reg * 34064064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 34164064216a8433360745f69edddce19a606659163The Android Open Source Project* 34264064216a8433360745f69edddce19a606659163The Android Open Source Project* Use by the client to register a callback function 34364064216a8433360745f69edddce19a606659163The Android Open Source Project* with the mask condition that will trigger the call. 34464064216a8433360745f69edddce19a606659163The Android Open Source Project* 34564064216a8433360745f69edddce19a606659163The Android Open Source Project* input 34664064216a8433360745f69edddce19a606659163The Android Open Source Project* UINT16 Mask 34764064216a8433360745f69edddce19a606659163The Android Open Source Project* TI_HANDLE CallBack 34864064216a8433360745f69edddce19a606659163The Android Open Source Project* HANDLE Context 34964064216a8433360745f69edddce19a606659163The Android Open Source Project* UINT32 Cookie 35064064216a8433360745f69edddce19a606659163The Android Open Source Project* 35164064216a8433360745f69edddce19a606659163The Android Open Source Project* 35264064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 35364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE DistributorMgr_Reg(TI_HANDLE hDistributorMgr,UINT16 Mask,TI_HANDLE CallBack, 35464064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE Context,UINT32 Cookie) 35564064216a8433360745f69edddce19a606659163The Android Open Source Project{ 35664064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr = (DistributorMgr_t*)hDistributorMgr; 35764064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment_t *NotifReqElment; 35864064216a8433360745f69edddce19a606659163The Android Open Source Project 35964064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 36064064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 36164064216a8433360745f69edddce19a606659163The Android Open Source Project 36264064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment = (NotifReqElment_t*)List_AllocElement(DistributorMgr->DistributionList); 36364064216a8433360745f69edddce19a606659163The Android Open Source Project if (NotifReqElment == NULL) 36464064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL ; 36564064216a8433360745f69edddce19a606659163The Android Open Source Project 36664064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->CallBack = (GeneralEventCall_t)CallBack; 36764064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Mask = Mask; 36864064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Context = Context; 36964064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Cookie = Cookie; 37064064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->HaltReq = FALSE; 37164064216a8433360745f69edddce19a606659163The Android Open Source Project return (TI_HANDLE)NotifReqElment; 37264064216a8433360745f69edddce19a606659163The Android Open Source Project} 37364064216a8433360745f69edddce19a606659163The Android Open Source Project 37464064216a8433360745f69edddce19a606659163The Android Open Source Project 37564064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 37664064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_ReReg * 37764064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 37864064216a8433360745f69edddce19a606659163The Android Open Source Project* 37964064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 38064064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS DistributorMgr_ReReg(TI_HANDLE hDistributorMgr,TI_HANDLE ReqElmenth ,UINT16 Mask,TI_HANDLE CallBack,TI_HANDLE Context,UINT32 Cookie) 38164064216a8433360745f69edddce19a606659163The Android Open Source Project{ 38264064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr = (DistributorMgr_t*)hDistributorMgr; 38364064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment_t *NotifReqElment = (NotifReqElment_t*)ReqElmenth; 38464064216a8433360745f69edddce19a606659163The Android Open Source Project 38564064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 38664064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 38764064216a8433360745f69edddce19a606659163The Android Open Source Project 38864064216a8433360745f69edddce19a606659163The Android Open Source Project if (NotifReqElment == NULL) 38964064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 39064064216a8433360745f69edddce19a606659163The Android Open Source Project 39164064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->CallBack = (GeneralEventCall_t)CallBack; 39264064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Mask = Mask; 39364064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Context = Context; 39464064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Cookie = Cookie; 39564064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 39664064216a8433360745f69edddce19a606659163The Android Open Source Project} 39764064216a8433360745f69edddce19a606659163The Android Open Source Project 39864064216a8433360745f69edddce19a606659163The Android Open Source Project 39964064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 40064064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_AddToMask * 40164064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 40264064216a8433360745f69edddce19a606659163The Android Open Source Project* 40364064216a8433360745f69edddce19a606659163The Android Open Source Project* Use this function to add mask bit to the bit mask condition that triggers the Callback 40464064216a8433360745f69edddce19a606659163The Android Open Source Project* 40564064216a8433360745f69edddce19a606659163The Android Open Source Project* 40664064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 40764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS DistributorMgr_AddToMask(TI_HANDLE hDistributorMgr,TI_HANDLE ReqElmenth,UINT16 Mask) 40864064216a8433360745f69edddce19a606659163The Android Open Source Project{ 40964064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr = (DistributorMgr_t*)hDistributorMgr; 41064064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment_t *NotifReqElment = (NotifReqElment_t*)ReqElmenth; 41164064216a8433360745f69edddce19a606659163The Android Open Source Project 41264064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 41364064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 41464064216a8433360745f69edddce19a606659163The Android Open Source Project 41564064216a8433360745f69edddce19a606659163The Android Open Source Project if (NotifReqElment == NULL) 41664064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 41764064216a8433360745f69edddce19a606659163The Android Open Source Project 41864064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Mask |= Mask; 41964064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 42064064216a8433360745f69edddce19a606659163The Android Open Source Project} 42164064216a8433360745f69edddce19a606659163The Android Open Source Project 42264064216a8433360745f69edddce19a606659163The Android Open Source Project 42364064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 42464064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_HaltNotif * 42564064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 42664064216a8433360745f69edddce19a606659163The Android Open Source Project* 42764064216a8433360745f69edddce19a606659163The Android Open Source Project* Use this function to add mask bit to the bit mask condition that triggers the Callback 42864064216a8433360745f69edddce19a606659163The Android Open Source Project* 42964064216a8433360745f69edddce19a606659163The Android Open Source Project* 43064064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 43164064216a8433360745f69edddce19a606659163The Android Open Source ProjectVOID DistributorMgr_HaltNotif(TI_HANDLE ReqElmenth) 43264064216a8433360745f69edddce19a606659163The Android Open Source Project{ 43364064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment_t *NotifReqElment = (NotifReqElment_t*)ReqElmenth; 43464064216a8433360745f69edddce19a606659163The Android Open Source Project 43564064216a8433360745f69edddce19a606659163The Android Open Source Project if (NotifReqElment == NULL) 43664064216a8433360745f69edddce19a606659163The Android Open Source Project return; 43764064216a8433360745f69edddce19a606659163The Android Open Source Project 43864064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->HaltReq = TRUE; 43964064216a8433360745f69edddce19a606659163The Android Open Source Project 44064064216a8433360745f69edddce19a606659163The Android Open Source Project} 44164064216a8433360745f69edddce19a606659163The Android Open Source Project 44264064216a8433360745f69edddce19a606659163The Android Open Source Project 44364064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 44464064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_RestartNotif * 44564064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 44664064216a8433360745f69edddce19a606659163The Android Open Source Project* 44764064216a8433360745f69edddce19a606659163The Android Open Source Project* Use this function to add mask bit to the bit mask condition that triggers the Callback 44864064216a8433360745f69edddce19a606659163The Android Open Source Project* 44964064216a8433360745f69edddce19a606659163The Android Open Source Project* 45064064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 45164064216a8433360745f69edddce19a606659163The Android Open Source ProjectVOID DistributorMgr_RestartNotif(TI_HANDLE ReqElmenth) 45264064216a8433360745f69edddce19a606659163The Android Open Source Project{ 45364064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment_t *NotifReqElment = (NotifReqElment_t*)ReqElmenth; 45464064216a8433360745f69edddce19a606659163The Android Open Source Project 45564064216a8433360745f69edddce19a606659163The Android Open Source Project if (NotifReqElment == NULL) 45664064216a8433360745f69edddce19a606659163The Android Open Source Project return; 45764064216a8433360745f69edddce19a606659163The Android Open Source Project 45864064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->HaltReq = FALSE; 45964064216a8433360745f69edddce19a606659163The Android Open Source Project 46064064216a8433360745f69edddce19a606659163The Android Open Source Project} 46164064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 46264064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_UnReg * 46364064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 46464064216a8433360745f69edddce19a606659163The Android Open Source Project* 46564064216a8433360745f69edddce19a606659163The Android Open Source Project* 46664064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 46764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS DistributorMgr_UnReg(TI_HANDLE hDistributorMgr,TI_HANDLE RegEventHandle) 46864064216a8433360745f69edddce19a606659163The Android Open Source Project{ 46964064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr = (DistributorMgr_t*)hDistributorMgr; 47064064216a8433360745f69edddce19a606659163The Android Open Source Project 47164064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 47264064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 47364064216a8433360745f69edddce19a606659163The Android Open Source Project 47464064216a8433360745f69edddce19a606659163The Android Open Source Project return List_FreeElement(DistributorMgr->DistributionList, RegEventHandle); 47564064216a8433360745f69edddce19a606659163The Android Open Source Project} 47664064216a8433360745f69edddce19a606659163The Android Open Source Project 47764064216a8433360745f69edddce19a606659163The Android Open Source Project 47864064216a8433360745f69edddce19a606659163The Android Open Source Project/*************************************************************************** 47964064216a8433360745f69edddce19a606659163The Android Open Source Project* DistributorMgr_EventCall * 48064064216a8433360745f69edddce19a606659163The Android Open Source Project**************************************************************************** 48164064216a8433360745f69edddce19a606659163The Android Open Source Project* 48264064216a8433360745f69edddce19a606659163The Android Open Source Project* When the client needs to invoke the callback calls function that corresponds 48364064216a8433360745f69edddce19a606659163The Android Open Source Project* to a specific event mask it will call this function with the desired mask. 48464064216a8433360745f69edddce19a606659163The Android Open Source Project* And event count that can be used to aggregate the events. 48564064216a8433360745f69edddce19a606659163The Android Open Source Project* that way calling this function not for every event 48664064216a8433360745f69edddce19a606659163The Android Open Source Project* 48764064216a8433360745f69edddce19a606659163The Android Open Source Project***************************************************************************/ 48864064216a8433360745f69edddce19a606659163The Android Open Source ProjectVOID DistributorMgr_EventCall(TI_HANDLE hDistributorMgr,UINT16 Mask,int EventCount) 48964064216a8433360745f69edddce19a606659163The Android Open Source Project{ 49064064216a8433360745f69edddce19a606659163The Android Open Source Project DistributorMgr_t *DistributorMgr = (DistributorMgr_t*)hDistributorMgr; 49164064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment_t *NotifReqElment; 49264064216a8433360745f69edddce19a606659163The Android Open Source Project 49364064216a8433360745f69edddce19a606659163The Android Open Source Project if(DistributorMgr == NULL) 49464064216a8433360745f69edddce19a606659163The Android Open Source Project return; 49564064216a8433360745f69edddce19a606659163The Android Open Source Project 49664064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment = (NotifReqElment_t*)List_GetFirst(DistributorMgr->DistributionList); 49764064216a8433360745f69edddce19a606659163The Android Open Source Project 49864064216a8433360745f69edddce19a606659163The Android Open Source Project while(NotifReqElment) 49964064216a8433360745f69edddce19a606659163The Android Open Source Project { 50064064216a8433360745f69edddce19a606659163The Android Open Source Project if((NotifReqElment->Mask & Mask) && !(NotifReqElment->HaltReq)) 50164064216a8433360745f69edddce19a606659163The Android Open Source Project { 50264064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->CallBack(NotifReqElment->Context,EventCount,Mask, 50364064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment->Cookie); 50464064216a8433360745f69edddce19a606659163The Android Open Source Project } 50564064216a8433360745f69edddce19a606659163The Android Open Source Project NotifReqElment = (NotifReqElment_t*)List_GetNext(DistributorMgr->DistributionList); 50664064216a8433360745f69edddce19a606659163The Android Open Source Project } 50764064216a8433360745f69edddce19a606659163The Android Open Source Project} 50864064216a8433360745f69edddce19a606659163The Android Open Source Project 50964064216a8433360745f69edddce19a606659163The Android Open Source Project 51064064216a8433360745f69edddce19a606659163The Android Open Source Project 51164064216a8433360745f69edddce19a606659163The Android Open Source Project/*******************************************************/ 512