Lines Matching refs:id

37     char **minor_namep, impl_devid_t *id);
41 * Validate device id.
50 impl_devid_t *id = (impl_devid_t *)devid;
55 if (id->did_magic_hi != DEVID_MAGIC_MSB)
58 if (id->did_magic_lo != DEVID_MAGIC_LSB)
61 if (id->did_rev_hi != DEVID_REV_MSB)
64 if (id->did_rev_lo != DEVID_REV_LSB)
67 type = DEVID_GETTYPE(id);
75 * Return the sizeof a device id. If called with NULL devid it returns
85 impl_devid_t *id = (impl_devid_t *)devid;
87 if (id == NULL)
88 return (sizeof (*id) - sizeof (id->did_id));
92 return (sizeof (*id) + DEVID_GETLEN(id) - sizeof (id->did_id));
96 * Compare two device id's.
162 /* id comparison */
183 * Encode a device id into a string. See ddi_impldefs.h for details.
192 impl_devid_t *id = (impl_devid_t *)devid;
197 /* "id0" is the encoded representation of a NULL device id */
214 if (id->did_driver[driver_len] == '\0')
218 devid_len = DEVID_GETLEN(id);
220 if (!DEVID_IDBYTE_ISASCII(id->did_id[i])) {
226 if (DEVID_TYPE_BIN_FORCEHEX(id->did_type_lo))
243 /* perform encode of id to hex string */
245 *dsp++ = id->did_magic_hi;
246 *dsp++ = id->did_magic_lo;
247 *dsp++ = DEVID_REV_BINTOASCII(id->did_rev_lo);
250 *dsp++ = id->did_driver[i];
252 ta = DEVID_TYPE_BINTOASCII(id->did_type_lo);
256 for (i = 0, dp = &id->did_id[0]; i < devid_len; i++, dp++) {
295 * given the string representation of a device id returned by calling
318 char **minor_namep, impl_devid_t *id)
328 if (id != NULL)
340 /* "id0" is the encoded representation of a NULL device id */
366 /* determine length of id->did_id field */
374 /* hex id field must be even length */
381 devid_len = id_len + sizeof (*id) - sizeof (id->did_id);
388 if ((id = (impl_devid_t *)DEVID_MALLOC(
395 id->did_magic_hi = *dsp++; /* <magic> "id" */
396 id->did_magic_lo = *dsp++;
397 id->did_rev_hi = 0;
398 id->did_rev_lo =
405 id->did_driver[i] = *dsp++;
408 id->did_driver[i] = 0;
415 DEVID_FORMTYPE(id, type);
416 DEVID_FORMLEN(id, id_len);
419 for (i = 0, dsp = str, dp = &id->did_id[0];
450 if (DEVID_FUNC(devid_valid)((ddi_devid_t)id) != DEVID_RET_VALID)
463 *devidp = (ddi_devid_t)id;
467 if ((pre_alloc == FALSE) && (id))
468 DEVID_FREE(id, devid_len);
474 * Compare two device id's in string form