Lines Matching refs:mb

66 smb_msgbuf_used(smb_msgbuf_t *mb)  in smb_msgbuf_used()  argument
69 return (mb->scan - mb->base); in smb_msgbuf_used()
76 smb_msgbuf_size(smb_msgbuf_t *mb) in smb_msgbuf_size() argument
78 return (mb->max); in smb_msgbuf_size()
82 smb_msgbuf_base(smb_msgbuf_t *mb) in smb_msgbuf_base() argument
84 return (mb->base); in smb_msgbuf_base()
91 smb_msgbuf_word_align(smb_msgbuf_t *mb) in smb_msgbuf_word_align() argument
93 mb->scan = (uint8_t *)((uintptr_t)(mb->scan + 1) & ~1); in smb_msgbuf_word_align()
100 smb_msgbuf_dword_align(smb_msgbuf_t *mb) in smb_msgbuf_dword_align() argument
102 mb->scan = (uint8_t *)((uintptr_t)(mb->scan + 3) & ~3); in smb_msgbuf_dword_align()
110 smb_msgbuf_has_space(smb_msgbuf_t *mb, size_t size) in smb_msgbuf_has_space() argument
112 if (size > mb->max || (mb->scan + size) > mb->end) in smb_msgbuf_has_space()
122 smb_msgbuf_fset(smb_msgbuf_t *mb, uint32_t flags) in smb_msgbuf_fset() argument
124 mb->flags |= flags; in smb_msgbuf_fset()
131 smb_msgbuf_fclear(smb_msgbuf_t *mb, uint32_t flags) in smb_msgbuf_fclear() argument
133 mb->flags &= ~flags; in smb_msgbuf_fclear()
147 smb_msgbuf_init(smb_msgbuf_t *mb, uint8_t *buf, size_t size, uint32_t flags) in smb_msgbuf_init() argument
149 mb->scan = mb->base = buf; in smb_msgbuf_init()
150 mb->max = mb->count = size; in smb_msgbuf_init()
151 mb->end = &buf[size]; in smb_msgbuf_init()
152 mb->flags = flags; in smb_msgbuf_init()
153 mb->mlist.next = 0; in smb_msgbuf_init()
163 smb_msgbuf_term(smb_msgbuf_t *mb) in smb_msgbuf_term() argument
165 smb_msgbuf_mlist_t *item = mb->mlist.next; in smb_msgbuf_term()
190 smb_msgbuf_decode(smb_msgbuf_t *mb, char *fmt, ...) in smb_msgbuf_decode() argument
197 orig_scan = mb->scan; in smb_msgbuf_decode()
198 rc = buf_decode(mb, fmt, ap); in smb_msgbuf_decode()
203 mb->scan = orig_scan; in smb_msgbuf_decode()
208 return (mb->scan - orig_scan); in smb_msgbuf_decode()
220 buf_decode(smb_msgbuf_t *mb, char *fmt, va_list ap) in buf_decode() argument
264 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
267 mb->scan += repc; in buf_decode()
271 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
275 bcopy(mb->scan, bvalp, repc); in buf_decode()
276 mb->scan += repc; in buf_decode()
280 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
285 *bvalp++ = *mb->scan++; in buf_decode()
290 rc = smb_msgbuf_has_space(mb, repc * sizeof (uint16_t)); in buf_decode()
296 *wvalp++ = LE_IN16(mb->scan); in buf_decode()
297 mb->scan += sizeof (uint16_t); in buf_decode()
302 rc = smb_msgbuf_has_space(mb, repc * sizeof (int32_t)); in buf_decode()
308 *lvalp++ = LE_IN32(mb->scan); in buf_decode()
309 mb->scan += sizeof (int32_t); in buf_decode()
314 rc = smb_msgbuf_has_space(mb, repc * sizeof (int64_t)); in buf_decode()
320 *llvalp++ = LE_IN64(mb->scan); in buf_decode()
321 mb->scan += sizeof (int64_t); in buf_decode()
326 if (mb->flags & SMB_MSGBUF_UNICODE) in buf_decode()
334 rc = msgbuf_get_oem_string(mb, cvalpp, repc); in buf_decode()
344 rc = msgbuf_get_unicode_string(mb, cvalpp, repc); in buf_decode()
350 if (smb_msgbuf_has_space(mb, 4) == 0) in buf_decode()
353 if (mb->scan[0] != 0xFF || in buf_decode()
354 mb->scan[1] != 'S' || in buf_decode()
355 mb->scan[2] != 'M' || in buf_decode()
356 mb->scan[3] != 'B') { in buf_decode()
359 mb->scan += 4; in buf_decode()
379 msgbuf_get_oem_string(smb_msgbuf_t *mb, char **strpp, int max_bytes) in msgbuf_get_oem_string() argument
402 if ((mb->scan + datalen) >= mb->end) in msgbuf_get_oem_string()
405 if (mb->scan[datalen - 1] == 0) in msgbuf_get_oem_string()
415 oembuf = smb_msgbuf_malloc(mb, datalen + 1); in msgbuf_get_oem_string()
418 bcopy(mb->scan, oembuf, datalen); in msgbuf_get_oem_string()
419 mb->scan += datalen; in msgbuf_get_oem_string()
427 mbs = smb_msgbuf_malloc(mb, mbsmax + 1); in msgbuf_get_oem_string()
449 msgbuf_get_unicode_string(smb_msgbuf_t *mb, char **strpp, int max_bytes) in msgbuf_get_unicode_string() argument
464 smb_msgbuf_word_align(mb); in msgbuf_get_unicode_string()
477 if ((mb->scan + datalen) >= mb->end) in msgbuf_get_unicode_string()
480 if (mb->scan[datalen - 2] == 0 && in msgbuf_get_unicode_string()
481 mb->scan[datalen - 1] == 0) in msgbuf_get_unicode_string()
491 wcsbuf = smb_msgbuf_malloc(mb, datalen + 2); in msgbuf_get_unicode_string()
494 bcopy(mb->scan, wcsbuf, datalen); in msgbuf_get_unicode_string()
495 mb->scan += datalen; in msgbuf_get_unicode_string()
503 mbs = smb_msgbuf_malloc(mb, mbsmax + 1); in msgbuf_get_unicode_string()
526 smb_msgbuf_encode(smb_msgbuf_t *mb, char *fmt, ...) in smb_msgbuf_encode() argument
533 orig_scan = mb->scan; in smb_msgbuf_encode()
534 rc = buf_encode(mb, fmt, ap); in smb_msgbuf_encode()
539 mb->scan = orig_scan; in smb_msgbuf_encode()
544 return (mb->scan - orig_scan); in smb_msgbuf_encode()
556 buf_encode(smb_msgbuf_t *mb, char *fmt, va_list ap) in buf_encode() argument
601 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
605 *mb->scan++ = 0; in buf_encode()
609 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
613 bcopy(bvalp, mb->scan, repc); in buf_encode()
614 mb->scan += repc; in buf_encode()
618 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
623 *mb->scan++ = cval; in buf_encode()
628 rc = smb_msgbuf_has_space(mb, repc * sizeof (uint16_t)); in buf_encode()
634 LE_OUT16(mb->scan, wval); in buf_encode()
635 mb->scan += sizeof (uint16_t); in buf_encode()
640 rc = smb_msgbuf_has_space(mb, repc * sizeof (int32_t)); in buf_encode()
646 LE_OUT32(mb->scan, lval); in buf_encode()
647 mb->scan += sizeof (int32_t); in buf_encode()
652 rc = smb_msgbuf_has_space(mb, repc * sizeof (int64_t)); in buf_encode()
658 LE_OUT64(mb->scan, llval); in buf_encode()
659 mb->scan += sizeof (uint64_t); in buf_encode()
664 if (mb->flags & SMB_MSGBUF_UNICODE) in buf_encode()
672 rc = msgbuf_put_oem_string(mb, cvalp, repc); in buf_encode()
682 rc = msgbuf_put_unicode_string(mb, cvalp, repc); in buf_encode()
688 if (smb_msgbuf_has_space(mb, 4) == 0) in buf_encode()
691 *mb->scan++ = 0xFF; in buf_encode()
692 *mb->scan++ = 'S'; in buf_encode()
693 *mb->scan++ = 'M'; in buf_encode()
694 *mb->scan++ = 'B'; in buf_encode()
713 msgbuf_put_oem_string(smb_msgbuf_t *mb, char *mbs, int repc) in msgbuf_put_oem_string() argument
733 if ((mb->flags & SMB_MSGBUF_NOTERM) == 0) in msgbuf_put_oem_string()
741 oembuf = smb_msgbuf_malloc(mb, oemlen + 1); in msgbuf_put_oem_string()
757 if (smb_msgbuf_has_space(mb, 1) == 0) in msgbuf_put_oem_string()
759 *mb->scan++ = *s; in msgbuf_put_oem_string()
776 msgbuf_put_unicode_string(smb_msgbuf_t *mb, char *mbs, int repc) in msgbuf_put_unicode_string() argument
785 smb_msgbuf_word_align(mb); in msgbuf_put_unicode_string()
801 if ((mb->flags & SMB_MSGBUF_NOTERM) == 0) in msgbuf_put_unicode_string()
810 wcsbuf = smb_msgbuf_malloc(mb, wcsbytes + 2); in msgbuf_put_unicode_string()
827 if (smb_msgbuf_has_space(mb, sizeof (smb_wchar_t)) == 0) in msgbuf_put_unicode_string()
830 LE_OUT16(mb->scan, wchar); in msgbuf_put_unicode_string()
831 mb->scan += 2; in msgbuf_put_unicode_string()
837 if (smb_msgbuf_has_space(mb, 1) == 0) in msgbuf_put_unicode_string()
839 *mb->scan++ = '\0'; in msgbuf_put_unicode_string()
853 smb_msgbuf_malloc(smb_msgbuf_t *mb, size_t size) in smb_msgbuf_malloc() argument
865 item->next = mb->mlist.next; in smb_msgbuf_malloc()
867 mb->mlist.next = item; in smb_msgbuf_malloc()