shmbuf.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef _PARISC_SHMBUF_H
  2. #define _PARISC_SHMBUF_H
  3. /*
  4. * The shmid64_ds structure for parisc architecture.
  5. * Note extra padding because this structure is passed back and forth
  6. * between kernel and user space.
  7. *
  8. * Pad space is left for:
  9. * - 64-bit time_t to solve y2038 problem
  10. * - 2 miscellaneous 32-bit values
  11. */
  12. struct shmid64_ds {
  13. struct ipc64_perm shm_perm; /* operation perms */
  14. #ifndef CONFIG_64BIT
  15. unsigned int __pad1;
  16. #endif
  17. __kernel_time_t shm_atime; /* last attach time */
  18. #ifndef CONFIG_64BIT
  19. unsigned int __pad2;
  20. #endif
  21. __kernel_time_t shm_dtime; /* last detach time */
  22. #ifndef CONFIG_64BIT
  23. unsigned int __pad3;
  24. #endif
  25. __kernel_time_t shm_ctime; /* last change time */
  26. #ifndef CONFIG_64BIT
  27. unsigned int __pad4;
  28. #endif
  29. size_t shm_segsz; /* size of segment (bytes) */
  30. __kernel_pid_t shm_cpid; /* pid of creator */
  31. __kernel_pid_t shm_lpid; /* pid of last operator */
  32. unsigned int shm_nattch; /* no. of current attaches */
  33. unsigned int __unused1;
  34. unsigned int __unused2;
  35. };
  36. #ifdef CONFIG_64BIT
  37. /* The 'unsigned int' (formerly 'unsigned long') data types below will
  38. * ensure that a 32-bit app calling shmctl(*,IPC_INFO,*) will work on
  39. * a wide kernel, but if some of these values are meant to contain pointers
  40. * they may need to be 'long long' instead. -PB XXX FIXME
  41. */
  42. #endif
  43. struct shminfo64 {
  44. unsigned int shmmax;
  45. unsigned int shmmin;
  46. unsigned int shmmni;
  47. unsigned int shmseg;
  48. unsigned int shmall;
  49. unsigned int __unused1;
  50. unsigned int __unused2;
  51. unsigned int __unused3;
  52. unsigned int __unused4;
  53. };
  54. #endif /* _PARISC_SHMBUF_H */