/*
* Copyright (C) 2010 NXP Semiconductors
*
* 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 phOsalNfc_Common.h
*
* Project: NFC FRI / OSAL
*
* $Workfile:: phOsalNfc_Common.h $
* $Modtime:: $
* $Author: frq09147 $
* $Revision: 1.1 $
*
*/
#ifndef PHOSALNFC_COMMON_H
#define PHOSALNFC_COMMON_H
#include <time.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>
#include <semaphore.h>
#include <signal.h>
#include <sys/time.h>
#include <sys/sem.h>
#define MAX_MESSAGE_SIZE 256
typedef enum phOsalNfc_eHandleType
{
phOsalNfc_eHandleTypeInvalid = 0,
phOsalNfc_eHandleTypeThread = 1,
phOsalNfc_eHandleTypeSemaphore = 2,
}phOsalNfc_eHandleType_t;
typedef struct phOsalNfc_sMsg
{
phOsalNfc_Message_t Msg;
uint32_t sourceID; /* pthread_t = unsigned long int */
struct phOsalNfc_sMsg *nextMsg;
} phOsalNfc_sMsg_t;
typedef struct phOsalNfc_sOsalHandle
{
phOsalNfc_eHandleType_t HandleType;
pthread_t *pThread;
pphOsalNfc_ThreadFunction_t pThreadFunction;
void *pParams;
sem_t *pSemaphore;
sem_t handleSem;
int32_t semValue;
uint32_t semMax;
struct sembuf semBuf;
int32_t semId;
phOsalNfc_sMsg_t *pMsg;
sem_t msgSem;
struct phOsalNfc_sOsalHandle *nextThread;
} phOsalNfc_sOsalHandle_t;
#endif /* PHOSALNFC_COMMON_H */