2008-12-19 17:05:50 +00:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
* 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]
|
|
|
|
*
|
|
|
|
* CDDL HEADER END
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
* Copyright (c) 2008 by Sun Microsystems, Inc.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _SYS_SUNDDI_H
|
2008-12-19 19:30:42 +00:00
|
|
|
#define _SYS_SUNDDI_Ha
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Generic Sun DDI definitions.
|
|
|
|
*/
|
|
|
|
#define DDI_SUCCESS (0) /* successful return */
|
|
|
|
#define DDI_FAILURE (-1) /* unsuccessful return */
|
|
|
|
#define DDI_NOT_WELL_FORMED (-2) /* A dev_info node is not valid */
|
|
|
|
#define DDI_EAGAIN (-3) /* not enough interrupt resources */
|
|
|
|
#define DDI_EINVAL (-4) /* invalid request or arguments */
|
|
|
|
#define DDI_ENOTSUP (-5) /* operation is not supported */
|
|
|
|
#define DDI_EPENDING (-6) /* operation or an event is pending */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* General-purpose DDI error return value definitions
|
|
|
|
*/
|
|
|
|
#define DDI_ENOMEM 1 /* memory not available */
|
|
|
|
#define DDI_EBUSY 2 /* busy */
|
|
|
|
#define DDI_ETRANSPORT 3 /* transport down */
|
|
|
|
#define DDI_ECONTEXT 4 /* context error */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* DDI_DEV_T_NONE: When creating, property is not associated with
|
|
|
|
* particular dev_t.
|
|
|
|
* DDI_DEV_T_ANY: Wildcard dev_t when searching properties.
|
|
|
|
*/
|
|
|
|
#define DDI_DEV_T_NONE ((dev_t)-1)
|
|
|
|
#define DDI_DEV_T_ANY ((dev_t)-2)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Property flags:
|
|
|
|
*/
|
|
|
|
#define DDI_PROP_DONTPASS 0x0001 /* Don't pass request to parent */
|
|
|
|
#define DDI_PROP_CANSLEEP 0x0002 /* Memory allocation may sleep */
|
|
|
|
|
2008-12-19 19:48:21 +00:00
|
|
|
typedef struct dev_info {
|
|
|
|
major_t di_major;
|
|
|
|
minor_t di_minor;
|
|
|
|
dev_t di_dev;
|
|
|
|
} dev_info_t;
|
2008-12-19 17:05:50 +00:00
|
|
|
|
|
|
|
extern int ddi_strtoul(const char *, char **, int, unsigned long *);
|
|
|
|
extern int ddi_strtol(const char *, char **, int, long *);
|
|
|
|
extern int ddi_strtoull(const char *, char **, int, unsigned long long *);
|
|
|
|
extern int ddi_strtoll(const char *, char **, int, long long *);
|
|
|
|
|
2008-12-19 19:48:21 +00:00
|
|
|
extern dev_info_t *ddi_root_node(void);
|
2008-12-19 19:30:42 +00:00
|
|
|
extern int ddi_prop_lookup_string(dev_t, dev_info_t *, uint_t, char *, char **);
|
|
|
|
extern void ddi_prop_free(void *);
|
|
|
|
|
2008-12-19 17:05:50 +00:00
|
|
|
#endif /* _SYS_SUNDDI_H */
|