diff options
Diffstat (limited to 'cpukit/posix/src/shmwkspace.c')
-rw-r--r-- | cpukit/posix/src/shmwkspace.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cpukit/posix/src/shmwkspace.c b/cpukit/posix/src/shmwkspace.c index 6d6cd211a5..bcef3531ef 100644 --- a/cpukit/posix/src/shmwkspace.c +++ b/cpukit/posix/src/shmwkspace.c @@ -75,4 +75,21 @@ int _POSIX_Shm_Object_read_from_workspace( return count; } +void * _POSIX_Shm_Object_mmap_from_workspace( + POSIX_Shm_Object *shm_obj, + size_t len, + int prot, + off_t off +) +{ + if ( shm_obj == NULL || shm_obj->handle == NULL ) + return 0; + + /* This is already checked by mmap. Maybe make it a debug assert? */ + if ( shm_obj->size < len + off ) { + return NULL; + } + + return &(shm_obj->handle[off]); +} |