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