June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
01: /* atmapi.h - ATM API user space/kernel compatibility */ 02: 03: /* Written 1999,2000 by Werner Almesberger, EPFL ICA */ 04: 05: 06: #ifndef _LINUX_ATMAPI_H 07: #define _LINUX_ATMAPI_H 08: 09: #if defined(__sparc__) || defined(__ia64__) 10: /* such alignment is not required on 32 bit sparcs, but we can't 11: figure that we are on a sparc64 while compiling user-space programs. */ 12: #define __ATM_API_ALIGN __attribute__((aligned(8))) 13: #else 14: #define __ATM_API_ALIGN 15: #endif 16: 17: 18: /* 19: * Opaque type for kernel pointers. Note that _ is never accessed. We need 20: * the struct in order hide the array, so that we can make simple assignments 21: * instead of being forced to use memcpy. It also improves error reporting for 22: * code that still assumes that we're passing unsigned longs. 23: * 24: * Convention: NULL pointers are passed as a field of all zeroes. 25: */ 26: 27: typedef struct { unsigned char _[8]; } __ATM_API_ALIGN atm_kptr_t; 28: 29: #endif 30: