OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [ecos-2.0/] [packages/] [compat/] [posix/] [v2_0/] [include/] [time.h] - Blame information for rev 1254

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1254 phoenix
#ifndef CYGONCE_POSIX_TIME_H
2
#define CYGONCE_POSIX_TIME_H
3
/*=============================================================================
4
//
5
//      time.h
6
//
7
//      POSIX time header
8
//
9
//=============================================================================
10
//####ECOSGPLCOPYRIGHTBEGIN####
11
// -------------------------------------------
12
// This file is part of eCos, the Embedded Configurable Operating System.
13
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
14
//
15
// eCos is free software; you can redistribute it and/or modify it under
16
// the terms of the GNU General Public License as published by the Free
17
// Software Foundation; either version 2 or (at your option) any later version.
18
//
19
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
20
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
21
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22
// for more details.
23
//
24
// You should have received a copy of the GNU General Public License along
25
// with eCos; if not, write to the Free Software Foundation, Inc.,
26
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
27
//
28
// As a special exception, if other files instantiate templates or use macros
29
// or inline functions from this file, or you compile this file and link it
30
// with other works to produce a work based on this file, this file does not
31
// by itself cause the resulting work to be covered by the GNU General Public
32
// License. However the source code for this file must still be made available
33
// in accordance with section (3) of the GNU General Public License.
34
//
35
// This exception does not invalidate any other reasons why a work based on
36
// this file might be covered by the GNU General Public License.
37
//
38
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
39
// at http://sources.redhat.com/ecos/ecos-license/
40
// -------------------------------------------
41
//####ECOSGPLCOPYRIGHTEND####
42
//=============================================================================
43
//#####DESCRIPTIONBEGIN####
44
//
45
// Author(s):     nickg
46
// Contributors:  nickg, jlarmour
47
// Date:          2000-03-17
48
// Purpose:       POSIX time header
49
// Description:   This header contains all the definitions needed to support
50
//                the POSIX timer and timer API under eCos.
51
//
52
// Usage:         Do not include this file directly - instead include <time.h>
53
//
54
//
55
//####DESCRIPTIONEND####
56
//
57
//===========================================================================*/
58
 
59
#include <pkgconf/posix.h>
60
#include <cyg/infra/cyg_type.h>
61
 
62
/*---------------------------------------------------------------------------*/
63
/* Types for timers and clocks */
64
 
65
typedef int clockid_t;
66
 
67
#ifdef CYGPKG_POSIX_TIMERS
68
typedef int timer_t;
69
 
70
/* forward declaration - if the app uses it it will have to include
71
 * signal.h anyway
72
 */
73
struct sigevent;
74
#endif
75
 
76
/*---------------------------------------------------------------------------*/
77
/* Structures */
78
 
79
struct timespec
80
{
81
    time_t      tv_sec;
82
    long        tv_nsec;
83
};
84
 
85
#ifdef CYGPKG_POSIX_TIMERS
86
struct itimerspec
87
{
88
    struct timespec     it_interval;
89
    struct timespec     it_value;
90
};
91
#endif
92
 
93
/*---------------------------------------------------------------------------*/
94
/* Manifest constants */
95
 
96
#define CLOCK_REALTIME          0
97
 
98
#ifdef CYGPKG_POSIX_TIMERS
99
#define TIMER_ABSTIME           1
100
#endif
101
 
102
/*---------------------------------------------------------------------------*/
103
/* Clock functions */
104
 
105
/* Set the clocks current time */
106
__externC int clock_settime( clockid_t clock_id, const struct timespec *tp);
107
 
108
/* Get the clocks current time */
109
__externC int clock_gettime( clockid_t clock_id, struct timespec *tp);
110
 
111
/* Get the clocks resolution */
112
__externC int clock_getres( clockid_t clock_id, struct timespec *tp);
113
 
114
 
115
/*---------------------------------------------------------------------------*/
116
/* Timer functions */
117
 
118
#ifdef CYGPKG_POSIX_TIMERS
119
 
120
/* Create a timer based on the given clock. */
121
__externC int timer_create( clockid_t clock_id,
122
                            struct sigevent *evp,
123
                            timer_t *timer_id);
124
 
125
/* Delete the timer */
126
__externC int timer_delete( timer_t timer_id );
127
 
128
/* Set the expiration time of the timer. */
129
__externC int timer_settime( timer_t timerid, int flags,
130
                             const struct itimerspec *value,
131
                             struct itimerspec *ovalue );
132
 
133
/* Get current timer values */
134
__externC int timer_gettime( timer_t timerid, struct itimerspec *value );
135
 
136
/* Get number of missed triggers */
137
__externC int timer_getoverrun( timer_t timerid );
138
 
139
#endif
140
 
141
/*---------------------------------------------------------------------------*/
142
/* Nanosleep */
143
 
144
/* Sleep for the given time. */
145
__externC int nanosleep( const struct timespec *rqtp,
146
                         struct timespec *rmtp);
147
 
148
 
149
/*---------------------------------------------------------------------------*/
150
#endif /* ifndef CYGONCE_POSIX_TIME_H */
151
/* End of time.h */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.