iofunc_mmap_default(), iofunc_mmap_default_ext()

QNX SDP8.0C Library ReferenceAPIDeveloper

Default handler for _IO_MMAP messages

Synopsis:

#include <sys/iofunc.h>

int iofunc_mmap_default ( resmgr_context_t * ctp,
                          io_mmap_t * msg,
                          iofunc_ocb_t * ocb );

int iofunc_mmap_default_ext( resmgr_context_t * const ctp,
                             io_mmap_t * const msg,
                             iofunc_ocb_t * const ocb );

Arguments:

ctp
A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
msg
A pointer to the io_mmap_t structure that contains the message that the resource manager received. For more information, see the documentation for iofunc_mmap().
ocb
A pointer to the iofunc_ocb_t structure for the Open Control Block that was created when the client opened the resource.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The iofunc_mmap_default() and iofunc_mmap_default_ext() functions provide functionality for the _IO_MMAP message. This message is private to the memory manager (a part of the microkernel's procnto).

The iofunc_mmap_default_ext() function is an extended version of iofunc_mmap_default() that can return extra information to the memory manager. If called on a device that's mounted, it also fills in the stat information and uses _IO_MMAP_REPLY_FLAGS_STAT_FORM_FLAGS(_STAT_FORM_PREFERRED) to set the flags that it passes to iofunc_mmap_ext().

You can place one of these functions directly into the resmgr_io_funcs_t table passed as the io_funcs argument to resmgr_attach(), at the mmap position, or you can call iofunc_func_init() to initialize all of the functions to their default values.

Note:
The default is iofunc_mmap_default().

The iofunc_mmap_default() function calls iofunc_mmap() to do the actual work; iofunc_mmap_default_ext() calls iofunc_mmap_ext().

Note that if you write your own handler for _IO_MMAP messages, and you want the process manager to be able to execute binaries from the resource, then your handler must use the iofunc_mmap() or iofunc_mmap_ext() function.

Returns:

A nonpositive value (i.e., less than or equal to 0)
Successful completion.
EACCES
The client doesn't have the appropriate permissions.
ENOMEM
Insufficient memory exists to allocate internal resources required to effect the mapping.
EROFS
There was an attempt to memory map (mmap) a read-only file using the PROT_WRITE page protection mode.

Classification:

QNX OS

Safety:
Cancellation pointNo
Signal handlerYes
ThreadYes
Page updated: