15d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/* 25d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Copyright (C) 2010 NXP Semiconductors 35d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 45d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Licensed under the Apache License, Version 2.0 (the "License"); 55d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * you may not use this file except in compliance with the License. 65d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * You may obtain a copy of the License at 75d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 85d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * http://www.apache.org/licenses/LICENSE-2.0 95d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Unless required by applicable law or agreed to in writing, software 115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * distributed under the License is distributed on an "AS IS" BASIS, 125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * See the License for the specific language governing permissions and 145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * limitations under the License. 155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */ 165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*! 185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \file phOsalNfc_Common.h 195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Project: NFC FRI / OSAL 215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Workfile:: phOsalNfc_Common.h $ 235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Modtime:: $ 245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Author: frq09147 $ 255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Revision: 1.1 $ 265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */ 285d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 295d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#ifndef PHOSALNFC_COMMON_H 305d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#define PHOSALNFC_COMMON_H 315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <time.h> 325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <unistd.h> 335d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <errno.h> 345d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <pthread.h> 355d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <semaphore.h> 365d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <signal.h> 375d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <sys/time.h> 385d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <sys/sem.h> 395d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 405d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#define MAX_MESSAGE_SIZE 256 415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef enum phOsalNfc_eHandleType 435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phOsalNfc_eHandleTypeInvalid = 0, 455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phOsalNfc_eHandleTypeThread = 1, 465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phOsalNfc_eHandleTypeSemaphore = 2, 475d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 485d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}phOsalNfc_eHandleType_t; 495d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 505d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phOsalNfc_sMsg 515d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 525d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phOsalNfc_Message_t Msg; 535d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t sourceID; /* pthread_t = unsigned long int */ 545d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly struct phOsalNfc_sMsg *nextMsg; 555d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} phOsalNfc_sMsg_t; 565d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 575d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phOsalNfc_sOsalHandle 585d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 595d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phOsalNfc_eHandleType_t HandleType; 605d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pthread_t *pThread; 615d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphOsalNfc_ThreadFunction_t pThreadFunction; 625d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pParams; 635d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 645d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly sem_t *pSemaphore; 655d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly sem_t handleSem; 665d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly int32_t semValue; 675d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t semMax; 685d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 695d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly struct sembuf semBuf; 705d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly int32_t semId; 715d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 725d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phOsalNfc_sMsg_t *pMsg; 735d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly sem_t msgSem; 745d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly struct phOsalNfc_sOsalHandle *nextThread; 755d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} phOsalNfc_sOsalHandle_t; 765d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 775d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 785d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#endif /* PHOSALNFC_COMMON_H */ 79