Lines Matching refs:rxdp
100 static inline int RXD_IS_UP2DT(struct RxD_t *rxdp)
104 ret = ((!(rxdp->Control_1 & RXD_OWN_XENA)) &&
105 (GET_RXD_MARKER(rxdp->Control_2) != THE_RXD_MARK));
2457 struct RxD_t *rxdp;
2477 rxdp = ring->rx_blocks[block_no].rxds[off].virt_addr;
2481 (rxdp->Host_Control)) {
2494 rxdp = ring->rx_blocks[block_no].block_virt_addr;
2496 ring->dev->name, rxdp);
2500 if ((rxdp->Control_1 & RXD_OWN_XENA) &&
2502 (rxdp->Control_2 & s2BIT(0)))) {
2532 rxdp1 = (struct RxD1 *)rxdp;
2533 memset(rxdp, 0, sizeof(struct RxD1));
2542 rxdp->Control_2 =
2544 rxdp->Host_Control = (unsigned long)skb;
2552 rxdp3 = (struct RxD3 *)rxdp;
2556 memset(rxdp, 0, sizeof(struct RxD3));
2582 rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
2615 rxdp->Control_2 |= SET_BUFFER1_SIZE_3(1);
2616 rxdp->Control_2 |= SET_BUFFER2_SIZE_3
2619 rxdp->Control_2 |= s2BIT(0);
2620 rxdp->Host_Control = (unsigned long) (skb);
2623 rxdp->Control_1 |= RXD_OWN_XENA;
2629 rxdp->Control_2 |= SET_RXD_MARKER;
2635 first_rxdp = rxdp;
2665 struct RxD_t *rxdp;
2673 rxdp = mac_control->rings[ring_no].
2675 skb = (struct sk_buff *)((unsigned long)rxdp->Host_Control);
2679 rxdp1 = (struct RxD1 *)rxdp;
2686 memset(rxdp, 0, sizeof(struct RxD1));
2688 rxdp3 = (struct RxD3 *)rxdp;
2698 memset(rxdp, 0, sizeof(struct RxD3));
2893 struct RxD_t *rxdp;
2907 rxdp = ring_data->rx_blocks[get_block].rxds[get_info.offset].virt_addr;
2909 while (RXD_IS_UP2DT(rxdp)) {
2920 skb = (struct sk_buff *)((unsigned long)rxdp->Host_Control);
2927 rxdp1 = (struct RxD1 *)rxdp;
2936 rxdp3 = (struct RxD3 *)rxdp;
2945 rx_osm_handler(ring_data, rxdp);
2948 rxdp = ring_data->rx_blocks[get_block].
2957 rxdp = ring_data->rx_blocks[get_block].block_virt_addr;
6743 static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
6751 if ((sp->rxd_mode == RXD_MODE_1) && (rxdp->Host_Control == 0)) {
6752 struct RxD1 *rxdp1 = (struct RxD1 *)rxdp;
6782 rxdp->Host_Control = (unsigned long) (*skb);
6784 } else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) {
6785 struct RxD3 *rxdp3 = (struct RxD3 *)rxdp;
6817 rxdp->Host_Control = (unsigned long) (*skb);
6844 static void set_rxd_buffer_size(struct s2io_nic *sp, struct RxD_t *rxdp,
6849 rxdp->Control_2 = SET_BUFFER0_SIZE_1(size - NET_IP_ALIGN);
6851 rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
6852 rxdp->Control_2 |= SET_BUFFER1_SIZE_3(1);
6853 rxdp->Control_2 |= SET_BUFFER2_SIZE_3(dev->mtu + 4);
6863 struct RxD_t *rxdp = NULL;
6884 rxdp = ring->rx_blocks[j].rxds[k].virt_addr;
6887 if (set_rxd_buffer_pointer(sp, rxdp, ba, &skb,
6895 set_rxd_buffer_size(sp, rxdp, size);
6898 rxdp->Control_1 |= RXD_OWN_XENA;
7267 * @rxdp: descriptor
7278 static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
7283 ((unsigned long)rxdp->Host_Control);
7286 unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
7351 rxdp->Host_Control = 0;
7356 rxdp->Host_Control = 0;
7358 int len = RXD_GET_BUFFER0_SIZE_1(rxdp->Control_2);
7364 int buf0_len = RXD_GET_BUFFER0_SIZE_3(rxdp->Control_2);
7365 int buf2_len = RXD_GET_BUFFER2_SIZE_3(rxdp->Control_2);
7372 if ((rxdp->Control_1 & TCP_OR_UDP_FRAME) &&
7374 (!(rxdp->Control_1 & RXD_FRAME_IP_FRAG))) &&
7376 l3_csum = RXD_GET_L3_CKSUM(rxdp->Control_1);
7377 l4_csum = RXD_GET_L4_CKSUM(rxdp->Control_1);
7393 rxdp, sp);
7442 queue_rx_frame(skb, RXD_GET_VLAN_TAG(rxdp->Control_2));
8165 struct tcphdr **tcp, struct RxD_t *rxdp,
8169 u8 l2_type = (u8)((rxdp->Control_1 >> 37) & 0x7), ip_len;
8171 if (!(rxdp->Control_1 & RXD_FRAME_PROTO_TCP)) {
8186 (rxdp->Control_1 & RXD_FRAME_VLAN_TAG))
8357 struct RxD_t *rxdp, struct s2io_nic *sp)
8366 rxdp, sp);
8372 vlan_tag = RXD_GET_VLAN_TAG(rxdp->Control_2);