Lines Matching defs:li
180 struct ncr53c9x_linfo *li;
182 LIST_FOREACH(li, &ti->luns, link)
183 if (li->lun == lun)
184 return li;
308 struct ncr53c9x_linfo *li, *nextli;
320 for (li = LIST_FIRST(&sc->sc_tinfo[t].luns); li;
321 li = nextli) {
322 nextli = LIST_NEXT(li, link);
323 free(li, M_DEVBUF);
448 struct ncr53c9x_linfo *li;
461 LIST_FOREACH(li, &sc->sc_tinfo[r].luns, link) {
462 ecb = li->untagged;
464 li->untagged = NULL;
471 li->busy = 0;
476 ecb = li->queued[i];
478 li->queued[i] = NULL;
483 li->used = 0;
1073 struct ncr53c9x_linfo *li;
1106 li = TINFO_LUN(ti, lun);
1107 if (li == NULL) {
1109 li = malloc(sizeof(*li), M_DEVBUF, M_NOWAIT|M_ZERO);
1110 if (li == NULL) {
1113 li->lun = lun;
1115 LIST_INSERT_HEAD(&ti->luns, li, link);
1117 ti->lun[lun] = li;
1119 li->last_used = time_second;
1122 if (li->untagged == NULL)
1123 li->untagged = ecb;
1125 if (li->untagged != NULL) {
1127 if ((li->busy != 1) && li->used == 0) {
1129 ecb = li->untagged;
1138 li->queued[ecb->xs->xs_tag_id] = ecb;
1140 li->used++;
1142 if (li->untagged != NULL && (li->busy != 1)) {
1143 li->busy = 1;
1150 if (li->untagged == NULL && tag != 0) {
1171 struct ncr53c9x_linfo *li;
1186 li = TINFO_LUN(ti, lun);
1187 if (li->busy)
1188 li->busy = 0;
1190 li->untagged = ecb; /* must be executed first to fix C/A */
1191 li->busy = 2;
1212 struct ncr53c9x_linfo *li = TINFO_LUN(ti, lun);
1271 if (li->untagged == NULL && li->used == 0) {
1274 LIST_REMOVE(li, link);
1275 free(li, M_DEVBUF);
1291 struct ncr53c9x_linfo *li;
1294 li = TINFO_LUN(ti, lun);
1296 if (li == NULL || li->lun != lun)
1300 if (li->untagged == ecb) {
1301 li->busy = 0;
1302 li->untagged = NULL;
1304 if (ecb->tag[0] && li->queued[ecb->tag[1]] != NULL) {
1306 if (li->queued[ecb->tag[1]] != NULL &&
1307 (li->queued[ecb->tag[1]] != ecb))
1311 li->queued[ecb->tag[1]], ecb);
1313 li->queued[ecb->tag[1]] = NULL;
1314 li->used--;
1448 struct ncr53c9x_linfo *li;
1478 li = TINFO_LUN(ti, lun);
1486 if (li != NULL) {
1487 if (li->untagged != NULL && li->busy)
1488 ecb = li->untagged;
1494 ecb = li->queued[tagid];
1630 struct ncr53c9x_linfo *li;
1674 li = TINFO_LUN(ti, lun);
1676 li->queued[ecb->tag[1]] != NULL) {
1677 li->queued[ecb->tag[1]] = NULL;
1678 li->used--;
1681 li->untagged = ecb;
1682 li->busy = 1;
2294 struct ncr53c9x_linfo *li;
2301 li = LIST_FIRST(&ti->luns);
2302 while (li != NULL) {
2303 if (li->untagged == NULL && li->used == 0) {
2304 if (li->lun < NCR_NLUN)
2305 ti->lun[li->lun] = NULL;
2306 LIST_REMOVE(li, link);
2307 free(li, M_DEVBUF);
2311 li = LIST_FIRST(&ti->luns);
2314 li = LIST_NEXT(li, link);
2959 struct ncr53c9x_linfo *li;
2967 li = LIST_FIRST(&ti->luns);
2968 while (li) {
2969 if (li->last_used < old &&
2970 li->untagged == NULL &&
2971 li->used == 0) {
2972 if (li->lun < NCR_NLUN)
2973 ti->lun[li->lun] = NULL;
2974 LIST_REMOVE(li, link);
2975 free(li, M_DEVBUF);
2977 li = LIST_FIRST(&ti->luns);
2980 li = LIST_NEXT(li, link);