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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [isoinfra/] [v2_0/] [include/] [mqueue.h] - Blame information for rev 591

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

Line No. Rev Author Line
1 27 unneback
#ifndef CYGONCE_ISO_MQUEUE_H
2
#define CYGONCE_ISO_MQUEUE_H
3
/*========================================================================
4
//
5
//      mqueue.h
6
//
7
//      POSIX message queue functions
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):     jlarmour
46
// Contributors:
47
// Date:          2000-05-05
48
// Purpose:       This file provides the macros, types and functions
49
//                for message queues required by POSIX 1003.1.
50
// Description:   The real contents of this file get set from the
51
//                configuration (set by the implementation)
52
// Usage:         #include <mqueue.h>
53
//
54
//####DESCRIPTIONEND####
55
//
56
//======================================================================
57
*/
58
 
59
/* CONFIGURATION */
60
 
61
#include <pkgconf/isoinfra.h>          /* Configuration header */
62
#include <pkgconf/kernel.h>            /* CYGFUN_KERNEL_THREADS_TIMER */
63
 
64
/* INCLUDES */
65
 
66
#ifdef _POSIX_MESSAGE_PASSING
67
# ifdef CYGBLD_ISO_MQUEUE_HEADER
68
#  include CYGBLD_ISO_MQUEUE_HEADER
69
# else
70
 
71
#include <sys/types.h>  /* size_t and ssize_t */
72
 
73
/* TYPES */
74
 
75
struct mq_attr {
76
    long mq_flags;    /* mqueue flags */
77
    long mq_maxmsg;   /* max number of messages */
78
    long mq_msgsize;  /* max message size */
79
    long mq_curmsgs;  /* number of messages currently queued */
80
};
81
 
82
typedef void *mqd_t;
83
 
84
#ifdef __cplusplus
85
extern "C" {
86
#endif
87
 
88
/* FUNCTIONS */
89
 
90
extern mqd_t
91
mq_open( const char * /* name */, int /* oflag */, ... );
92
 
93
extern int
94
mq_close( mqd_t /* mqdes */ );
95
 
96
extern int
97
mq_unlink( const char * /* name */ );
98
 
99
extern int
100
mq_send( mqd_t /* mqdes */, const char * /* msg_ptr */, size_t /* msg_len */,
101
         unsigned int /* msg_prio */ );
102
 
103
extern ssize_t
104
mq_receive( mqd_t /* mqdes */, char * /* msg_ptr */, size_t /* msg_len */,
105
            unsigned int * /* msg_prio */ );
106
 
107
#ifdef _POSIX_REALTIME_SIGNALS
108
 
109
struct sigevent;
110
 
111
extern int
112
mq_notify( mqd_t /* mqdes */, const struct sigevent * /* notification */ );
113
#endif
114
 
115
extern int
116
mq_setattr( mqd_t /* mqdes */, const struct mq_attr * /* mqstat */,
117
            struct mq_attr * /* omqstat */ );
118
 
119
extern int
120
mq_getattr( mqd_t /* mqdes */, struct mq_attr * /* mqstat */ );
121
 
122
# ifdef CYGFUN_KERNEL_THREADS_TIMER
123
/* POSIX 1003.1d Draft functions - FIXME: should be conditionalized */
124
 
125
struct timespec; /* forward declaration */
126
 
127
extern int
128
mq_timedsend( mqd_t /* mqdes */, const char * /* msg_ptr */,
129
              size_t /* msg_len */, unsigned int /* msg_prio */,
130
              const struct timespec * /* abs_timeout */ );
131
 
132
extern ssize_t
133
mq_timedreceive( mqd_t /* mqdes */, char * /* msg_ptr */,
134
                 size_t /* msg_len */, unsigned int * /* msg_prio */,
135
                 const struct timespec * /* abs_timeout */ );
136
# endif
137
 
138
#ifdef __cplusplus
139
}   /* extern "C" */
140
#endif
141
 
142
 
143
# endif  /* ifndef CYGBLD_ISO_MQUEUE_HEADER */
144
#endif   /* ifdef _POSIX_MESSAGE_PASSING */
145
 
146
 
147
#endif /* CYGONCE_ISO_MQUEUE_H multiple inclusion protection */
148
 
149
/* EOF mqueue.h */

powered by: WebSVN 2.1.0

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