#2859 closed defect (fixed)
Implement POSIX Shared Memory Objects
Reported by: | Gedare Bloom | Owned by: | Gedare Bloom |
---|---|---|---|
Priority: | normal | Milestone: | 5.1 |
Component: | posix | Version: | 5 |
Severity: | normal | Keywords: | POSIX-Compliance |
Cc: | Blocked By: | ||
Blocking: |
Description
POSIX Shared Memory is a widely used API for inter-process communication. The functions in the API include:
Change History (18)
comment:1 Changed on 01/13/17 at 17:41:37 by Gedare Bloom
comment:2 Changed on 01/25/17 at 12:33:07 by Sebastian Huber <sebastian.huber@…>
comment:3 Changed on 04/04/17 at 00:03:21 by Joel Sherrill
Keywords: | POSIX-Compliance added; posix removed |
---|
comment:5 Changed on 05/11/17 at 07:31:02 by Sebastian Huber
Milestone: | 4.12 → 4.12.0 |
---|
comment:7 Changed on 07/18/17 at 12:22:46 by Sebastian Huber
Test psxmmap01 fails with RTEMS_DEBUG:
*** BEGIN OF TEST PSX MMAP01 *** Init: mmap - map at zero Breakpoint 1, __assert_func (file=file@entry=0x2027fc8 "../../cpukit/../../../erc32/lib/include/rtems/score/chainimpl.h", line=line@entry=686, func=func@entry=0x2029198 <__func__.2359> "_Chain_Append_unprotected", failedexpr=failedexpr@entry=0x20286e0 "_Chain_Is_node_off_chain( the_node )") at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/__assert.c:37 37 { (gdb) bt #0 __assert_func (file=file@entry=0x2027fc8 "../../cpukit/../../../erc32/lib/include/rtems/score/chainimpl.h", line=line@entry=686, func=func@entry=0x2029198 <__func__.2359> "_Chain_Append_unprotected", failedexpr=failedexpr@entry=0x20286e0 "_Chain_Is_node_off_chain( the_node )") at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/__assert.c:37 #1 0x0200d688 in _Chain_Append_unprotected (the_node=0x2039450, the_chain=0x202f650 <mmap_mappings>) at ../../cpukit/../../../erc32/lib/include/rtems/score/chainimpl.h:686 #2 0x0200d720 in _Chain_Append_unprotected (the_node=0x2039450, the_chain=0x202f650 <mmap_mappings>) at ../../../../../../rtems/c/src/../../cpukit/sapi/src/chainprotected.c:74 #3 rtems_chain_append (chain=chain@entry=0x202f650 <mmap_mappings>, node=node@entry=0x2039450) at ../../../../../../rtems/c/src/../../cpukit/sapi/src/chainprotected.c:72 #4 0x0200a634 in mmap (addr=addr@entry=0xfffff000, len=len@entry=4096, prot=prot@entry=7, flags=<optimized out>, flags@entry=4114, fildes=fildes@entry=-1, off=<optimized out>) at ../../../../../../rtems/c/src/../../cpukit/posix/src/mmap.c:373 #5 0x020014cc in mmap_map_at_zero () at ../../../../../../../rtems/c/src/../../testsuites/psxtests/psxmmap01/init.c:100 #6 POSIX_Init (argument=<optimized out>) at ../../../../../../../rtems/c/src/../../testsuites/psxtests/psxmmap01/init.c:324 #7 0x0201be58 in _Thread_Entry_adaptor_pointer (executing=0x20318d8) at ../../../../../../rtems/c/src/../../cpukit/score/src/threadentryadaptorpointer.c:25 #8 0x0201bed4 in _Thread_Handler () at ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:88 #9 0x0201be6c in _Thread_Handler () at ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:38 (gdb) frame 3 #3 rtems_chain_append (chain=chain@entry=0x202f650 <mmap_mappings>, node=node@entry=0x2039450) at ../../../../../../rtems/c/src/../../cpukit/sapi/src/chainprotected.c:72 72 _Chain_Append_unprotected( chain, node ); (gdb) p *node $1 = { next = 0x202f654 <mmap_mappings+4>, previous = 0x202f650 <mmap_mappings> }
comment:10 Changed on 07/20/17 at 05:33:50 by Sebastian Huber
The mmap_mappings_lock attributes don't create a mutex:
#define RTEMS_MUTEX_ATTRIBS \
(RTEMS_PRIORITY | RTEMS_SIMPLE_BINARY_SEMAPHORE | \
RTEMS_NO_INHERIT_PRIORITY | RTEMS_NO_PRIORITY_CEILING | RTEMS_LOCAL)
I suggest to use the libio mutex and keep the specialized lock/unlock functions. Mutex lock/unlock should not return a status code to simplify the error handling.
comment:14 Changed on 07/28/17 at 19:16:13 by Gedare Bloom <gedare@…>
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:15 Changed on 07/28/17 at 19:19:00 by Gedare Bloom
I consider this basically complete. Open new tickets against any bugs or added features.
comment:17 Changed on 10/16/17 at 06:17:09 by Sebastian Huber
Component: | score → posix |
---|
comment:18 Changed on 11/09/17 at 06:27:14 by Sebastian Huber
Milestone: | 4.12.0 → 5.1 |
---|
Milestone renamed
Note: See
TracTickets for help on using
tickets.
ba77628250ae7158db363fc0d7886ebd43e9cb69