/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (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
* 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]
*
* CDDL HEADER END
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
/*
* Copyright (c) 1997, by Sun Microsystems, Inc.
* All rights reserved.
*/
#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */
/*LINTLIBRARY*/
/*
*
* Contents:
* devattr() Get the value of a attribute for a specific device
*/
/*
* Header files needed
* <stdio.h> Standard I/O Definitions
* <errno.h> Error-value definitions
* <string.h> String function and constant definitions
* <devmgmt.h> Device table definitions available to the world
* "devtab.h" Local device table definitions
*/
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <devmgmt.h>
#include "devtab.h"
/*
* Local constant definitions
*/
/*
* Local static data
*/
/*
* char *devattr(device, attr)
*
* This function searches the device table, looking for the device
* specified by <device>. If it finds a record corresponding to that
* device (see below for a definition of that correspondence), it
* extracts the value of the field <attr> from that record, if any.
* It returns a pointer to that value, or (char *) NULL if none.
*
* Arguments:
* device Pointer to the character-string that describes the
* device whose record is to be looked for
* attr The device's attribute to be looked for
*
* Returns: char *
* A pointer to the character-string containing the value of the
* attribute <attr> for the device <device>, or (char *) NULL if none
* was found. If the function returns (char *) NULL and the error was
* detected by this function, it sets "errno" to indicate the problem.
*
* "errno" Values:
* EPERM Permissions deny reading access of the device-table
* file
* ENOENT The specified device-table file could not be found
* ENODEV Device not found in the device table
* EINVAL The device does not have that attribute defined
* ENOMEM No memory available
*/
char *
char *device, /* The device ) we're to look for */
char *attribute) /* The attribute to extract */
{
/* Automatic data */
/* Get the record for the specified device */
_enddevtab();
return (NULL);
}
/* Search the record for the specified attribute */
/* Did they ask for the device alias? */
}
/* Did they ask for the character-special device? */
}
/* Did they ask for the block-special device? */
}
/* Did they ask for the pathname? */
}
else {
/*
* structure
*/
while (!found && (p)) {
} else p = p->next;
}
}
/*
* If the attribute was found, copy it into malloc()ed space.
* If not, set errno appropriately; we'll return NULL
*/
if (found) {
} else {
}
/* Free the space allocated to the struct devtabent structure */
_enddevtab();
/* Fini */
return (rtnval);
}