1defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner/*
2defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * Copyright (C) 2008 The Android Open Source Project
3defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * All rights reserved.
4defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *
5defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * Redistribution and use in source and binary forms, with or without
6defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * modification, are permitted provided that the following conditions
7defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * are met:
8defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *  * Redistributions of source code must retain the above copyright
9defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *    notice, this list of conditions and the following disclaimer.
10defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *  * Redistributions in binary form must reproduce the above copyright
11defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *    notice, this list of conditions and the following disclaimer in
12defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *    the documentation and/or other materials provided with the
13defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *    distribution.
14defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner *
15defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner * SUCH DAMAGE.
27defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner */
28cac7b9d6ec1a09814bc028e2f768db732f018891Elliott Hughes
29defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner#ifndef _SYS_EVENTFD_H
30defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner#define _SYS_EVENTFD_H
31defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
32defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner#include <sys/cdefs.h>
33defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner#include <fcntl.h>
34defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
35defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner__BEGIN_DECLS
36defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
379b84824dfd597d8137137fa33295faa26cc70ae0Kito Cheng#define EFD_CLOEXEC O_CLOEXEC
389b84824dfd597d8137137fa33295faa26cc70ae0Kito Cheng#define EFD_NONBLOCK O_NONBLOCK
39defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
40defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner/* type of event counter */
419b84824dfd597d8137137fa33295faa26cc70ae0Kito Chengtypedef uint64_t eventfd_t;
42defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
439b84824dfd597d8137137fa33295faa26cc70ae0Kito Chengextern int eventfd(unsigned int initial_value, int flags);
44defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
459b84824dfd597d8137137fa33295faa26cc70ae0Kito Chengextern int eventfd_read(int fd, eventfd_t* value);
469b84824dfd597d8137137fa33295faa26cc70ae0Kito Chengextern int eventfd_write(int fd, eventfd_t value);
47defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
48defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner__END_DECLS
49defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner
50defd162212de3789d2268a1f3339c2a6097fa825David 'Digit' Turner#endif /* _SYS_EVENTFD_H */
51