1/*-
2 * Copyright (c) 2009-2022 Apple Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. Neither the name of Apple Inc. ("Apple") nor the names of
14 * its contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR
21 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
25 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE.
28 *
29 * $P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_fcntl.h#2 $
30 */
31
32#ifndef _BSM_AUDIT_FCNTL_H_
33#define _BSM_AUDIT_FCNTL_H_
34
35/*
36 * Shared and Solaris-specific: (0-99).
37 */
38#define BSM_F_DUPFD 0
39#define BSM_F_GETFD 1
40#define BSM_F_SETFD 2
41#define BSM_F_GETFL 3
42#define BSM_F_SETFL 4
43#define BSM_F_O_GETLK 5 /* Solaris-specific. */
44#define BSM_F_SETLK 6
45#define BSM_F_SETLKW 7
46#define BSM_F_CHKFL 8 /* Solaris-specific. */
47#define BSM_F_DUP2FD 9 /* FreeBSD/Solaris-specific. */
48#define BSM_F_ALLOCSP 10 /* Solaris-specific. */
49#define BSM_F_FREESP 11 /* Solaris-specific. */
50
51#define BSM_F_ISSTREAM 13 /* Solaris-specific. */
52#define BSM_F_GETLK 14
53#define BSM_F_PRIV 15 /* Solaris-specific. */
54#define BSM_F_NPRIV 16 /* Solaris-specific. */
55#define BSM_F_QUOTACTL 17 /* Solaris-specific. */
56#define BSM_F_BLOCKS 18 /* Solaris-specific. */
57#define BSM_F_BLKSIZE 19 /* Solaris-specific. */
58
59#define BSM_F_GETOWN 23
60#define BSM_F_SETOWN 24
61#define BSM_F_REVOKE 25 /* Solaris-specific. */
62#define BSM_F_HASREMOTELOCKS 26 /* Solaris-specific. */
63#define BSM_F_FREESP64 27 /* Solaris-specific. */
64#define BSM_F_ALLOCSP64 28 /* Solaris-specific. */
65
66#define BSM_F_GETLK64 33 /* Solaris-specific. */
67#define BSM_F_SETLK64 34 /* Solaris-specific. */
68#define BSM_F_SETLKW64 35 /* Solaris-specific. */
69
70#define BSM_F_SHARE 40 /* Solaris-specific. */
71#define BSM_F_UNSHARE 41 /* Solaris-specific. */
72#define BSM_F_SETLK_NBMAND 42 /* Solaris-specific. */
73#define BSM_F_SHARE_NBMAND 43 /* Solaris-specific. */
74#define BSM_F_SETLK64_NBMAND 44 /* Solaris-specific. */
75#define BSM_F_GETXFL 45 /* Solaris-specific. */
76#define BSM_F_BADFD 46 /* Solaris-specific. */
77
78/*
79 * FreeBSD-specific (100-199).
80 */
81#define BSM_F_OGETLK 107 /* FreeBSD-specific. */
82#define BSM_F_OSETLK 108 /* FreeBSD-specific. */
83#define BSM_F_OSETLKW 109 /* FreeBSD-specific. */
84
85#define BSM_F_SETLK_REMOTE 114 /* FreeBSD-specific. */
86
87/*
88 * Linux-specific (200-299).
89 */
90#define BSM_F_SETSIG 210 /* Linux-specific. */
91#define BSM_F_GETSIG 211 /* Linux-specific. */
92
93/*
94 * Darwin-specific (300-399).
95 */
96#define BSM_F_CHKCLEAN 341 /* Darwin-specific. */
97#define BSM_F_PREALLOCATE 342 /* Darwin-specific. */
98#define BSM_F_SETSIZE 343 /* Darwin-specific. */
99#define BSM_F_RDADVISE 344 /* Darwin-specific. */
100#define BSM_F_RDAHEAD 345 /* Darwin-specific. */
101/*
102 * 346, 347 are now unused (was BSM_F_{READ,WRITE}BOOTSTRAP)
103 */
104#define BSM_F_NOCACHE 348 /* Darwin-specific. */
105#define BSM_F_LOG2PHYS 349 /* Darwin-specific. */
106#define BSM_F_GETPATH 350 /* Darwin-specific. */
107#define BSM_F_FULLFSYNC 351 /* Darwin-specific. */
108#define BSM_F_PATHPKG_CHECK 352 /* Darwin-specific. */
109#define BSM_F_FREEZE_FS 353 /* Darwin-specific. */
110#define BSM_F_THAW_FS 354 /* Darwin-specific. */
111#define BSM_F_GLOBAL_NOCACHE 355 /* Darwin-specific. */
112#define BSM_F_OPENFROM 356 /* Darwin-specific. */
113#define BSM_F_UNLINKFROM 357 /* Darwin-specific. */
114#define BSM_F_CHECK_OPENEVT 358 /* Darwin-specific. */
115#define BSM_F_ADDSIGS 359 /* Darwin-specific. */
116#define BSM_F_MARKDEPENDENCY 360 /* Darwin-specific. */
117#define BSM_F_BARRIERFSYNC 361 /* Darwin-specific. */
118#define BSM_F_PUNCHHOLE 362 /* Darwin-specific. */
119#define BSM_F_TRIM_ACTIVE_FILE 363 /* Darwin-specific. */
120#define BSM_F_SPECULATIVE_READ 364 /* Darwin-specific. */
121#define BSM_F_ATTRIBUTION_TAG 365 /* Darwin-specific */
122
123/*
124 * Darwin file system specific (400-499).
125 */
126#define BSM_F_FS_SPECIFIC_0 400 /* Darwin-fs-specific. */
127#define BSM_F_FS_SPECIFIC_1 401 /* Darwin-fs-specific. */
128#define BSM_F_FS_SPECIFIC_2 402 /* Darwin-fs-specific. */
129#define BSM_F_FS_SPECIFIC_3 403 /* Darwin-fs-specific. */
130#define BSM_F_FS_SPECIFIC_4 404 /* Darwin-fs-specific. */
131#define BSM_F_FS_SPECIFIC_5 405 /* Darwin-fs-specific. */
132#define BSM_F_FS_SPECIFIC_6 406 /* Darwin-fs-specific. */
133#define BSM_F_FS_SPECIFIC_7 407 /* Darwin-fs-specific. */
134#define BSM_F_FS_SPECIFIC_8 408 /* Darwin-fs-specific. */
135#define BSM_F_FS_SPECIFIC_9 409 /* Darwin-fs-specific. */
136#define BSM_F_FS_SPECIFIC_10 410 /* Darwin-fs-specific. */
137#define BSM_F_FS_SPECIFIC_11 411 /* Darwin-fs-specific. */
138#define BSM_F_FS_SPECIFIC_12 412 /* Darwin-fs-specific. */
139#define BSM_F_FS_SPECIFIC_13 413 /* Darwin-fs-specific. */
140#define BSM_F_FS_SPECIFIC_14 414 /* Darwin-fs-specific. */
141#define BSM_F_FS_SPECIFIC_15 415 /* Darwin-fs-specific. */
142
143
144#define BSM_F_UNKNOWN 0xFFFF
145
146#endif /* !_BSM_AUDIT_FCNTL_H_ */
147