* Makefile.in (DLL_OFILES): Add posix_ipc.o.
* cygwin.din (mq_close): Export. (mq_getattr): Export. (mq_notify): Export. (mq_open): Export. (mq_receive): Export. (mq_send): Export. (mq_setattr): Export. (mq_timedreceive): Export. (mq_timedsend): Export. (mq_unlink): Export. * posix_ipc.cc: New file implementing the above functions. Move shm_open and shm_unlink from syscalls.cc here. * sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX, _SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to _POSIX_MESSAGE_PASSING. * include/limits.h (MQ_OPEN_MAX): Define. (MQ_PRIO_MAX): Define. * include/mqueue.h: New file. * include/cygwin/version.h: Bump API minor number.
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
45
winsup/cygwin/include/mqueue.h
Normal file
45
winsup/cygwin/include/mqueue.h
Normal file
@@ -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 */
|
Reference in New Issue
Block a user