[RFC][PATCH] 0/6 POSIX message queues

From: Krzysztof Benedyczak
Date: Thu Feb 19 2004 - 09:27:04 EST


Hello,

Following parts contain splitted into 6 subpatches implementation of POSIX
message queues. It was reviewed and improved by Manfred Spraul (much more
in fact then the small note in the mqueue.c header says). The library is
available at
http://www.mat.uni.torun.pl/~wrona/posix_ipc.

Following text gives overview what particular patches do (slighty
edited version of
http://colorfullife.com/~manfred/Linux-kernel/pmq/info.txt).

Awaiting comments.
Krzysztof Benedyczak

--------

Posix message queue support for Linux

Patch against 2.6.2

Sub-patches:

patch-mq-01-codemove:
Move support functions from ipc/msg.c to ipc/util.c. No code change.

patch-mq-02-syscalls:
Add posix message queue syscalls for i386.
The arch maintainer should pick the syscalls up for their archs.
Notes:
- no mq_close: functionality identical to close.
Slight spec violation: mq_close(open()) is supposed to fail.
- mq_getattr merged into mq_setattr:
mq_setattr must return the old values.
Thus: mq_getsetattr() with new val==NULL for mq_getattr.

patch-mq-03-core:
Core implementation.
The arch maintainers should update signal code if needed.
Notes:
- mq_notify(,SIGEV_THREAD) is implemented with file
descriptors: mq_notify returned a pollable fd.
Reading from the fd returns NOTIFY_WOKENUP if a message was
receive and NOTIFY_REMOVED if notify was cancled,
respectively. Only one byte is returned - should be
byte order and word size independant.
- Not all libfs helpers are used - preparation for mounting
the posix mqueue filesystem from user space.
- open posix conformance results:
* mq_close(0) succeeds, should fail.
Ignored - side effect of implementing message queue as
fds.
* mq_unlink(<uninitialized str>) fails with EINVAL,
should fail with -ENOENT. Ignored, test is bogus.
mq_unlink("/nonexistant") fails with -ENOENT.

patch-mq-04-linuxext-poll:
Linux extension: allow poll() on message queue fds.

patch-mq-05-linuxext-mount:
Allows mounting mqueue fs.
Gives removal with rm, creation with touch, etc.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/