Lines Matching refs:mb

61 smb_msgbuf_used(smb_msgbuf_t *mb)  in smb_msgbuf_used()  argument
64 return (mb->scan - mb->base); in smb_msgbuf_used()
71 smb_msgbuf_size(smb_msgbuf_t *mb) in smb_msgbuf_size() argument
73 return (mb->max); in smb_msgbuf_size()
77 smb_msgbuf_base(smb_msgbuf_t *mb) in smb_msgbuf_base() argument
79 return (mb->base); in smb_msgbuf_base()
86 smb_msgbuf_word_align(smb_msgbuf_t *mb) in smb_msgbuf_word_align() argument
88 mb->scan = (uint8_t *)((uintptr_t)(mb->scan + 1) & ~1); in smb_msgbuf_word_align()
95 smb_msgbuf_dword_align(smb_msgbuf_t *mb) in smb_msgbuf_dword_align() argument
97 mb->scan = (uint8_t *)((uintptr_t)(mb->scan + 3) & ~3); in smb_msgbuf_dword_align()
105 smb_msgbuf_has_space(smb_msgbuf_t *mb, size_t size) in smb_msgbuf_has_space() argument
107 if (size > mb->max || (mb->scan + size) > mb->end) in smb_msgbuf_has_space()
117 smb_msgbuf_fset(smb_msgbuf_t *mb, uint32_t flags) in smb_msgbuf_fset() argument
119 mb->flags |= flags; in smb_msgbuf_fset()
126 smb_msgbuf_fclear(smb_msgbuf_t *mb, uint32_t flags) in smb_msgbuf_fclear() argument
128 mb->flags &= ~flags; in smb_msgbuf_fclear()
142 smb_msgbuf_init(smb_msgbuf_t *mb, uint8_t *buf, size_t size, uint32_t flags) in smb_msgbuf_init() argument
144 mb->scan = mb->base = buf; in smb_msgbuf_init()
145 mb->max = mb->count = size; in smb_msgbuf_init()
146 mb->end = &buf[size]; in smb_msgbuf_init()
147 mb->flags = flags; in smb_msgbuf_init()
148 mb->mlist.next = 0; in smb_msgbuf_init()
158 smb_msgbuf_term(smb_msgbuf_t *mb) in smb_msgbuf_term() argument
160 smb_msgbuf_mlist_t *item = mb->mlist.next; in smb_msgbuf_term()
185 smb_msgbuf_decode(smb_msgbuf_t *mb, char *fmt, ...) in smb_msgbuf_decode() argument
192 orig_scan = mb->scan; in smb_msgbuf_decode()
193 rc = buf_decode(mb, fmt, ap); in smb_msgbuf_decode()
198 mb->scan = orig_scan; in smb_msgbuf_decode()
203 return (mb->scan - orig_scan); in smb_msgbuf_decode()
215 buf_decode(smb_msgbuf_t *mb, char *fmt, va_list ap) in buf_decode() argument
257 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
260 mb->scan += repc; in buf_decode()
264 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
268 bcopy(mb->scan, cvalp, repc); in buf_decode()
269 mb->scan += repc; in buf_decode()
273 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
278 *cvalp++ = *mb->scan++; in buf_decode()
283 rc = smb_msgbuf_has_space(mb, repc * sizeof (uint16_t)); in buf_decode()
289 *wvalp++ = LE_IN16(mb->scan); in buf_decode()
290 mb->scan += sizeof (uint16_t); in buf_decode()
295 rc = smb_msgbuf_has_space(mb, repc * sizeof (int32_t)); in buf_decode()
301 *lvalp++ = LE_IN32(mb->scan); in buf_decode()
302 mb->scan += sizeof (int32_t); in buf_decode()
307 rc = smb_msgbuf_has_space(mb, repc * sizeof (int64_t)); in buf_decode()
313 *llvalp++ = LE_IN64(mb->scan); in buf_decode()
314 mb->scan += sizeof (int64_t); in buf_decode()
319 if (mb->flags & SMB_MSGBUF_UNICODE) in buf_decode()
324 ival = strlen((const char *)mb->scan) + 1; in buf_decode()
325 if (smb_msgbuf_has_space(mb, ival) == 0) in buf_decode()
328 if ((cvalp = smb_msgbuf_malloc(mb, ival * 2)) == 0) in buf_decode()
332 (char *)mb->scan, ival * 2)) == in buf_decode()
339 mb->scan += (ival+1); in buf_decode()
350 smb_msgbuf_word_align(mb); in buf_decode()
352 wcs = (smb_wchar_t *)mb->scan; in buf_decode()
359 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
363 if ((wcs = smb_msgbuf_malloc(mb, repc)) == 0) in buf_decode()
367 buf_decode_wcs(wcs, (smb_wchar_t *)mb->scan, in buf_decode()
371 if ((cvalp = smb_msgbuf_malloc(mb, repc * 2)) == 0) in buf_decode()
379 mb->scan += repc; in buf_decode()
383 if (smb_msgbuf_has_space(mb, 4) == 0) in buf_decode()
386 if (mb->scan[0] != 0xFF || in buf_decode()
387 mb->scan[1] != 'S' || in buf_decode()
388 mb->scan[2] != 'M' || in buf_decode()
389 mb->scan[3] != 'B') { in buf_decode()
392 mb->scan += 4; in buf_decode()
414 smb_msgbuf_encode(smb_msgbuf_t *mb, char *fmt, ...) in smb_msgbuf_encode() argument
421 orig_scan = mb->scan; in smb_msgbuf_encode()
422 rc = buf_encode(mb, fmt, ap); in smb_msgbuf_encode()
427 mb->scan = orig_scan; in smb_msgbuf_encode()
432 return (mb->scan - orig_scan); in smb_msgbuf_encode()
444 buf_encode(smb_msgbuf_t *mb, char *fmt, va_list ap) in buf_encode() argument
487 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
491 *mb->scan++ = 0; in buf_encode()
495 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
499 bcopy(cvalp, mb->scan, repc); in buf_encode()
500 mb->scan += repc; in buf_encode()
504 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
509 *mb->scan++ = cval; in buf_encode()
514 rc = smb_msgbuf_has_space(mb, repc * sizeof (uint16_t)); in buf_encode()
520 LE_OUT16(mb->scan, wval); in buf_encode()
521 mb->scan += sizeof (uint16_t); in buf_encode()
526 rc = smb_msgbuf_has_space(mb, repc * sizeof (int32_t)); in buf_encode()
532 LE_OUT32(mb->scan, lval); in buf_encode()
533 mb->scan += sizeof (int32_t); in buf_encode()
538 rc = smb_msgbuf_has_space(mb, repc * sizeof (int64_t)); in buf_encode()
544 LE_OUT64(mb->scan, llval); in buf_encode()
545 mb->scan += sizeof (uint64_t); in buf_encode()
550 if (mb->flags & SMB_MSGBUF_UNICODE) in buf_encode()
558 if (smb_msgbuf_has_space(mb, ival) == 0) in buf_encode()
562 smb_mbstos((char *)mb->scan, (const char *)cvalp); in buf_encode()
563 mb->scan += ival + 1; in buf_encode()
571 smb_msgbuf_word_align(mb); in buf_encode()
575 rc = smb_msgbuf_has_space(mb, in buf_encode()
597 LE_OUT16(mb->scan, wcval); in buf_encode()
605 if ((mb->flags & SMB_MSGBUF_NOTERM) == in buf_encode()
607 mb->scan += in buf_encode()
612 mb->scan += sizeof (smb_wchar_t); in buf_encode()
618 if (smb_msgbuf_has_space(mb, 4) == 0) in buf_encode()
621 *mb->scan++ = 0xFF; in buf_encode()
622 *mb->scan++ = 'S'; in buf_encode()
623 *mb->scan++ = 'M'; in buf_encode()
624 *mb->scan++ = 'B'; in buf_encode()
644 smb_msgbuf_malloc(smb_msgbuf_t *mb, size_t size) in smb_msgbuf_malloc() argument
656 item->next = mb->mlist.next; in smb_msgbuf_malloc()
658 mb->mlist.next = item; in smb_msgbuf_malloc()