| Skip Navigation Links | |
| Exit Print View | |
![]() | man pages section 3: Basic Library Functions Oracle Solaris 11 Information Library |
enable_extended_FILE_stdio(3C)
posix_spawnattr_getschedparam(3C)
posix_spawnattr_getschedpolicy(3C)
posix_spawnattr_getsigdefault(3C)
posix_spawnattr_getsigignore_np(3C)
posix_spawnattr_getsigmask(3C)
posix_spawnattr_setschedparam(3C)
posix_spawnattr_setschedpolicy(3C)
posix_spawnattr_setsigdefault(3C)
posix_spawnattr_setsigignore_np(3C)
posix_spawnattr_setsigmask(3C)
posix_spawn_file_actions_addclose(3C)
posix_spawn_file_actions_addclosefrom_np(3C)
posix_spawn_file_actions_adddup2(3C)
posix_spawn_file_actions_addopen(3C)
posix_spawn_file_actions_destroy(3C)
posix_spawn_file_actions_init(3C)
pthread_attr_getdetachstate(3C)
pthread_attr_getinheritsched(3C)
pthread_attr_getschedparam(3C)
pthread_attr_getschedpolicy(3C)
pthread_attr_setdetachstate(3C)
pthread_attr_setinheritsched(3C)
pthread_attr_setschedparam(3C)
pthread_attr_setschedpolicy(3C)
pthread_barrierattr_destroy(3C)
pthread_barrierattr_getpshared(3C)
pthread_barrierattr_setpshared(3C)
pthread_condattr_getpshared(3C)
pthread_condattr_setpshared(3C)
pthread_cond_reltimedwait_np(3C)
pthread_key_create_once_np(3C)
pthread_mutexattr_getprioceiling(3C)
pthread_mutexattr_getprotocol(3C)
pthread_mutexattr_getpshared(3C)
pthread_mutexattr_getrobust(3C)
pthread_mutexattr_setprioceiling(3C)
pthread_mutexattr_setprotocol(3C)
pthread_mutexattr_setpshared(3C)
pthread_mutexattr_setrobust(3C)
pthread_mutex_getprioceiling(3C)
pthread_mutex_reltimedlock_np(3C)
pthread_mutex_setprioceiling(3C)
pthread_rwlockattr_destroy(3C)
pthread_rwlockattr_getpshared(3C)
pthread_rwlockattr_setpshared(3C)
pthread_rwlock_reltimedrdlock_np(3C)
pthread_rwlock_reltimedwrlock_np(3C)
pthread_rwlock_timedrdlock(3C)
pthread_rwlock_timedwrlock(3C)
rctlblk_get_enforced_value(3C)
- retrieve and set door parameters
cc-mt [flag... ]file... [library... ]#include <door.h>intdoor_getparam(intd,intparam,size_t *out);
intdoor_setparam(intd,intparam,size_tval);
Thedoor_getparam() function retrieves the value ofparam for the door descriptord and writes it through the pointerout. Thedoor_setparam() function setsthe value ofparam for the door descriptord toval. Theparamargument names the parameter to view or change and can be oneof the following values:
This parameter represents the maximum amount of data that can be passed to the door routine. Any attempt to calldoor_call(3C) on a door with adata_size value larger than the door'sDOOR_PARAM_DATA_MAX parameter will fail withENOBUFS. At door creation time, this parameter is initialized toSIZE_MAX and can be set to any value from 0 toSIZE_MAX, inclusive. This parameter must be greater than or equal to theDOOR_PARAM_DATA_MIN parameter.
This parameter represents the the minimum amount of data that can be passed to the door routine. Any attempt to calldoor_call(3C) on a door with adata_size value smaller than the door'sDOOR_PARAM_DATA_MIN parameter will fail withENOBUFS. At door creation time, this parameter is initialized to 0, and can be set to any value from 0 toSIZE_MAX, inclusive. This parameter must be less than or equal to theDOOR_PARAM_DATA_MAX parameter.
This parameter represents the the maximum number of argument descriptors that can be passed to the door routine. Any attempt to calldoor_call(3C) on a door with adesc_num value larger than the door'sDOOR_PARAM_DESC_MAX parameter will fail withENFILE. If the door was created with theDOOR_REFUSE_DESC flag, this parameter is initialized to 0 and cannot be changed to any other value. Otherwise, it is initialized toINT_MAX and can be set to any value from 0 toINT_MAX, inclusive.
Thedoor_setparam() function can only affect doors that were created by thecurrent process.
Upon successful completion, 0 is returned. Otherwise, -1 is returned anderrno is set to indicate the error.
Thedoor_getparam() function will fail if:
Thed argument is not a door descriptor.
Theout argument is not a valid address.
Theparam argument is not a recognized parameter.
The value of the parameter is larger than theSIZE_MAX. This condition can occur only if the calling process is 32-bit and the door targets a 64-bit process or the kernel.
Thedoor_setparam() function will fail if:
Thed argument is not a door descriptor or has been revoked.
Theparam argument is not a recognized parameter, or the requested change would makeDOOR_PARAM_DATA_MIN greater thanDOOR_PARAM_DATA_MAX.
Theparam argument isDOOR_PARAM_DESC_MAX,d was created with theDOOR_REFUSE_DESC flag, andval is not zero.
Thed argument was not created by this process.
Theval argument is not in supported range ofparam.
Example 1 Set up a door with a fixed request size.
typedef struct my_request { int request;ar buffer[4096];} my_request_t;fd = door_create(my_handler, DOOR_REFUSE_DESC);if (fd < 0) /* handle error */if (door_setparam(fd, DOOR_PARAM_DATA_MIN, sizeof (my_request_t)) < 0 || door_setparam(fd, DOOR_PARAM_DATA_MAX, sizeof (my_request_t)) < 0) /* handle error *//* * the door will only accept door_call(3DOOR)s with a * data_size which is exactly sizeof (my_request_t). */Seeattributes(5) for descriptions of the following attributes:
|
door_call(3C),door_create(3C),attributes(5)
The parameters that can be manipulated bydoor_setparam() are not the onlylimitation on the size of requests. If the door server thread's stacksize is not large enough to hold all of the data requestedplus room for processing the request, the door call will fail withE2BIG.
TheDOOR_PARAM_DATA_MIN parameter will not preventDOOR_UNREF_DATA notifications from being sent tothe door.
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices | ![]() ![]() |