Example #1
0
static HIF_SCATTER_REQ *DevAllocScatterReq(HIF_DEVICE *Context)
{
    DL_LIST *pItem;
    AR6K_DEVICE *pDev = (AR6K_DEVICE *)Context;
    LOCK_AR6K(pDev);
    pItem = DL_ListRemoveItemFromHead(&pDev->ScatterReqHead);
    UNLOCK_AR6K(pDev);
    if (pItem != NULL) {
        return A_CONTAINING_STRUCT(pItem, HIF_SCATTER_REQ, ListLink);
    }
    return NULL;
}
Example #2
0
static struct hif_scatter_req *DevAllocScatterReq(struct hif_device *Context)
{
    struct dl_list *pItem;
    struct ar6k_device *pDev = (struct ar6k_device *)Context;
    LOCK_AR6K(pDev);
    pItem = DL_ListRemoveItemFromHead(&pDev->ScatterReqHead);
    UNLOCK_AR6K(pDev);
    if (pItem != NULL) {
        return A_CONTAINING_STRUCT(pItem, struct hif_scatter_req, ListLink);
    }
    return NULL;
}
Example #3
0
static HIF_URB_CONTEXT *usb_hif_dequeue_pending_transfer(HIF_USB_PIPE *pipe)
{
	HIF_URB_CONTEXT *urb_context = NULL;
	DL_LIST *item;
	unsigned long flags;

	spin_lock_irqsave(&pipe->device->cs_lock, flags);
	item = DL_ListRemoveItemFromHead(&pipe->urb_pending_list);
	if (item != NULL)
		urb_context = A_CONTAINING_STRUCT(item, HIF_URB_CONTEXT, link);
	spin_unlock_irqrestore(&pipe->device->cs_lock, flags);

	return urb_context;
}
Example #4
0
static void CleanListItems(DL_LIST  *pListHead)
{
    DL_LIST                 *pListItem;
    BT_CONTROL_ACTION_ITEM  *pControlItem;

    while (1) {
        pListItem = DL_ListRemoveItemFromHead(pListHead);
        if (NULL == pListItem) {
            break;
        }
        pControlItem = A_CONTAINING_STRUCT(pListItem, BT_CONTROL_ACTION_ITEM, ListEntry);
            /* free it */
        A_FREE(pControlItem);
    }
}
Example #5
0
static HIF_SCATTER_REQ *AllocScatterReq(HIF_DEVICE *device) 
{
    DL_LIST *pItem; 
    
    CriticalSectionAcquire(&lock);
    
    pItem = DL_ListRemoveItemFromHead(&device->ScatterReqHead);
    
    CriticalSectionRelease(&lock);
    
    if (pItem != NULL) {
        return A_CONTAINING_STRUCT(pItem, HIF_SCATTER_REQ, ListLink);
    }
    
    return NULL;   
}
Example #6
0
HIF_URB_CONTEXT *usb_hif_alloc_urb_from_pipe(HIF_USB_PIPE *pipe)
{
	HIF_URB_CONTEXT *urb_context = NULL;
	DL_LIST *item;
	unsigned long flags;

	spin_lock_irqsave(&pipe->device->cs_lock, flags);
	item = DL_ListRemoveItemFromHead(&pipe->urb_list_head);
	if (item != NULL) {
		urb_context = A_CONTAINING_STRUCT(item, HIF_URB_CONTEXT, link);
		pipe->urb_cnt--;
	}
	spin_unlock_irqrestore(&pipe->device->cs_lock, flags);

	return urb_context;
}
Example #7
0
static HIF_SCATTER_REQ *AllocScatterReq(HIF_DEVICE *device) 
{
    DL_LIST       *pItem; 
    unsigned long flag;

    spin_lock_irqsave(&device->lock, flag);
    
    pItem = DL_ListRemoveItemFromHead(&device->ScatterReqHead);
    
    spin_unlock_irqrestore(&device->lock, flag);
    
    if (pItem != NULL) {
        return A_CONTAINING_STRUCT(pItem, HIF_SCATTER_REQ, ListLink);
    }
    
    return NULL;   
}
Example #8
0
static struct hif_scatter_req *AllocScatterReq(struct hif_device *device) 
{
    struct dl_list       *pItem; 
    unsigned long flag;

    spin_lock_irqsave(&device->lock, flag);
    
    pItem = DL_ListRemoveItemFromHead(&device->ScatterReqHead);
    
    spin_unlock_irqrestore(&device->lock, flag);
    
    if (pItem != NULL) {
        return A_CONTAINING_STRUCT(pItem, struct hif_scatter_req, ListLink);
    }
    
    return NULL;   
}