camq
camq_resize(struct camq *queue, int new_size)
camq_insert(struct camq *queue, cam_pinfo *new_entry)
camq_remove(struct camq *queue, int index)
camq_change_priority(struct camq *queue, int index, u_int32_t new_priority)
cam_devq_resize(struct cam_devq *camq, int devices)
retval = camq_resize(&camq->alloc_queue, devices);
retval = camq_resize(&camq->send_queue, devices);
struct camq *
struct camq *camq;
camq = kmalloc(sizeof(*camq), M_CAMQ, M_INTWAIT);
camq_init(camq, size);
return (camq);
camq_init(struct camq *camq, int size)
bzero(camq, sizeof(*camq));
camq->array_size = size;
if (camq->array_size != 0) {
camq->queue_array = kmalloc(size * sizeof(cam_pinfo *),
camq->queue_array--;
camq_free(struct camq *queue)
camq_fini(struct camq *queue)
struct camq *camq_alloc(int size);
u_int32_t camq_resize(struct camq *queue, int new_size);
int camq_init(struct camq *camq, int size);
void camq_free(struct camq *queue);
void camq_fini(struct camq *queue);
void camq_insert(struct camq *queue, cam_pinfo *new_entry);
cam_pinfo *camq_remove(struct camq *queue, int index);
#define CAMQ_GET_HEAD(camq) ((camq)->queue_array[CAMQ_HEAD])
void camq_change_priority(struct camq *queue, int index,
struct camq queue;
struct camq alloc_queue;
struct camq send_queue;
u_int32_t cam_devq_resize(struct cam_devq *camq, int openings);
struct camq drvq; /*
xpt_schedule_dev(struct camq *queue, cam_pinfo *pinfo,
struct camq *drvq;
struct camq *sendq;
static int xpt_schedule_dev(struct camq *queue, cam_pinfo *dev_pinfo,
struct camq devq;