151705ff7SMarcel Moolenaar /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 37f2d13d6SPedro F. Giffuni * 451705ff7SMarcel Moolenaar * Copyright (c) 2000 Marcel Moolenaar 551705ff7SMarcel Moolenaar * All rights reserved. 651705ff7SMarcel Moolenaar * 751705ff7SMarcel Moolenaar * Redistribution and use in source and binary forms, with or without 851705ff7SMarcel Moolenaar * modification, are permitted provided that the following conditions 951705ff7SMarcel Moolenaar * are met: 1051705ff7SMarcel Moolenaar * 1. Redistributions of source code must retain the above copyright 11b1ed95fdSEd Maste * notice, this list of conditions and the following disclaimer. 1251705ff7SMarcel Moolenaar * 2. Redistributions in binary form must reproduce the above copyright 1351705ff7SMarcel Moolenaar * notice, this list of conditions and the following disclaimer in the 1451705ff7SMarcel Moolenaar * documentation and/or other materials provided with the distribution. 1551705ff7SMarcel Moolenaar * 16b1ed95fdSEd Maste * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17b1ed95fdSEd Maste * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18b1ed95fdSEd Maste * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19b1ed95fdSEd Maste * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20b1ed95fdSEd Maste * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21b1ed95fdSEd Maste * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22b1ed95fdSEd Maste * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23b1ed95fdSEd Maste * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24b1ed95fdSEd Maste * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25b1ed95fdSEd Maste * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26b1ed95fdSEd Maste * SUCH DAMAGE. 2751705ff7SMarcel Moolenaar */ 2851705ff7SMarcel Moolenaar 2951705ff7SMarcel Moolenaar #ifndef _LINUX_IPC_H_ 3051705ff7SMarcel Moolenaar #define _LINUX_IPC_H_ 3151705ff7SMarcel Moolenaar 323ad9c842SMaxim Sobolev /* 33d825ce0aSJohn Baldwin * SystemV IPC defines 34d825ce0aSJohn Baldwin */ 35d825ce0aSJohn Baldwin #define LINUX_SEMOP 1 36d825ce0aSJohn Baldwin #define LINUX_SEMGET 2 37d825ce0aSJohn Baldwin #define LINUX_SEMCTL 3 383245a2ecSDmitry Chagin #define LINUX_SEMTIMEDOP 4 39d825ce0aSJohn Baldwin #define LINUX_MSGSND 11 40d825ce0aSJohn Baldwin #define LINUX_MSGRCV 12 41d825ce0aSJohn Baldwin #define LINUX_MSGGET 13 42d825ce0aSJohn Baldwin #define LINUX_MSGCTL 14 43d825ce0aSJohn Baldwin #define LINUX_SHMAT 21 44d825ce0aSJohn Baldwin #define LINUX_SHMDT 22 45d825ce0aSJohn Baldwin #define LINUX_SHMGET 23 46d825ce0aSJohn Baldwin #define LINUX_SHMCTL 24 47d825ce0aSJohn Baldwin 48d825ce0aSJohn Baldwin #define LINUX_IPC_RMID 0 49d825ce0aSJohn Baldwin #define LINUX_IPC_SET 1 50d825ce0aSJohn Baldwin #define LINUX_IPC_STAT 2 51d825ce0aSJohn Baldwin #define LINUX_IPC_INFO 3 52d825ce0aSJohn Baldwin 53d825ce0aSJohn Baldwin #define LINUX_MSG_INFO 12 54d825ce0aSJohn Baldwin 55d825ce0aSJohn Baldwin #define LINUX_SHM_LOCK 11 56d825ce0aSJohn Baldwin #define LINUX_SHM_UNLOCK 12 57d825ce0aSJohn Baldwin #define LINUX_SHM_STAT 13 58d825ce0aSJohn Baldwin #define LINUX_SHM_INFO 14 59d825ce0aSJohn Baldwin 60d825ce0aSJohn Baldwin #define LINUX_SHM_RDONLY 0x1000 61d825ce0aSJohn Baldwin #define LINUX_SHM_RND 0x2000 62d825ce0aSJohn Baldwin #define LINUX_SHM_REMAP 0x4000 63d825ce0aSJohn Baldwin 64d825ce0aSJohn Baldwin /* semctl commands */ 65d825ce0aSJohn Baldwin #define LINUX_GETPID 11 66d825ce0aSJohn Baldwin #define LINUX_GETVAL 12 67d825ce0aSJohn Baldwin #define LINUX_GETALL 13 68d825ce0aSJohn Baldwin #define LINUX_GETNCNT 14 69d825ce0aSJohn Baldwin #define LINUX_GETZCNT 15 70d825ce0aSJohn Baldwin #define LINUX_SETVAL 16 71d825ce0aSJohn Baldwin #define LINUX_SETALL 17 72d825ce0aSJohn Baldwin #define LINUX_SEM_STAT 18 73d825ce0aSJohn Baldwin #define LINUX_SEM_INFO 19 74d825ce0aSJohn Baldwin 75d825ce0aSJohn Baldwin /* 763ad9c842SMaxim Sobolev * Version flags for semctl, msgctl, and shmctl commands 773ad9c842SMaxim Sobolev * These are passed as bitflags or-ed with the actual command 783ad9c842SMaxim Sobolev */ 793ad9c842SMaxim Sobolev #define LINUX_IPC_OLD 0 /* Old version (no 32-bit UID support on many 803ad9c842SMaxim Sobolev architectures) */ 813ad9c842SMaxim Sobolev #define LINUX_IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger 823ad9c842SMaxim Sobolev message sizes, etc. */ 833ad9c842SMaxim Sobolev 843245a2ecSDmitry Chagin #if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32)) 853245a2ecSDmitry Chagin struct linux_semtimedop_args 863245a2ecSDmitry Chagin { 873245a2ecSDmitry Chagin l_int semid; 883245a2ecSDmitry Chagin struct sembuf *tsops; 893245a2ecSDmitry Chagin l_uint nsops; 903245a2ecSDmitry Chagin struct l_timespec *timeout; 913245a2ecSDmitry Chagin }; 923245a2ecSDmitry Chagin 933245a2ecSDmitry Chagin int linux_semtimedop(struct thread *, struct linux_semtimedop_args *); 943245a2ecSDmitry Chagin #endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */ 953245a2ecSDmitry Chagin 9651705ff7SMarcel Moolenaar #endif /* _LINUX_IPC_H_ */ 97