Lines Matching refs:skb

52 int x25_output(struct sock *sk, struct sk_buff *skb)  in x25_output()  argument
57 int sent=0, noblock = X25_SKB_CB(skb)->flags & MSG_DONTWAIT; in x25_output()
63 if (skb->len - header_len > max_len) { in x25_output()
65 skb_copy_from_linear_data(skb, header, header_len); in x25_output()
66 skb_pull(skb, header_len); in x25_output()
68 frontlen = skb_headroom(skb); in x25_output()
70 while (skb->len > 0) { in x25_output()
77 kfree_skb(skb); in x25_output()
88 len = max_len > skb->len ? skb->len : max_len; in x25_output()
91 skb_copy_from_linear_data(skb, skb_put(skbn, len), len); in x25_output()
92 skb_pull(skb, len); in x25_output()
98 if (skb->len > 0) { in x25_output()
109 kfree_skb(skb); in x25_output()
111 skb_queue_tail(&sk->sk_write_queue, skb); in x25_output()
112 sent = skb->len - header_len; in x25_output()
121 static void x25_send_iframe(struct sock *sk, struct sk_buff *skb) in x25_send_iframe() argument
125 if (!skb) in x25_send_iframe()
129 skb->data[2] = (x25->vs << 1) & 0xFE; in x25_send_iframe()
130 skb->data[3] &= X25_EXT_M_BIT; in x25_send_iframe()
131 skb->data[3] |= (x25->vr << 1) & 0xFE; in x25_send_iframe()
133 skb->data[2] &= X25_STD_M_BIT; in x25_send_iframe()
134 skb->data[2] |= (x25->vs << 1) & 0x0E; in x25_send_iframe()
135 skb->data[2] |= (x25->vr << 5) & 0xE0; in x25_send_iframe()
138 x25_transmit_link(skb, x25->neighbour); in x25_send_iframe()
143 struct sk_buff *skb, *skbn; in x25_kick() local
157 skb = skb_dequeue(&x25->interrupt_out_queue); in x25_kick()
158 x25_transmit_link(skb, x25->neighbour); in x25_kick()
182 skb = skb_dequeue(&sk->sk_write_queue); in x25_kick()
185 if ((skbn = skb_clone(skb, GFP_ATOMIC)) == NULL) { in x25_kick()
186 skb_queue_head(&sk->sk_write_queue, skb); in x25_kick()
202 skb_queue_tail(&x25->ack_queue, skb); in x25_kick()
205 (skb = skb_dequeue(&sk->sk_write_queue)) != NULL); in x25_kick()