14200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor/* 24200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * Copyright (C) 2013 The Android Open Source Project 34200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * All rights reserved. 44200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * 54200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * Redistribution and use in source and binary forms, with or without 64200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * modification, are permitted provided that the following conditions 74200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * are met: 84200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * * Redistributions of source code must retain the above copyright 94200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * notice, this list of conditions and the following disclaimer. 104200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * * Redistributions in binary form must reproduce the above copyright 114200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * notice, this list of conditions and the following disclaimer in 124200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * the documentation and/or other materials provided with the 134200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * distribution. 144200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * 154200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 164200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 174200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 184200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 194200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 204200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 214200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 224200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 234200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 244200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 254200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 264200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor * SUCH DAMAGE. 274200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor */ 284200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor 294200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor#ifndef _SYS_TIMERFD_H_ 304200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor#define _SYS_TIMERFD_H_ 314200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor 32e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes#include <fcntl.h> /* For O_CLOEXEC and O_NONBLOCK. */ 334200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor#include <time.h> 34203e13d97de840e01eded6a267fef9f245cf3a15Elliott Hughes#include <sys/cdefs.h> 354200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor#include <sys/types.h> 364200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor 374200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor__BEGIN_DECLS 384200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor 39e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes#define TFD_TIMER_ABSTIME (1 << 0) 40e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes#define TFD_TIMER_CANCEL_ON_SET (1 << 1) 41e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes 42e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes#define TFD_CLOEXEC O_CLOEXEC 43e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes#define TFD_NONBLOCK O_NONBLOCK 44e96d4bffe5eadd6f70eaefef1d6efcb00f6b23beElliott Hughes 45ff26a16c1de7be696719e9001f0707b7c55b52cfElliott Hughesint timerfd_create(clockid_t __clock, int __flags) __INTRODUCED_IN(19); 46ff26a16c1de7be696719e9001f0707b7c55b52cfElliott Hughesint timerfd_settime(int __fd, int __flags, const struct itimerspec* __new_value, struct itimerspec* __old_value) __INTRODUCED_IN(19); 47ff26a16c1de7be696719e9001f0707b7c55b52cfElliott Hughesint timerfd_gettime(int __fd, struct itimerspec* __current_value) __INTRODUCED_IN(19); 484200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor 494200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor__END_DECLS 504200e6203aaa67c37874ad2b2271bff920297c7fTodd Poynor 51ff26a16c1de7be696719e9001f0707b7c55b52cfElliott Hughes#endif 52