2021-01-02 19:32:25 +00:00
|
|
|
/* Copyright (C) 2005-2021 Free Software Foundation, Inc.
|
2005-08-17 06:17:34 +00:00
|
|
|
This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Lesser General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
<https://www.gnu.org/licenses/>. */
|
2005-08-17 06:17:34 +00:00
|
|
|
|
|
|
|
#ifndef _SYS_INOTIFY_H
|
|
|
|
#define _SYS_INOTIFY_H 1
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
2012-02-14 00:13:47 +00:00
|
|
|
/* Get the platform-dependent flags. */
|
|
|
|
#include <bits/inotify.h>
|
2008-07-25 04:51:56 +00:00
|
|
|
|
|
|
|
|
2005-08-17 06:17:34 +00:00
|
|
|
/* Structure describing an inotify event. */
|
|
|
|
struct inotify_event
|
|
|
|
{
|
|
|
|
int wd; /* Watch descriptor. */
|
|
|
|
uint32_t mask; /* Watch mask. */
|
|
|
|
uint32_t cookie; /* Cookie to synchronize two events. */
|
|
|
|
uint32_t len; /* Length (including NULs) of name. */
|
|
|
|
char name __flexarr; /* Name. */
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH. */
|
|
|
|
#define IN_ACCESS 0x00000001 /* File was accessed. */
|
|
|
|
#define IN_MODIFY 0x00000002 /* File was modified. */
|
|
|
|
#define IN_ATTRIB 0x00000004 /* Metadata changed. */
|
|
|
|
#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed. */
|
|
|
|
#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed. */
|
|
|
|
#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close. */
|
|
|
|
#define IN_OPEN 0x00000020 /* File was opened. */
|
|
|
|
#define IN_MOVED_FROM 0x00000040 /* File was moved from X. */
|
|
|
|
#define IN_MOVED_TO 0x00000080 /* File was moved to Y. */
|
|
|
|
#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* Moves. */
|
|
|
|
#define IN_CREATE 0x00000100 /* Subfile was created. */
|
|
|
|
#define IN_DELETE 0x00000200 /* Subfile was deleted. */
|
|
|
|
#define IN_DELETE_SELF 0x00000400 /* Self was deleted. */
|
2005-08-20 01:22:05 +00:00
|
|
|
#define IN_MOVE_SELF 0x00000800 /* Self was moved. */
|
2005-08-17 06:17:34 +00:00
|
|
|
|
|
|
|
/* Events sent by the kernel. */
|
|
|
|
#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted. */
|
|
|
|
#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed. */
|
|
|
|
#define IN_IGNORED 0x00008000 /* File was ignored. */
|
|
|
|
|
2006-05-17 17:52:59 +00:00
|
|
|
/* Helper events. */
|
|
|
|
#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close. */
|
|
|
|
#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* Moves. */
|
|
|
|
|
2005-08-17 06:17:34 +00:00
|
|
|
/* Special flags. */
|
2006-05-17 17:52:59 +00:00
|
|
|
#define IN_ONLYDIR 0x01000000 /* Only watch the path if it is a
|
|
|
|
directory. */
|
|
|
|
#define IN_DONT_FOLLOW 0x02000000 /* Do not follow a sym link. */
|
2010-08-11 19:46:03 +00:00
|
|
|
#define IN_EXCL_UNLINK 0x04000000 /* Exclude events on unlinked
|
|
|
|
objects. */
|
2018-10-25 15:57:23 +00:00
|
|
|
#define IN_MASK_CREATE 0x10000000 /* Only create watches. */
|
2006-05-17 17:52:59 +00:00
|
|
|
#define IN_MASK_ADD 0x20000000 /* Add to the mask of an already
|
|
|
|
existing watch. */
|
2005-08-17 06:17:34 +00:00
|
|
|
#define IN_ISDIR 0x40000000 /* Event occurred against dir. */
|
|
|
|
#define IN_ONESHOT 0x80000000 /* Only send event once. */
|
|
|
|
|
|
|
|
/* All events which a program can wait on. */
|
|
|
|
#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE \
|
|
|
|
| IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM \
|
|
|
|
| IN_MOVED_TO | IN_CREATE | IN_DELETE \
|
2005-08-20 01:22:05 +00:00
|
|
|
| IN_DELETE_SELF | IN_MOVE_SELF)
|
2005-08-17 06:17:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
__BEGIN_DECLS
|
|
|
|
|
|
|
|
/* Create and initialize inotify instance. */
|
|
|
|
extern int inotify_init (void) __THROW;
|
|
|
|
|
2008-07-25 04:51:56 +00:00
|
|
|
/* Create and initialize inotify instance. */
|
|
|
|
extern int inotify_init1 (int __flags) __THROW;
|
|
|
|
|
2005-08-17 06:17:34 +00:00
|
|
|
/* Add watch of object NAME to inotify instance FD. Notify about
|
|
|
|
events specified by MASK. */
|
|
|
|
extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
|
|
|
|
__THROW;
|
|
|
|
|
|
|
|
/* Remove the watch specified by WD from the inotify instance FD. */
|
2009-01-30 20:45:59 +00:00
|
|
|
extern int inotify_rm_watch (int __fd, int __wd) __THROW;
|
2005-08-17 06:17:34 +00:00
|
|
|
|
|
|
|
__END_DECLS
|
|
|
|
|
|
|
|
#endif /* sys/inotify.h */
|