17f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* 27f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 37f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 47f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 57f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * you may not use this file except in compliance with the License. 67f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * You may obtain a copy of the License at 77f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 87f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 97f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * 107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * See the License for the specific language governing permissions and 147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * limitations under the License. 157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- includes ----------------------------------------------------------- */ 187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "b_BasicEm/Functions.h" 207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "b_BasicEm/Context.h" 217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "b_BasicEm/String.h" 227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ auxiliary functions } ---------------------------------------- */ 287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ constructor / destructor } ----------------------------------- */ 367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_init( struct bbs_Context* cpA ) 427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 iL; 447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project for( iL = 0; iL < bbs_CONTEXT_MAX_ERRORS; iL++ ) 457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].errorE = bbs_ERR_OK; 477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].fileE[ 0 ] = 0; 487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].lineE = 0; 497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].textE[ 0 ] = 0; 507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errIndexE = 0; 537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_MemTbl_init( cpA, &cpA->memTblE ); 557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project for( iL = 0; iL < bbs_CONTEXT_MAX_MEM_MANAGERS; iL++ ) 577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_DynMemManager_init( cpA, &cpA->dynMemManagerArrE[ iL ] ); 597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->dynMemManagerArrSizeE = 0; 627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errorHandlerE = NULL; 637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->callbackHandlerE = NULL; 647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->userPtrE = NULL; 657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_exit( struct bbs_Context* cpA ) 707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 iL; 727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project for( iL = 0; iL < bbs_CONTEXT_MAX_ERRORS; iL++ ) 737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].errorE = bbs_ERR_OK; 757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].fileE[ 0 ] = 0; 767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].lineE = 0; 777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ iL ].textE[ 0 ] = 0; 787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errIndexE = 0; 817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_MemTbl_exit( cpA, &cpA->memTblE ); 837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project for( iL = 0; iL < cpA->dynMemManagerArrSizeE; iL++ ) 857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_DynMemManager_freeAll( cpA, &cpA->dynMemManagerArrE[ iL ] ); 877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project for( iL = 0; iL < bbs_CONTEXT_MAX_MEM_MANAGERS; iL++ ) 907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_DynMemManager_exit( cpA, &cpA->dynMemManagerArrE[ iL ] ); 927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->dynMemManagerArrSizeE = 0; 957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errorHandlerE = NULL; 967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->callbackHandlerE = NULL; 977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->userPtrE = NULL; 987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1037f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1047f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ operators } -------------------------------------------------- */ 1057f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1067f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1077f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1087f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1097f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_copy( struct bbs_Context* cpA, const struct bbs_Context* srcPtrA ) 1117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 1127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_ERROR0( "void bbs_Context_copy( struct bbs_Context* cpA, const struct bbs_Context* srcPtrA ):\n" 1137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project "A comtext object cannot be copied" ); 1147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 1157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ query functions } -------------------------------------------- */ 1217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ modify functions } ------------------------------------------- */ 1297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectstruct bbs_Error bbs_Error_create( uint32 errorA, 1357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 lineA, 1367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project const char* fileA, 1377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project const char* textA, 1387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project ... ) 1397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 1407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project struct bbs_Error errorL; 1417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project errorL.errorE = errorA; 1427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project errorL.lineE = lineA; 1437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( fileA != NULL ) 1457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 1467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 lenL = bbs_strlen( fileA ); 1477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 ofsL = ( lenL + 1 > bbs_ERROR_MAX_FILE_CHARS ) ? lenL + 1 - bbs_ERROR_MAX_FILE_CHARS : 0; 1487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_strcpy( errorL.fileE, fileA + ofsL ); 1497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 1507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project else 1517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 1527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project errorL.fileE[ 0 ] = 0; 1537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 1547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( textA != NULL ) 1567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 1577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project va_list argsL; 1587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project va_start( argsL, textA ); 1597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_vsnprintf( errorL.textE, bbs_ERROR_MAX_TEXT_CHARS, textA, argsL ); 1607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project va_end( argsL ); 1617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 1627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project else 1637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 1647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project errorL.textE[ 0 ] = 0; 1657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 1667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return errorL; 1687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 1697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ I/O } -------------------------------------------------------- */ 1757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- \ghd{ exec functions } --------------------------------------------- */ 1837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* */ 1847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 1857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 1877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectflag bbs_Context_pushError( struct bbs_Context* cpA, struct bbs_Error errorA ) 1897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 1907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project flag returnL = FALSE; 1917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( cpA->errIndexE < bbs_CONTEXT_MAX_ERRORS ) 1927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 1937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errStackE[ cpA->errIndexE++ ] = errorA; 1947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project returnL = TRUE; 1957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 1967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 1977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( cpA->errorHandlerE != NULL ) 1987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 1997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errorHandlerE( cpA ); 2007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return returnL; 2037f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2047f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2057f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2067f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2077f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectstruct bbs_Error bbs_Context_popError( struct bbs_Context* cpA ) 2087f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2097f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( cpA->errIndexE > 0 ) 2107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return cpA->errStackE[ --( cpA->errIndexE ) ]; 2127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project else 2147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return cpA->errStackE[ 0 ]; 2167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectstruct bbs_Error bbs_Context_peekError( struct bbs_Context* cpA ) 2227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( cpA->errIndexE > 0 ) 2247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return cpA->errStackE[ cpA->errIndexE - 1 ]; 2267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project else 2287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return cpA->errStackE[ 0 ]; 2307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectflag bbs_Context_error( struct bbs_Context* cpA ) 2367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return cpA->errIndexE > 0; 2387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbbs_errorFPtr bbs_Context_setErrorHandler( struct bbs_Context* cpA, 2437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_errorFPtr errorHandlerA ) 2447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_errorFPtr oldErrorHandlerL = cpA->errorHandlerE; 2467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->errorHandlerE = errorHandlerA; 2477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return oldErrorHandlerL; 2487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_doCallback( struct bbs_Context* cpA ) 2537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( cpA->callbackHandlerE != NULL ) 2557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 errorL = ( *cpA->callbackHandlerE )( cpA ); 2577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( errorL != bbs_ERR_OK ) 2587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_Context_pushError( cpA, bbs_Error_create( errorL, 0, NULL, NULL ) ); 2607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbbs_callbackFPtr bbs_Context_setCallbackHandler( struct bbs_Context* cpA, 2677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_callbackFPtr callbackHandlerA ) 2687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_callbackFPtr oldCallbackHandlerL = cpA->callbackHandlerE; 2707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->callbackHandlerE = callbackHandlerA; 2717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return oldCallbackHandlerL; 2727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 2737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 2757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** adds a static memory segment to memory table of context */ 2777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_addStaticSeg( struct bbs_Context* cpA, 2787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint16* memPtrA, /* pointer to memory */ 2797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 sizeA, /* size of memory segment in 16 bit units */ 2807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project flag sharedA, /* Indicates that this segment is to be shared among multiple objects */ 2817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 idA ) /* ID of segment, id=0: unspecified */ 2827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 2837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project struct bbs_MemSeg memSegL; 2847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_DEF_fNameL( "void bbs_Context_addStaticSeg(....)" ) 2857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project /* checks */ 2887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( sharedA && cpA->memTblE.ssSizeE == bbs_MAX_MEM_SEGS ) 2897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_ERROR1( "%s:\nShared Memory Table is full! Increase bbs_MAX_MEM_SEGS", fNameL ); 2917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return; 2927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( sharedA && cpA->memTblE.esSizeE == bbs_MAX_MEM_SEGS ) 2947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 2957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_ERROR1( "%s:\nExclusive Memory Table is full! Increase bbs_MAX_MEM_SEGS", fNameL ); 2967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return; 2977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 2987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 2997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_MemSeg_init( cpA, &memSegL ); 3017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.memPtrE = memPtrA; 3027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.sizeE = sizeA; 3037f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.allocIndexE = 0; 3047f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.sharedE = sharedA; 3057f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.idE = idA; 3067f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.dynMemManagerPtrE = NULL; 3077f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3087f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( sharedA ) 3097f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.ssArrE[ cpA->memTblE.ssSizeE++ ] = memSegL; 3117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project else 3137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.esArrE[ cpA->memTblE.esSizeE ] = memSegL; 3157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.espArrE[ cpA->memTblE.esSizeE ] = &cpA->memTblE.esArrE[ cpA->memTblE.esSizeE ]; 3167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.esSizeE++; 3177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 3197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 3217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* adds a dynamic memory segment to memory table of context 3237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Upon destruction of the context object any residual will be freed automatically 3247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */ 3257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_addDynamicSeg( struct bbs_Context* cpA, 3267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_mallocFPtr mallocFPtrA, /* function pointer to external mem alloc function (s. comment of type declaration)*/ 3277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_freeFPtr freeFPtrA, /* function pointer to external mem free function */ 3287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project flag sharedA, /* Indicates that this segment is to be shared among multiple objects */ 3297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project uint32 idA ) /* ID of segment, id=0: unspecified */ 3307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 3317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project struct bbs_DynMemManager memManagerL; 3327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project struct bbs_MemSeg memSegL; 3337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_DEF_fNameL( "void bbs_Context_addDynamicSeg(....)" ) 3347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project /* checks */ 3377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( cpA->dynMemManagerArrSizeE == bbs_CONTEXT_MAX_MEM_MANAGERS ) 3387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_ERROR1( "%s:\nMemory Manager Table is full! Increase bbs_CONTEXT_MAX_MEM_MANAGERS", fNameL ); 3407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return; 3417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( sharedA && cpA->memTblE.ssSizeE == bbs_MAX_MEM_SEGS ) 3437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_ERROR1( "%s:\nShared Memory Table is full! Increase bbs_MAX_MEM_SEGS", fNameL ); 3457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return; 3467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( sharedA && cpA->memTblE.esSizeE == bbs_MAX_MEM_SEGS ) 3487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_ERROR1( "%s:\nExclusive Memory Table is full! Increase bbs_MAX_MEM_SEGS", fNameL ); 3507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return; 3517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_DynMemManager_init( cpA, &memManagerL ); 3547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memManagerL.mallocFPtrE = mallocFPtrA; 3557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memManagerL.freeFPtrE = freeFPtrA; 3567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memManagerL.memPtrE = NULL; 3577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->dynMemManagerArrE[ cpA->dynMemManagerArrSizeE++ ] = memManagerL; 3587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_MemSeg_init( cpA, &memSegL ); 3607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.memPtrE = NULL; 3617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.sizeE = 0; 3627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.allocIndexE = 0; 3637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.sharedE = sharedA; 3647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.idE = idA; 3657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project memSegL.dynMemManagerPtrE = &cpA->dynMemManagerArrE[ cpA->dynMemManagerArrSizeE - 1 ]; 3667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project if( sharedA ) 3687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.ssArrE[ cpA->memTblE.ssSizeE++ ] = memSegL; 3707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project else 3727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project { 3737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.esArrE[ cpA->memTblE.esSizeE ] = memSegL; 3747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.espArrE[ cpA->memTblE.esSizeE ] = &cpA->memTblE.esArrE[ cpA->memTblE.esSizeE ]; 3757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project cpA->memTblE.esSizeE++; 3767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project } 3777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 3787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 3807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_Context_exclAllocSize( struct bbs_Context* cpA, uint32 segIndexA ) 3827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 3837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return bbs_MemSeg_allocatedSize( cpA, &cpA->memTblE.esArrE[ segIndexA ] ); 3847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 3857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 3877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectuint32 bbs_Context_shrdAllocSize( struct bbs_Context* cpA, uint32 segIndexA ) 3897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 3907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project return bbs_MemSeg_allocatedSize( cpA, &cpA->memTblE.ssArrE[ segIndexA ] ); 3917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 3927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 3947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 3957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectvoid bbs_Context_quickInit( struct bbs_Context* cpA, 3967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_mallocFPtr mallocFPtrA, /* function pointer to external mem alloc function (s. comment of type declaration)*/ 3977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_freeFPtr freeFPtrA, 3987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_errorFPtr errorHandlerA ) 3997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{ 4007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_Context_init( cpA ); 4017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_Context_addDynamicSeg( cpA, mallocFPtrA, freeFPtrA, FALSE, 0 ); 4027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_Context_addDynamicSeg( cpA, mallocFPtrA, freeFPtrA, TRUE, 0 ); 4037f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project bbs_Context_setErrorHandler( cpA, errorHandlerA ); 4047f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} 4057f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 4067f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ------------------------------------------------------------------------- */ 4077f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 4087f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ========================================================================= */ 4097f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 4107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project 411