Lines Matching refs:scb_data
3328 for (scb_tag = 0; scb_tag < ahd->scb_data.maxhscbs; scb_tag++) {
5394 for (i = 0; i < ahd->scb_data.maxhscbs; i++) {
5408 struct scb_data *scb_data;
5411 scb_data = &ahd->scb_data;
5412 TAILQ_INIT(&scb_data->free_scbs);
5414 LIST_INIT(&scb_data->free_scb_lists[i]);
5415 LIST_INIT(&scb_data->any_dev_free_scb_list);
5416 SLIST_INIT(&scb_data->hscb_maps);
5417 SLIST_INIT(&scb_data->sg_maps);
5418 SLIST_INIT(&scb_data->sense_maps);
5421 scb_data->maxhscbs = ahd_probe_scbs(ahd);
5422 if (scb_data->maxhscbs == 0) {
5441 if (scb_data->numscbs == 0) {
5474 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
5488 LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) {
5499 struct scb_data *scb_data;
5501 scb_data = &ahd->scb_data;
5502 if (scb_data == NULL)
5505 switch (scb_data->init_level) {
5511 while ((sns_map = SLIST_FIRST(&scb_data->sense_maps)) != NULL) {
5512 SLIST_REMOVE_HEAD(&scb_data->sense_maps, links);
5524 while ((sg_map = SLIST_FIRST(&scb_data->sg_maps)) != NULL) {
5525 SLIST_REMOVE_HEAD(&scb_data->sg_maps, links);
5538 while ((hscb_map = SLIST_FIRST(&scb_data->hscb_maps)) != NULL) {
5539 SLIST_REMOVE_HEAD(&scb_data->hscb_maps, links);
5615 free_list = &ahd->scb_data.free_scb_lists[col_idx];
5616 free_tailq = &ahd->scb_data.free_scbs;
5636 free_list = &ahd->scb_data.free_scb_lists[col_idx];
5637 free_tailq = &ahd->scb_data.free_scbs;
5664 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
5670 if ((scb = LIST_FIRST(&ahd->scb_data.any_dev_free_scb_list)) == NULL)
5694 ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = NULL;
5701 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
5711 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
5713 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
5733 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
5743 struct scb_data *scb_data;
5757 scb_data = &ahd->scb_data;
5758 if (scb_data->numscbs >= AHD_SCB_MAX_ALLOC)
5762 KASSERT(scb_data->scbs_left >= 0);
5763 if (scb_data->scbs_left != 0) {
5766 offset = (PAGE_SIZE / sizeof(*hscb)) - scb_data->scbs_left;
5767 hscb_map = SLIST_FIRST(&scb_data->hscb_maps);
5790 SLIST_INSERT_HEAD(&scb_data->hscb_maps, hscb_map, links);
5794 scb_data->scbs_left = PAGE_SIZE / sizeof(*hscb);
5797 scb_data->init_level++;
5799 if (scb_data->sgs_left != 0) {
5803 - scb_data->sgs_left) * ahd_sglist_size(ahd);
5804 sg_map = SLIST_FIRST(&scb_data->sg_maps);
5827 SLIST_INSERT_HEAD(&scb_data->sg_maps, sg_map, links);
5831 scb_data->sgs_left =
5840 scb_data->init_level++;
5843 if (scb_data->sense_left != 0) {
5846 offset = PAGE_SIZE - (AHD_SENSE_BUFSIZE * scb_data->sense_left);
5847 sense_map = SLIST_FIRST(&scb_data->sense_maps);
5870 SLIST_INSERT_HEAD(&scb_data->sense_maps, sense_map, links);
5874 scb_data->sense_left = PAGE_SIZE / AHD_SENSE_BUFSIZE;
5882 scb_data->init_level++;
5884 newcount = MIN(scb_data->sense_left, scb_data->scbs_left);
5885 newcount = MIN(newcount, scb_data->sgs_left);
5886 newcount = MIN(newcount, (AHD_SCB_MAX_ALLOC - scb_data->numscbs));
5887 scb_data->sense_left -= newcount;
5888 scb_data->scbs_left -= newcount;
5889 scb_data->sgs_left -= newcount;
5944 next_scb->hscb->tag = ahd_htole16(scb_data->numscbs);
5945 col_tag = scb_data->numscbs ^ 0x100;
5956 scb_data->numscbs++;
5983 ahd->scb_data.maxhscbs);
6101 memset(&ahd->scb_data, 0, sizeof(struct scb_data));
7245 if (scbid >= ahd->scb_data.numscbs) {
7248 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
7305 if (scbid >= ahd->scb_data.numscbs) {
7308 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
8718 ahd->scb_data.numscbs, ahd_inw(ahd, CMDS_PENDING),
8744 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
8754 LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) {