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