/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
************************************************************************
* @file M4OSA_Thread_priv.h
* @ingroup OSAL
* @brief Thread private for Android
* @note
************************************************************************
*/
#ifndef M4OSA_THREAD_PRIV_H
#define M4OSA_THREAD_PRIV_H
#include "M4OSA_Types.h"
/* Context for the thread */
typedef struct M4OSA_ThreadContext {
M4OSA_UInt32 coreID; /* thread context identifiant */
pthread_t threadID; /* thread identifier. */
M4OSA_Char* name; /* thread name */
M4OSA_UInt32 stackSize; /* thread stackSize in bytes */
M4OSA_ThreadDoIt func; /* thread function */
M4OSA_Void* param; /* thread parameter */
/*
M4OSA_Void* userData; / * thread user data * /
*/
M4OSA_ThreadState state; /* thread automaton state */
M4OSA_Context stateMutex; /* mutex for thread state management */
/*
M4OSA_ThreadCallBack startCallBack; / * starting thread call back * /
M4OSA_ThreadCallBack stopCallBack; / * stopping thread call back * /
*/
M4OSA_Context semStartStop; /* semaphore for start and stop do_it */
M4OSA_ThreadPriorityLevel priority; /* thread priority level */
} M4OSA_ThreadContext ;
/** Those define enable/disable option ID*/
#define M4OSA_OPTIONID_THREAD_STARTED M4OSA_TRUE
#define M4OSA_OPTIONID_THREAD_STOPPED M4OSA_TRUE
#define M4OSA_OPTIONID_THREAD_PRIORITY M4OSA_TRUE
#define M4OSA_OPTIONID_THREAD_STACK_SIZE M4OSA_TRUE
#define M4OSA_OPTIONID_THREAD_NAME M4OSA_TRUE
#define M4OSA_OPTIONID_THREAD_USER_DATA M4OSA_TRUE
#endif /*M4OSA_THREAD_PRIV_H*/