Lines Matching refs:rose

27 static int rose_create_facilities(unsigned char *buffer, struct rose_sock *rose);
46 struct rose_sock *rose = rose_sk(sk); in rose_frames_acked() local
51 if (rose->va != nr) { in rose_frames_acked()
52 while (skb_peek(&rose->ack_queue) != NULL && rose->va != nr) { in rose_frames_acked()
53 skb = skb_dequeue(&rose->ack_queue); in rose_frames_acked()
55 rose->va = (rose->va + 1) % ROSE_MODULUS; in rose_frames_acked()
84 struct rose_sock *rose = rose_sk(sk); in rose_validate_nr() local
85 unsigned short vc = rose->va; in rose_validate_nr()
87 while (vc != rose->vs) { in rose_validate_nr()
92 return nr == rose->vs; in rose_validate_nr()
101 struct rose_sock *rose = rose_sk(sk); in rose_write_internal() local
135 lci1 = (rose->lci >> 8) & 0x0F; in rose_write_internal()
136 lci2 = (rose->lci >> 0) & 0xFF; in rose_write_internal()
144 memcpy(dptr, &rose->dest_addr, ROSE_ADDR_LEN); in rose_write_internal()
146 memcpy(dptr, &rose->source_addr, ROSE_ADDR_LEN); in rose_write_internal()
148 faclen = rose_create_facilities(dptr, rose); in rose_write_internal()
165 *dptr++ = rose->cause; in rose_write_internal()
166 *dptr++ = rose->diagnostic; in rose_write_internal()
182 *dptr++ |= (rose->vr << 5) & 0xE0; in rose_write_internal()
198 rose_transmit_link(skb, rose->neighbour); in rose_write_internal()
435 static int rose_create_facilities(unsigned char *buffer, struct rose_sock *rose) in rose_create_facilities() argument
443 if (rose->rand != 0 || rose->source_ndigis == 1 || rose->dest_ndigis == 1) { in rose_create_facilities()
447 if (rose->rand != 0) { in rose_create_facilities()
449 *p++ = (rose->rand >> 8) & 0xFF; in rose_create_facilities()
450 *p++ = (rose->rand >> 0) & 0xFF; in rose_create_facilities()
454 if ((rose->source_ndigis > 0) || (rose->dest_ndigis > 0)) { in rose_create_facilities()
457 *p++ = AX25_ADDR_LEN * (rose->source_ndigis + rose->dest_ndigis); in rose_create_facilities()
458 for (nb = 0 ; nb < rose->source_ndigis ; nb++) { in rose_create_facilities()
461 memcpy(p, &rose->source_digis[nb], AX25_ADDR_LEN); in rose_create_facilities()
465 for (nb = 0 ; nb < rose->dest_ndigis ; nb++) { in rose_create_facilities()
468 memcpy(p, &rose->dest_digis[nb], AX25_ADDR_LEN); in rose_create_facilities()
475 if (rose->source_ndigis > 0) { in rose_create_facilities()
478 memcpy(p, &rose->source_digis[0], AX25_ADDR_LEN); in rose_create_facilities()
483 if (rose->dest_ndigis > 0) { in rose_create_facilities()
486 memcpy(p, &rose->dest_digis[0], AX25_ADDR_LEN); in rose_create_facilities()
496 callsign = ax2asc(buf, &rose->dest_call); in rose_create_facilities()
503 memcpy(p, &rose->dest_addr, ROSE_ADDR_LEN); in rose_create_facilities()
511 callsign = ax2asc(buf, &rose->source_call); in rose_create_facilities()
518 memcpy(p, &rose->source_addr, ROSE_ADDR_LEN); in rose_create_facilities()
532 struct rose_sock *rose = rose_sk(sk); in rose_disconnect() local
539 rose->lci = 0; in rose_disconnect()
540 rose->state = ROSE_STATE_0; in rose_disconnect()
543 rose->cause = cause; in rose_disconnect()
546 rose->diagnostic = diagnostic; in rose_disconnect()