blob: a4fffb28db0bdeea46614b47fa69879637a0ed88 [file] [log] [blame]
Elliott Hughesfd936ae2016-08-12 10:16:34 -07001/*
2 * Copyright (C) 2016 The Android Open Source Project
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 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in
12 * the documentation and/or other materials provided with the
13 * distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
28
Elliott Hughesdd6763a2018-10-04 16:35:13 -070029#pragma once
Elliott Hughesfd936ae2016-08-12 10:16:34 -070030
Elliott Hughesdd6763a2018-10-04 16:35:13 -070031/**
32 * @file bits/seek_constants.h
33 * @brief The `SEEK_` constants.
34 */
35
Elliott Hughes414dd2d2024-10-16 14:48:30 +000036#include <sys/cdefs.h>
37
Elliott Hughesdd6763a2018-10-04 16:35:13 -070038/** Seek to an absolute offset. */
Elliott Hughesfd936ae2016-08-12 10:16:34 -070039#define SEEK_SET 0
Elliott Hughesdd6763a2018-10-04 16:35:13 -070040/** Seek relative to the current offset. */
Elliott Hughesfd936ae2016-08-12 10:16:34 -070041#define SEEK_CUR 1
Elliott Hughesdd6763a2018-10-04 16:35:13 -070042/** Seek relative to the end of the file. */
Elliott Hughesfd936ae2016-08-12 10:16:34 -070043#define SEEK_END 2
Elliott Hughes31c73092019-05-07 10:03:02 -070044
45#if defined(__USE_GNU)
46
47/**
48 * Seek to the first data (non-hole) location in the file
49 * greater than or equal to the given offset.
50 *
Elliott Hughesbbd39aa2024-08-13 20:59:16 +000051 * See [lseek(2)](https://man7.org/linux/man-pages/man2/lseek.2.html).
Elliott Hughes31c73092019-05-07 10:03:02 -070052 */
53#define SEEK_DATA 3
54
55/**
56 * Seek to the first hole (non-data) location in the file
57 * greater than or equal to the given offset.
58 *
Elliott Hughesbbd39aa2024-08-13 20:59:16 +000059 * See [lseek(2)](https://man7.org/linux/man-pages/man2/lseek.2.html).
Elliott Hughes31c73092019-05-07 10:03:02 -070060 */
61#define SEEK_HOLE 4
62
63#endif