pdinfo
typedef STAILQ_HEAD(pdinfo_list, pdinfo) pdinfo_list_t;
STAILQ_ENTRY(pdinfo) pd_link; /* link in device list */
struct pdinfo *pd_parent; /* Linked items (eg partitions) */
static pdinfo_list_t pdinfo = STAILQ_HEAD_INITIALIZER(pdinfo);
if (!STAILQ_EMPTY(&pdinfo))
STAILQ_INSERT_TAIL(&pdinfo, pd, pd_link);
STAILQ_FOREACH(pd, &pdinfo, pd_link) {
pd->pd_parent = efipart_find_parent(&pdinfo, pd->pd_devpath);
while ((fd = efipart_get_pd(&pdinfo, efipart_testfd, NULL)) != NULL) {
STAILQ_REMOVE(&pdinfo, fd, pdinfo, pd_link);
STAILQ_REMOVE(&pdinfo, parent, pdinfo, pd_link);
STAILQ_FOREACH(pd, &pdinfo, pd_link) {
STAILQ_REMOVE(&pdinfo, cd, pdinfo, pd_link);
last = STAILQ_LAST(&parent->pd_part, pdinfo, pd_link);
last = STAILQ_LAST(&cdinfo, pdinfo, pd_link);
while ((cd = efipart_get_pd(&pdinfo, efipart_testcd, NULL)) != NULL)
for (child = efipart_get_pd(&pdinfo, efipart_testchild, cd);
child = efipart_get_pd(&pdinfo, efipart_testchild, cd))
ptr = STAILQ_LAST(&parent->pd_part, pdinfo, pd_link);
last = STAILQ_LAST(&hdinfo, pdinfo, pd_link);
STAILQ_FOREACH(pd, &pdinfo, pd_link) {
STAILQ_REMOVE(&pdinfo, hd, pdinfo, pd_link);
last = STAILQ_LAST(&hdinfo, pdinfo, pd_link);
while ((hd = efipart_get_pd(&pdinfo, efipart_testhd, NULL)) != NULL)
mfi_pd_info_t *pdinfo = NULL;
pdinfo = kmem_zalloc(sizeof (mfi_pd_info_t), KM_SLEEP);
bcopy(mfi->mfi_data_dma.ld_buf, pdinfo, sizeof (mfi_pd_info_t));
return (pdinfo);