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