Lines Matching defs:scb_data
5585 for (i = 0; i < ahd->scb_data.maxhscbs; i++) {
5599 struct scb_data *scb_data;
5602 scb_data = &ahd->scb_data;
5603 TAILQ_INIT(&scb_data->free_scbs);
5604 SLIST_INIT(&scb_data->hscb_maps);
5605 SLIST_INIT(&scb_data->sg_maps);
5606 SLIST_INIT(&scb_data->sense_maps);
5611 scb_data->maxhscbs = ahd_probe_scbs(ahd);
5612 if (scb_data->maxhscbs == 0) {
5631 i = scb_data->numscbs;
5633 } while ((i != scb_data->numscbs) &&
5634 (scb_data->numscbs < AHD_SCB_MAX_ALLOC));
5636 if (scb_data->numscbs != AHD_SCB_MAX_ALLOC) {
5669 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, next) {
5680 struct scb_data *scb_data;
5682 scb_data = &ahd->scb_data;
5683 if (scb_data == NULL)
5686 switch (scb_data->init_level) {
5692 while ((sns_map = SLIST_FIRST(&scb_data->sense_maps)) != NULL) {
5693 SLIST_REMOVE_HEAD(&scb_data->sense_maps, links);
5703 while ((sg_map = SLIST_FIRST(&scb_data->sg_maps)) != NULL) {
5704 SLIST_REMOVE_HEAD(&scb_data->sg_maps, links);
5714 while ((hscb_map = SLIST_FIRST(&scb_data->hscb_maps)) != NULL) {
5715 SLIST_REMOVE_HEAD(&scb_data->hscb_maps, links);
5788 scb = TAILQ_FIRST(&ahd->scb_data.free_scbs);
5790 TAILQ_REMOVE(&ahd->scb_data.free_scbs, scb, next);
5810 ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = NULL;
5813 TAILQ_INSERT_HEAD(&ahd->scb_data.free_scbs, scb, next);
5821 struct scb_data *scb_data;
5835 scb_data = &ahd->scb_data;
5836 if (scb_data->numscbs >= AHD_SCB_MAX_ALLOC)
5840 KASSERT(scb_data->scbs_left >= 0);
5841 if (scb_data->scbs_left != 0) {
5844 offset = (PAGE_SIZE / sizeof(*hscb)) - scb_data->scbs_left;
5845 hscb_map = SLIST_FIRST(&scb_data->hscb_maps);
5861 SLIST_INSERT_HEAD(&scb_data->hscb_maps, hscb_map, links);
5865 scb_data->scbs_left = PAGE_SIZE / sizeof(*hscb);
5868 scb_data->init_level++;
5870 if (scb_data->sgs_left != 0) {
5874 - scb_data->sgs_left) * ahd_sglist_size(ahd);
5875 sg_map = SLIST_FIRST(&scb_data->sg_maps);
5891 SLIST_INSERT_HEAD(&scb_data->sg_maps, sg_map, links);
5895 scb_data->sgs_left =
5903 scb_data->init_level++;
5905 if (scb_data->sense_left != 0) {
5908 offset = PAGE_SIZE - (AHD_SENSE_BUFSIZE * scb_data->sense_left);
5909 sense_map = SLIST_FIRST(&scb_data->sense_maps);
5925 SLIST_INSERT_HEAD(&scb_data->sense_maps, sense_map, links);
5929 scb_data->sense_left = PAGE_SIZE / AHD_SENSE_BUFSIZE;
5936 scb_data->init_level++;
5938 newcount = MIN(scb_data->sense_left, scb_data->scbs_left);
5939 newcount = MIN(newcount, scb_data->sgs_left);
5940 newcount = MIN(newcount, (AHD_SCB_MAX_ALLOC - scb_data->numscbs));
5941 scb_data->sense_left -= newcount;
5942 scb_data->scbs_left -= newcount;
5943 scb_data->sgs_left -= newcount;
5985 next_scb->hscb->tag = aic_htole16(scb_data->numscbs);
5993 scb_data->numscbs++;
6003 ahd->channel, ahd->bus_description, ahd->scb_data.maxhscbs);
7217 if (scbid >= ahd->scb_data.numscbs) {
7220 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
7343 if (scbid >= ahd->scb_data.numscbs) {
7346 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
8746 ahd->scb_data.numscbs, ahd_inw(ahd, CMDS_PENDING),
8772 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, next) {
10440 scb = ahd->scb_data.scbindex[tag];
10480 ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = scb;