summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdevice/libdevice.h
blob: 3bf469656b44e15eeef4c3d0b53639ec913f67b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
/*
 * 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 2004 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef	_LIBDEVICE_H
#define	_LIBDEVICE_H

#include <sys/sunddi.h>
#include <sys/ddi_impldefs.h>
#include <sys/devctl.h>

#ifdef	__cplusplus
extern "C" {
#endif

#define	DC_EXCL		0x01
#define	DC_RDONLY	0x02

typedef struct devctl_dummy_struct *devctl_hdl_t;
typedef struct devctl_dummy_ddef *devctl_ddef_t;


devctl_hdl_t
devctl_device_acquire(char *devfs_path, uint_t flags);

devctl_hdl_t
devctl_bus_acquire(char *devfs_path, uint_t flags);

devctl_hdl_t
devctl_ap_acquire(char *devfs_path, uint_t flags);

devctl_hdl_t
devctl_pm_dev_acquire(char *devfs_path, uint_t flags);

devctl_hdl_t
devctl_pm_bus_acquire(char *devfs_path, uint_t flags);

void
devctl_release(devctl_hdl_t hdl);

int
devctl_device_offline(devctl_hdl_t hdl);

int
devctl_device_remove(devctl_hdl_t hdl);

int
devctl_pm_raisepower(devctl_hdl_t hdl);

int
devctl_pm_changepowerlow(devctl_hdl_t hdl);

int
devctl_pm_changepowerhigh(devctl_hdl_t hdl);

int
devctl_pm_idlecomponent(devctl_hdl_t hdl);

int
devctl_pm_busycomponent(devctl_hdl_t hdl);

int
devctl_pm_testbusy(devctl_hdl_t hdl, uint_t *busyp);

int
devctl_pm_failsuspend(devctl_hdl_t hdl);

int
devctl_pm_bus_teststrict(devctl_hdl_t hdl, uint_t *strict);

int
devctl_pm_device_changeonresume(devctl_hdl_t hdl);

int
devctl_pm_device_no_lower_power(devctl_hdl_t hdl);

int
devctl_pm_bus_no_invol(devctl_hdl_t hdl);

int
devctl_pm_device_promprintf(devctl_hdl_t hdl);

int
devctl_device_online(devctl_hdl_t hdl);

int
devctl_device_reset(devctl_hdl_t hdl);

int
devctl_device_getstate(devctl_hdl_t hdl, uint_t *statep);

int
devctl_bus_quiesce(devctl_hdl_t hdl);

int
devctl_bus_unquiesce(devctl_hdl_t hdl);

int
devctl_bus_reset(devctl_hdl_t hdl);

int
devctl_bus_resetall(devctl_hdl_t hdl);

int
devctl_bus_getstate(devctl_hdl_t hdl, uint_t *statep);

int
devctl_bus_configure(devctl_hdl_t hdl);

int
devctl_bus_unconfigure(devctl_hdl_t hdl);

int
devctl_ap_insert(devctl_hdl_t, nvlist_t *);

int
devctl_ap_remove(devctl_hdl_t, nvlist_t *);

int
devctl_ap_connect(devctl_hdl_t, nvlist_t *);

int
devctl_ap_disconnect(devctl_hdl_t, nvlist_t *);

int
devctl_ap_configure(devctl_hdl_t, nvlist_t *);

int
devctl_ap_unconfigure(devctl_hdl_t, nvlist_t *);

int
devctl_ap_getstate(devctl_hdl_t, nvlist_t *, devctl_ap_state_t *);

devctl_ddef_t
devctl_ddef_alloc(char *, int);

void
devctl_ddef_free(devctl_ddef_t);

int
devctl_ddef_int(devctl_ddef_t, char *, int32_t);

int
devctl_ddef_int_array(devctl_ddef_t, char *, int, int32_t *);

int
devctl_ddef_string(devctl_ddef_t ddef_hdl, char *, char *);

int
devctl_ddef_string_array(devctl_ddef_t, char *, int, char **);

int
devctl_ddef_byte_array(devctl_ddef_t, char *, int, uchar_t *);

int
devctl_bus_dev_create(devctl_hdl_t, devctl_ddef_t, uint_t, devctl_hdl_t *);

char *
devctl_get_pathname(devctl_hdl_t, char *, size_t);

#ifdef	__cplusplus
}
#endif

#endif	/* _LIBDEVICE_H */