diff options
Diffstat (limited to 'winsup/cygwin/include')
-rw-r--r-- | winsup/cygwin/include/cygwin/version.h | 4 | ||||
-rw-r--r-- | winsup/cygwin/include/limits.h | 10 | ||||
-rw-r--r-- | winsup/cygwin/include/mqueue.h | 45 |
3 files changed, 52 insertions, 7 deletions
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h index 8ed2f7dff..fd9cf5aa3 100644 --- a/winsup/cygwin/include/cygwin/version.h +++ b/winsup/cygwin/include/cygwin/version.h @@ -303,12 +303,14 @@ details. */ if_nameindex, if_freenameindex. 163: Export posix_madvise, posix_memalign. 164: Export shm_open, shm_unlink. + 165: Export mq_close, mq_getattr, mq_notify, mq_open, mq_receive, + mq_send, mq_setattr, mq_timedreceive, mq_timedsend, mq_unlink. */ /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ #define CYGWIN_VERSION_API_MAJOR 0 -#define CYGWIN_VERSION_API_MINOR 164 +#define CYGWIN_VERSION_API_MINOR 165 /* There is also a compatibity version number associated with the shared memory regions. It is incremented when incompatible diff --git a/winsup/cygwin/include/limits.h b/winsup/cygwin/include/limits.h index 260e63a53..f7ae460e8 100644 --- a/winsup/cygwin/include/limits.h +++ b/winsup/cygwin/include/limits.h @@ -179,15 +179,13 @@ details. */ #undef LOGIN_NAME_MAX #define LOGIN_NAME_MAX 256 /* equal to UNLEN defined in w32api/lmcons.h */ -/* The maximum number of open message queue descriptors a process may hold. - Not yet implemented. */ +/* The maximum number of open message queue descriptors a process may hold. */ #undef MQ_OPEN_MAX -/* #define MQ_OPEN_MAX >= _POSIX_MQ_OPEN_MAX */ +#define MQ_OPEN_MAX OPEN_MAX -/* The maximum number of message priorities supported by the implementation. - Not yet implemented. */ +/* The maximum number of message priorities supported by the implementation. */ #undef MQ_PRIO_MAX -/* #define MQ_PRIO_MAX >= _POSIX_MQ_PRIO_MAX */ +#define MQ_PRIO_MAX INT_MAX /* # of open files per process. Actually it can be more since Cygwin grows the dtable as necessary. We define a reasonable limit here diff --git a/winsup/cygwin/include/mqueue.h b/winsup/cygwin/include/mqueue.h new file mode 100644 index 000000000..804a80919 --- /dev/null +++ b/winsup/cygwin/include/mqueue.h @@ -0,0 +1,45 @@ +/* mqueue.h: POSIX message queue interface + + Copyright 2007 Red Hat, Inc. + + This file is part of Cygwin. + + This software is a copyrighted work licensed under the terms of the + Cygwin license. Please consult the file "CYGWIN_LICENSE" for + details. */ + +#include <time.h> +#include <sys/types.h> +#include <sys/signal.h> +#include <sys/cdefs.h> + +#ifndef _MQUEUE_H +#define _MQUEUE_H + +__BEGIN_DECLS + +typedef void *mqd_t; + +struct mq_attr { + long mq_flags; /* Message queue flags */ + long mq_maxmsg; /* Max number of messages in queue */ + long mq_msgsize; /* Max message size */ + long mq_curmsgs; /* Current number of messages in queue */ +}; + +int mq_close (mqd_t); +int mq_getattr (mqd_t, struct mq_attr *); +int mq_notify (mqd_t, const struct sigevent *); +mqd_t mq_open (const char *, int, ...); +ssize_t mq_receive (mqd_t, char *, size_t, unsigned int *); +int mq_send (mqd_t, const char *, size_t, unsigned int); +int mq_setattr (mqd_t, const struct mq_attr *, struct mq_attr *); +ssize_t mq_timedreceive (mqd_t, char *, size_t, unsigned int *, + const struct timespec *); +int mq_timedsend (mqd_t, const char *, size_t, unsigned int, + const struct timespec *); +int mq_unlink (const char *name); + +__END_DECLS + +#endif /* _MQUEUE_H */ |