194
195 #define find_struct(ptr, type, member) ( \
196 { \
197 const __typeof(((type *)0)->member) *__tmpp = (ptr); \
198 (type *)(void *)((char *)__tmpp - ((size_t)&((type *)0)->member)); \
199 })
200 #else
201 /* type unsafe version */
202 #define find_struct(ptr, type, member) \
203 ((type *)(void *)((char *)(ptr) \
204 - ((size_t)&((type *)0)->member)))
205
206 #endif
207
208 #define list_for_each_entry_safe(pos, n, head, member, type) \
209 for (pos = find_struct((head)->list_next, type, member), \
210 n = find_struct(pos->member.list_next, type, member); \
211 &pos->member != (head); \
212 pos = n, n = find_struct(n->member.list_next, type, member))
213
214 #define HZ drv_usectohz(1000000)
215 /*
216 * time to wait HECI become ready after init
217 */
218 #define HECI_INTEROP_TIMEOUT (HZ * 7)
219
220 /*
221 * watch dog definition
222 */
223 #define HECI_WATCHDOG_DATA_SIZE 16
224 #define HECI_START_WD_DATA_SIZE 20
225 #define HECI_WD_PARAMS_SIZE 4
226 #define HECI_WD_STATE_INDEPENDENCE_MSG_SENT (1 << 0)
227
228 #define HECI_WD_HOST_CLIENT_ID 1
229 #define HECI_IAMTHIF_HOST_CLIENT_ID 2
230
231 struct guid {
232 uint32_t data1;
233 uint16_t data2;
234 uint16_t data3;
|
194
195 #define find_struct(ptr, type, member) ( \
196 { \
197 const __typeof(((type *)0)->member) *__tmpp = (ptr); \
198 (type *)(void *)((char *)__tmpp - ((size_t)&((type *)0)->member)); \
199 })
200 #else
201 /* type unsafe version */
202 #define find_struct(ptr, type, member) \
203 ((type *)(void *)((char *)(ptr) \
204 - ((size_t)&((type *)0)->member)))
205
206 #endif
207
208 #define list_for_each_entry_safe(pos, n, head, member, type) \
209 for (pos = find_struct((head)->list_next, type, member), \
210 n = find_struct(pos->member.list_next, type, member); \
211 &pos->member != (head); \
212 pos = n, n = find_struct(n->member.list_next, type, member))
213
214 #define HZ drv_sectohz(1)
215 /*
216 * time to wait HECI become ready after init
217 */
218 #define HECI_INTEROP_TIMEOUT (HZ * 7)
219
220 /*
221 * watch dog definition
222 */
223 #define HECI_WATCHDOG_DATA_SIZE 16
224 #define HECI_START_WD_DATA_SIZE 20
225 #define HECI_WD_PARAMS_SIZE 4
226 #define HECI_WD_STATE_INDEPENDENCE_MSG_SENT (1 << 0)
227
228 #define HECI_WD_HOST_CLIENT_ID 1
229 #define HECI_IAMTHIF_HOST_CLIENT_ID 2
230
231 struct guid {
232 uint32_t data1;
233 uint16_t data2;
234 uint16_t data3;
|