merge with master
[adaptation/devices/nfc-plugin-65nxp.git] / Linux_x86 / phOsalNfc_Common.h
1 /*\r
2  * Copyright (C) 2010 NXP Semiconductors\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *      http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 /*!\r
18  * \file  phOsalNfc_Common.h\r
19  *\r
20  * Project: NFC FRI / OSAL\r
21  *\r
22  * $Workfile:: phOsalNfc_Common.h                $ \r
23  * $Modtime::                                    $ \r
24  * $Author: frq09147 $\r
25  * $Revision: 1.1 $\r
26  *\r
27  */\r
28 \r
29 #ifndef PHOSALNFC_COMMON_H\r
30 #define PHOSALNFC_COMMON_H\r
31 #include <time.h>\r
32 #include <unistd.h>\r
33 #include <errno.h>\r
34 #include <pthread.h>\r
35 #include <semaphore.h> \r
36 #include <signal.h> \r
37 #include <sys/time.h>\r
38 #include <sys/sem.h>\r
39 \r
40 #define MAX_MESSAGE_SIZE 256\r
41 \r
42 typedef enum phOsalNfc_eHandleType\r
43 {\r
44      phOsalNfc_eHandleTypeInvalid   = 0,\r
45      phOsalNfc_eHandleTypeThread    = 1,\r
46      phOsalNfc_eHandleTypeSemaphore = 2,\r
47 \r
48 }phOsalNfc_eHandleType_t;\r
49 \r
50 typedef struct phOsalNfc_sMsg\r
51 {\r
52      phOsalNfc_Message_t Msg;\r
53      uint32_t sourceID; /* pthread_t = unsigned long int */\r
54      struct phOsalNfc_sMsg *nextMsg;\r
55 } phOsalNfc_sMsg_t;\r
56 \r
57 typedef struct phOsalNfc_sOsalHandle\r
58 {\r
59      phOsalNfc_eHandleType_t       HandleType; \r
60      pthread_t                    *pThread;\r
61      pphOsalNfc_ThreadFunction_t   pThreadFunction;\r
62      void                         *pParams;\r
63      \r
64      sem_t                        *pSemaphore;\r
65      sem_t                         handleSem;\r
66      int32_t                       semValue; \r
67      uint32_t                      semMax; \r
68      \r
69      struct sembuf                 semBuf;\r
70      int32_t                       semId;\r
71             \r
72      phOsalNfc_sMsg_t             *pMsg;\r
73      sem_t                         msgSem;\r
74      struct phOsalNfc_sOsalHandle *nextThread;\r
75 } phOsalNfc_sOsalHandle_t;\r
76 \r
77 \r
78 #endif /* PHOSALNFC_COMMON_H */\r