FreeBSD/sys/dev/cxgb/cxgb_sge.c
/**
 *	t3_get_desc - dump an SGE descriptor for debugging purposes
 *	@qs: the queue set
 *	@qnum: identifies the specific queue (0..2: Tx, 3:response, 4..5: Rx)
 *	@idx: the descriptor index in the queue
 *	@data: where to dump the descriptor contents
 *
 *	Dumps the contents of a HW descriptor of an SGE queue.  Returns the
 *	size of the descriptor.
 */


Dumps the contents of a HW descriptor of an SGE queue.  Returns the
size of the descriptor.
Dumps the contents of a HW descriptor of an SGE queue . Returns the size of the descriptor .
int
t3_get_desc(const struct sge_qset *qs, unsigned int qnum, unsigned int idx,
		unsigned char *data)
{
	if (qnum >= 6)
		return (EINVAL);
	if (qnum < 3) {
		if (!qs->txq[qnum].desc || idx >= qs->txq[qnum].size)
			return -EINVAL;
		memcpy(data, &qs->txq[qnum].desc[idx], sizeof(struct tx_desc));
		return sizeof(struct tx_desc);
	}
	if (qnum == 3) {
		if (!qs->rspq.desc || idx >= qs->rspq.size)
			return (EINVAL);
		memcpy(data, &qs->rspq.desc[idx], sizeof(struct rsp_desc));
		return sizeof(struct rsp_desc);
	}
	qnum -= 4;
	if (!qs->fl[qnum].desc || idx >= qs->fl[qnum].size)
		return (EINVAL);
	memcpy(data, &qs->fl[qnum].desc[idx], sizeof(struct rx_desc));
	return sizeof(struct rx_desc);
}
int t3_get_desc ( const struct sge_qset * qs , unsigned int qnum , unsigned int idx , unsigned char * data ) { if ( qnum >= 6 ) return ( EINVAL ) ; if ( qnum < 3 ) { if ( ! qs -> txq [ qnum ] . desc || idx >= qs -> txq [ qnum ] . size ) return - EINVAL ; memcpy ( data , & qs -> txq [ qnum ] . desc [ idx ] , sizeof ( struct tx_desc ) ) ; return sizeof ( struct tx_desc ) ; } if ( qnum == 3 ) { if ( ! qs -> rspq . desc || idx >= qs -> rspq . size ) return ( EINVAL ) ; memcpy ( data , & qs -> rspq . desc [ idx ] , sizeof ( struct rsp_desc ) ) ; return sizeof ( struct rsp_desc ) ; } qnum -= 4 ; if ( ! qs -> fl [ qnum ] . desc || idx >= qs -> fl [ qnum ] . size ) return ( EINVAL ) ; memcpy ( data , & qs -> fl [ qnum ] . desc [ idx ] , sizeof ( struct rx_desc ) ) ; return sizeof ( struct rx_desc ) ; }
t3_get_desc - dump an SGE descriptor for debugging purposes
      @qs: the queue set
      @qnum: identifies the specific queue (0..2: Tx, 3:response, 4..5: Rx)
      @idx: the descriptor index in the queue
      @data: where to dump the descriptor contents
t3_get_desc - dump an SGE descriptor for debugging purposes @qs : the queue set @qnum : identifies the specific queue ( 0 .. 2 : Tx 3 : response 4 .. 5 : Rx ) @idx : the descriptor index in the queue @data : where to dump the descriptor contents