Copyright 2000 by Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
cc [flag]... file... -lbsm [library]...
#include <bsm/devices.h> devdealloc_t *getddent(void);
devdealloc_t *getddnam(char *name);
void setddent(void);
void endddent(void);
void setddfile(char *file);
The getddent() and getddnam() functions each return a device_deallocate entry. The getddent() function enumerates all device_deallocate entries. Successive calls to this function return either successive device_deallocate entries or NULL. The getddnam() function searches for a device_deallocate entry with a given device name.
The internal representation of a device_deallocate entry is a devdealloc_t structure defined in <bsm/devices.h> with the following members:
char *dd_devname; /* device allocation name */ char *dd_logout; /* deallocation action on user logout */ char *dd_boot; /* deallocation action on system boot */
The setddent() function "rewinds" to the beginning of the enumeration of device_deallocate entries. Calls to getddnam() may leave the enumeration in an indeterminate state, so setddent() should be called before the first call to getddent().
The endddent() function can be called to indicate that device_deallocate processing is complete. The library can then close any opendevice_deallocate file, deallocate any internal storage, and so forth.
The setddfile() function changes the pathname used by the other functions for opening the device_deallocate file, allowing use of device_deallocate files other than the default file, /etc/security/device_deallocate.
The getddent() function returns a pointer to a devdealloc_t if it successfully enumerates an entry. Otherwise it returns NULL, indicating the end of the enumeration.
The getddnam() function returns a pointer to a devdealloc_t if it successfully locates the requested entry. Otherwise it returns NULL.
/etc/security/device_deallocate
Administrative file defining parameters for device deallocation.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
MT-Level | Unsafe |
free(3C), attributes(5)
The getddent() and getddnam() functions allocate memory for the pointers they return. This memory can be deallocated with the free(3C) function.