Lines Matching defs:rstrm

134 	RECSTREAM *rstrm = (RECSTREAM *)mem_alloc(sizeof (RECSTREAM));
135 if (rstrm == NULL) {
146 rstrm->sendsize = sendsize = fix_buf_size(sendsize);
147 rstrm->recvsize = recvsize = fix_buf_size(recvsize);
148 rstrm->the_buffer = mem_alloc(sendsize + recvsize + BYTES_PER_XDR_UNIT);
149 if (rstrm->the_buffer == NULL) {
153 for (rstrm->out_base = rstrm->the_buffer;
154 (uintptr_t)rstrm->out_base % BYTES_PER_XDR_UNIT != 0;
155 rstrm->out_base++);
156 rstrm->in_base = rstrm->out_base + sendsize;
161 xdrs->x_private = (caddr_t)rstrm;
162 rstrm->tcp_handle = tcp_handle;
163 rstrm->readit = readit;
164 rstrm->writeit = writeit;
165 rstrm->out_finger = rstrm->out_boundry = rstrm->out_base;
166 rstrm->frag_header = (uint32_t *)rstrm->out_base;
167 rstrm->out_finger += sizeof (uint_t);
168 rstrm->out_boundry += sendsize;
169 rstrm->frag_sent = FALSE;
170 rstrm->in_size = recvsize;
171 rstrm->in_boundry = rstrm->in_base;
172 rstrm->in_finger = (rstrm->in_boundry += recvsize);
173 rstrm->fbtbc = 0;
174 rstrm->last_frag = TRUE;
187 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
188 int32_t *bufip = (int32_t *)(rstrm->in_finger);
192 if ((rstrm->fbtbc >= sizeof (int32_t)) &&
193 (((ptrdiff_t)rstrm->in_boundry
196 rstrm->fbtbc -= sizeof (int32_t);
197 rstrm->in_finger += sizeof (int32_t);
209 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
210 int32_t *dest_ip = ((int32_t *)(rstrm->out_finger));
212 if ((rstrm->out_finger += sizeof (int32_t)) > rstrm->out_boundry) {
217 rstrm->out_finger -= sizeof (int32_t);
218 rstrm->frag_sent = TRUE;
219 if (! flush_out(rstrm, FALSE))
221 dest_ip = ((int32_t *)(rstrm->out_finger));
222 rstrm->out_finger += sizeof (int32_t);
237 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
242 current = frag_len = rstrm->fbtbc;
244 if (rstrm->last_frag)
246 if (!set_input_fragment(rstrm))
252 if (!get_input_bytes(rstrm, addr, frag_len, current))
255 rstrm->fbtbc -= current;
264 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
268 current = rstrm->out_boundry - rstrm->out_finger;
270 bcopy(addr, rstrm->out_finger, current);
271 rstrm->out_finger += current;
274 if (rstrm->out_finger == rstrm->out_boundry) {
275 rstrm->frag_sent = TRUE;
276 if (! flush_out(rstrm, FALSE))
286 RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
289 pos = lseek((int)(intptr_t)rstrm->tcp_handle, 0, 1);
294 pos += rstrm->out_finger - rstrm->out_base;
298 pos -= rstrm->in_boundry - rstrm->in_finger;
311 RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
320 newpos = rstrm->out_finger - delta;
321 if ((newpos > (caddr_t)(rstrm->frag_header)) &&
322 (newpos < rstrm->out_boundry)) {
323 rstrm->out_finger = newpos;
329 newpos = rstrm->in_finger - delta;
330 if ((delta < (int)(rstrm->fbtbc)) &&
331 (newpos <= rstrm->in_boundry) &&
332 (newpos >= rstrm->in_base)) {
333 rstrm->in_finger = newpos;
334 rstrm->fbtbc -= delta;
345 RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
351 if ((rstrm->out_finger + len) <= rstrm->out_boundry) {
352 buf = (int32_t *)rstrm->out_finger;
353 rstrm->out_finger += len;
358 if ((len <= rstrm->fbtbc) &&
359 ((rstrm->in_finger + len) <= rstrm->in_boundry)) {
360 buf = (int32_t *)rstrm->in_finger;
361 rstrm->fbtbc -= len;
362 rstrm->in_finger += len;
372 RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
374 mem_free(rstrm->the_buffer,
375 rstrm->sendsize + rstrm->recvsize + BYTES_PER_XDR_UNIT);
376 mem_free((caddr_t)rstrm, sizeof (RECSTREAM));
391 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
393 while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) {
394 if (! skip_input_bytes(rstrm, rstrm->fbtbc))
396 rstrm->fbtbc = 0;
397 if ((! rstrm->last_frag) && (! set_input_fragment(rstrm)))
400 rstrm->last_frag = FALSE;
413 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
415 while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) {
416 if (! skip_input_bytes(rstrm, rstrm->fbtbc))
418 rstrm->fbtbc = 0;
419 if ((! rstrm->last_frag) && (! set_input_fragment(rstrm)))
422 if (rstrm->in_finger == rstrm->in_boundry)
437 RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
440 if (sendnow || rstrm->frag_sent ||
441 ((ptrdiff_t)rstrm->out_finger + sizeof (uint32_t)
442 >= (ptrdiff_t)rstrm->out_boundry)) {
443 rstrm->frag_sent = FALSE;
444 return (flush_out(rstrm, TRUE));
446 len = (ptrdiff_t)rstrm->out_finger - (ptrdiff_t)rstrm->frag_header;
448 *(rstrm->frag_header) = htonl((uint32_t)len | LAST_FRAG);
449 rstrm->frag_header = (uint32_t *)rstrm->out_finger;
450 rstrm->out_finger += sizeof (uint32_t);
459 flush_out(RECSTREAM *rstrm, bool_t eor)
464 len = (ptrdiff_t)rstrm->out_finger - (ptrdiff_t)rstrm->frag_header;
467 *(rstrm->frag_header) = htonl(len | eormask);
468 len = rstrm->out_finger - rstrm->out_base;
469 if ((*(rstrm->writeit))(rstrm->tcp_handle, rstrm->out_base, (int)len)
473 rstrm->frag_header = (uint32_t *)rstrm->out_base;
474 rstrm->out_finger = (caddr_t)rstrm->out_base + sizeof (uint32_t);
479 fill_input_buf(RECSTREAM *rstrm, int frag_len)
485 where = rstrm->in_base;
486 i = (uintptr_t)rstrm->in_boundry % BYTES_PER_XDR_UNIT;
488 len = (frag_len < (rstrm->in_size - i)) ? frag_len :
489 rstrm->in_size - i;
493 if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1)
495 rstrm->in_finger = where;
497 rstrm->in_boundry = where;
502 get_input_bytes(RECSTREAM *rstrm, caddr_t addr, int frag_len, int len)
507 current = rstrm->in_boundry - rstrm->in_finger;
520 if (! fill_input_buf(rstrm, frag_len))
526 bcopy(rstrm->in_finger, addr, current);
527 rstrm->in_finger += current;
535 set_input_fragment(RECSTREAM *rstrm)
539 if (! get_input_bytes(rstrm, (caddr_t)&header, 0, sizeof (header)))
542 rstrm->last_frag = ((header & LAST_FRAG) == 0) ? FALSE : TRUE;
543 rstrm->fbtbc = header & (~LAST_FRAG);
546 rstrm->fbtbc, rstrm->last_frag ? "TRUE" : "FALSE");
552 skip_input_bytes(RECSTREAM *rstrm, int32_t cnt)
559 current = rstrm->in_boundry - rstrm->in_finger;
561 if (! fill_input_buf(rstrm, cnt))
566 rstrm->in_finger += current;