pno
int no, pno, ddisks, pdisks, protate, pleft;
pno = 0;
pno = ddisks;
pno = (nstripe / (ddisks * protate)) % vol->v_disks_count;
pno = ddisks - pno;
if (pno < 0)
pno += vol->v_disks_count;
no = (pno + pdisks + no) % vol->v_disks_count;
} else if (no >= pno) /* Restart/Asymmetric */
no += imax(0, pno + pdisks - vol->v_disks_count);
if (no == pno)
if (no == pno) {
pno++;
pno += vol->v_disks_count - 1;
pno %= vol->v_disks_count;
no = (pno + pdisks) % vol->v_disks_count;
if (no == pno)
pno++;
pno += vol->v_disks_count - 1;
pno %= vol->v_disks_count;
if (no == pno)
no += imax(0, pno + pdisks - vol->v_disks_count);
struct named_object **pno)
*pno = ipfw_objhash_lookup_name_type(CHAIN_TO_SRV(ch), 0,
struct named_object **pno)
*pno = ipfw_objhash_lookup_name_type(CHAIN_TO_SRV(ch),
if (*pno == NULL)
struct tid_info *ti, struct named_object **pno);
uint32_t etlv, struct named_object **pno)
*pno = ipfw_objhash_lookup_name(ni, set, name);
if (*pno == NULL)
struct named_object **pno)
*pno = &tc->no;
struct named_object **pno) \
IPFW_TLV_## name ## _NAME, pno)); \
struct named_object **pno)
IPFW_TLV_NPTV6_NAME, pno);