Lines Matching refs:dsp

69 	disk_status_t *dsp;  in disk_status_open()  local
73 if ((dsp = calloc(sizeof (disk_status_t), 1)) == NULL) { in disk_status_open()
78 if ((dsp->ds_fd = open(path, O_RDWR)) < 0) { in disk_status_open()
80 free(dsp); in disk_status_open()
84 if ((dsp->ds_path = strdup(path)) == NULL) { in disk_status_open()
86 disk_status_close(dsp); in disk_status_open()
93 dsp->ds_transport = t; in disk_status_open()
95 nvlist_free(dsp->ds_state); in disk_status_open()
96 dsp->ds_state = NULL; in disk_status_open()
97 if (nvlist_alloc(&dsp->ds_state, NV_UNIQUE_NAME, 0) != 0) { in disk_status_open()
99 disk_status_close(dsp); in disk_status_open()
103 if ((dsp->ds_data = t->dt_open(dsp)) == NULL) { in disk_status_open()
104 if (dsp->ds_error != EDS_NO_TRANSPORT) { in disk_status_open()
105 *error = dsp->ds_error; in disk_status_open()
106 disk_status_close(dsp); in disk_status_open()
110 dsp->ds_error = 0; in disk_status_open()
115 if (dsp->ds_error == EDS_NO_TRANSPORT) { in disk_status_open()
116 *error = dsp->ds_error; in disk_status_open()
117 disk_status_close(dsp); in disk_status_open()
121 return (dsp); in disk_status_open()
128 disk_status_close(disk_status_t *dsp) in disk_status_close() argument
130 nvlist_free(dsp->ds_state); in disk_status_close()
131 nvlist_free(dsp->ds_predfail); in disk_status_close()
132 nvlist_free(dsp->ds_overtemp); in disk_status_close()
133 nvlist_free(dsp->ds_testfail); in disk_status_close()
134 nvlist_free(dsp->ds_ssmwearout); in disk_status_close()
135 if (dsp->ds_data) in disk_status_close()
136 dsp->ds_transport->dt_close(dsp->ds_data); in disk_status_close()
137 (void) close(dsp->ds_fd); in disk_status_close()
138 free(dsp->ds_path); in disk_status_close()
139 free(dsp); in disk_status_close()
152 disk_status_path(disk_status_t *dsp) in disk_status_path() argument
154 return (dsp->ds_path); in disk_status_path()
158 disk_status_errno(disk_status_t *dsp) in disk_status_errno() argument
160 return (dsp->ds_error); in disk_status_errno()
164 disk_status_get(disk_status_t *dsp) in disk_status_get() argument
173 nvlist_free(dsp->ds_testfail); in disk_status_get()
174 nvlist_free(dsp->ds_predfail); in disk_status_get()
175 nvlist_free(dsp->ds_overtemp); in disk_status_get()
176 nvlist_free(dsp->ds_ssmwearout); in disk_status_get()
177 dsp->ds_ssmwearout = NULL; in disk_status_get()
178 dsp->ds_testfail = dsp->ds_overtemp = dsp->ds_predfail = NULL; in disk_status_get()
179 dsp->ds_faults = 0; in disk_status_get()
185 if (dsp->ds_transport->dt_scan(dsp->ds_data) != 0 && in disk_status_get()
186 dsp->ds_error != EDS_IO) in disk_status_get()
193 (err = nvlist_add_nvlist(nvl, "status", dsp->ds_state)) != 0) in disk_status_get()
202 if (dsp->ds_predfail != NULL) { in disk_status_get()
205 (dsp->ds_faults & DS_FAULT_PREDFAIL) != 0)) != 0 || in disk_status_get()
207 dsp->ds_predfail)) != 0) in disk_status_get()
211 if (dsp->ds_testfail != NULL) { in disk_status_get()
214 (dsp->ds_faults & DS_FAULT_TESTFAIL) != 0)) != 0 || in disk_status_get()
216 dsp->ds_testfail)) != 0) in disk_status_get()
220 if (dsp->ds_overtemp != NULL) { in disk_status_get()
223 (dsp->ds_faults & DS_FAULT_OVERTEMP) != 0)) != 0 || in disk_status_get()
225 dsp->ds_overtemp)) != 0) in disk_status_get()
229 if (dsp->ds_ssmwearout != NULL) { in disk_status_get()
232 (dsp->ds_faults & DS_FAULT_SSMWEAROUT) != 0)) != 0 || in disk_status_get()
234 dsp->ds_ssmwearout)) != 0) in disk_status_get()
248 (void) ds_set_errno(dsp, EDS_NOMEM); in disk_status_get()