1855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/* 2855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 3855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * 4855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 5855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * you may not use this file except in compliance with the License. 6855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * You may obtain a copy of the License at 7855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * 8855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 9855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * 10855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 11855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 12855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * See the License for the specific language governing permissions and 14855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * limitations under the License. 15855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi */ 16855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/** 17855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ************************************************************************ 18855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @file M4OSA_Thread_priv.h 19855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @ingroup OSAL 20855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @brief Thread private for Android 21855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @note 22855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ************************************************************************ 23855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi*/ 24855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 25855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#ifndef M4OSA_THREAD_PRIV_H 26855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_THREAD_PRIV_H 27855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 28855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 29855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#include "M4OSA_Types.h" 30855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 31855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 32855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/* Context for the thread */ 33855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargitypedef struct M4OSA_ThreadContext { 34855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt32 coreID; /* thread context identifiant */ 35855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi pthread_t threadID; /* thread identifier. */ 36855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Char* name; /* thread name */ 37855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt32 stackSize; /* thread stackSize in bytes */ 38855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ThreadDoIt func; /* thread function */ 39855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void* param; /* thread parameter */ 40855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/* 41855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void* userData; / * thread user data * / 42855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi*/ 43855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ThreadState state; /* thread automaton state */ 44855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Context stateMutex; /* mutex for thread state management */ 45855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/* 46855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ThreadCallBack startCallBack; / * starting thread call back * / 47855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ThreadCallBack stopCallBack; / * stopping thread call back * / 48855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi*/ 49855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Context semStartStop; /* semaphore for start and stop do_it */ 50855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ThreadPriorityLevel priority; /* thread priority level */ 51855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi} M4OSA_ThreadContext ; 52855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 53855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 54855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/** Those define enable/disable option ID*/ 55855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_OPTIONID_THREAD_STARTED M4OSA_TRUE 56855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_OPTIONID_THREAD_STOPPED M4OSA_TRUE 57855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_OPTIONID_THREAD_PRIORITY M4OSA_TRUE 58855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_OPTIONID_THREAD_STACK_SIZE M4OSA_TRUE 59855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_OPTIONID_THREAD_NAME M4OSA_TRUE 60855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_OPTIONID_THREAD_USER_DATA M4OSA_TRUE 61855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 62855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#endif /*M4OSA_THREAD_PRIV_H*/ 63855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 64