Lines Matching refs:mb
60 smb_msgbuf_used(smb_msgbuf_t *mb) in smb_msgbuf_used() argument
63 return (mb->scan - mb->base); in smb_msgbuf_used()
70 smb_msgbuf_size(smb_msgbuf_t *mb) in smb_msgbuf_size() argument
72 return (mb->max); in smb_msgbuf_size()
76 smb_msgbuf_base(smb_msgbuf_t *mb) in smb_msgbuf_base() argument
78 return (mb->base); in smb_msgbuf_base()
85 smb_msgbuf_word_align(smb_msgbuf_t *mb) in smb_msgbuf_word_align() argument
87 mb->scan = (uint8_t *)((uintptr_t)(mb->scan + 1) & ~1); in smb_msgbuf_word_align()
94 smb_msgbuf_dword_align(smb_msgbuf_t *mb) in smb_msgbuf_dword_align() argument
96 mb->scan = (uint8_t *)((uintptr_t)(mb->scan + 3) & ~3); in smb_msgbuf_dword_align()
104 smb_msgbuf_has_space(smb_msgbuf_t *mb, size_t size) in smb_msgbuf_has_space() argument
106 if (size > mb->max || (mb->scan + size) > mb->end) in smb_msgbuf_has_space()
116 smb_msgbuf_fset(smb_msgbuf_t *mb, uint32_t flags) in smb_msgbuf_fset() argument
118 mb->flags |= flags; in smb_msgbuf_fset()
125 smb_msgbuf_fclear(smb_msgbuf_t *mb, uint32_t flags) in smb_msgbuf_fclear() argument
127 mb->flags &= ~flags; in smb_msgbuf_fclear()
141 smb_msgbuf_init(smb_msgbuf_t *mb, uint8_t *buf, size_t size, uint32_t flags) in smb_msgbuf_init() argument
143 mb->scan = mb->base = buf; in smb_msgbuf_init()
144 mb->max = mb->count = size; in smb_msgbuf_init()
145 mb->end = &buf[size]; in smb_msgbuf_init()
146 mb->flags = flags; in smb_msgbuf_init()
147 mb->mlist.next = 0; in smb_msgbuf_init()
157 smb_msgbuf_term(smb_msgbuf_t *mb) in smb_msgbuf_term() argument
159 smb_msgbuf_mlist_t *item = mb->mlist.next; in smb_msgbuf_term()
184 smb_msgbuf_decode(smb_msgbuf_t *mb, char *fmt, ...) in smb_msgbuf_decode() argument
191 orig_scan = mb->scan; in smb_msgbuf_decode()
192 rc = buf_decode(mb, fmt, ap); in smb_msgbuf_decode()
197 mb->scan = orig_scan; in smb_msgbuf_decode()
202 return (mb->scan - orig_scan); in smb_msgbuf_decode()
214 buf_decode(smb_msgbuf_t *mb, char *fmt, va_list ap) in buf_decode() argument
261 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
264 mb->scan += repc; in buf_decode()
268 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
272 bcopy(mb->scan, bvalp, repc); in buf_decode()
273 mb->scan += repc; in buf_decode()
277 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
282 *bvalp++ = *mb->scan++; in buf_decode()
287 rc = smb_msgbuf_has_space(mb, repc * sizeof (uint16_t)); in buf_decode()
293 *wvalp++ = LE_IN16(mb->scan); in buf_decode()
294 mb->scan += sizeof (uint16_t); in buf_decode()
299 rc = smb_msgbuf_has_space(mb, repc * sizeof (int32_t)); in buf_decode()
305 *lvalp++ = LE_IN32(mb->scan); in buf_decode()
306 mb->scan += sizeof (int32_t); in buf_decode()
311 rc = smb_msgbuf_has_space(mb, repc * sizeof (int64_t)); in buf_decode()
317 *llvalp++ = LE_IN64(mb->scan); in buf_decode()
318 mb->scan += sizeof (int64_t); in buf_decode()
323 if (mb->flags & SMB_MSGBUF_UNICODE) in buf_decode()
329 repc = strlen((const char *)mb->scan) + 1; in buf_decode()
330 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
332 if ((cvalp = smb_msgbuf_malloc(mb, repc * 2)) == 0) in buf_decode()
338 wchar = *mb->scan++; in buf_decode()
347 mb->scan += repc; in buf_decode()
358 smb_msgbuf_word_align(mb); in buf_decode()
363 uint8_t *tmp_scan = mb->scan; in buf_decode()
370 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_decode()
376 if ((cvalp = smb_msgbuf_malloc(mb, repc * 2)) == 0) in buf_decode()
385 wchar = LE_IN16(mb->scan); in buf_decode()
386 mb->scan += 2; in buf_decode()
395 mb->scan += repc; in buf_decode()
399 if (smb_msgbuf_has_space(mb, 4) == 0) in buf_decode()
402 if (mb->scan[0] != 0xFF || in buf_decode()
403 mb->scan[1] != 'S' || in buf_decode()
404 mb->scan[2] != 'M' || in buf_decode()
405 mb->scan[3] != 'B') { in buf_decode()
408 mb->scan += 4; in buf_decode()
430 smb_msgbuf_encode(smb_msgbuf_t *mb, char *fmt, ...) in smb_msgbuf_encode() argument
437 orig_scan = mb->scan; in smb_msgbuf_encode()
438 rc = buf_encode(mb, fmt, ap); in smb_msgbuf_encode()
443 mb->scan = orig_scan; in smb_msgbuf_encode()
448 return (mb->scan - orig_scan); in smb_msgbuf_encode()
460 buf_encode(smb_msgbuf_t *mb, char *fmt, va_list ap) in buf_encode() argument
507 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
511 *mb->scan++ = 0; in buf_encode()
515 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
519 bcopy(bvalp, mb->scan, repc); in buf_encode()
520 mb->scan += repc; in buf_encode()
524 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
529 *mb->scan++ = cval; in buf_encode()
534 rc = smb_msgbuf_has_space(mb, repc * sizeof (uint16_t)); in buf_encode()
540 LE_OUT16(mb->scan, wval); in buf_encode()
541 mb->scan += sizeof (uint16_t); in buf_encode()
546 rc = smb_msgbuf_has_space(mb, repc * sizeof (int32_t)); in buf_encode()
552 LE_OUT32(mb->scan, lval); in buf_encode()
553 mb->scan += sizeof (int32_t); in buf_encode()
558 rc = smb_msgbuf_has_space(mb, repc * sizeof (int64_t)); in buf_encode()
564 LE_OUT64(mb->scan, llval); in buf_encode()
565 mb->scan += sizeof (uint64_t); in buf_encode()
570 if (mb->flags & SMB_MSGBUF_UNICODE) in buf_encode()
580 if (!(mb->flags & SMB_MSGBUF_NOTERM)) in buf_encode()
583 if (smb_msgbuf_has_space(mb, repc) == 0) in buf_encode()
593 *mb->scan++ = (uint8_t)wchar; in buf_encode()
596 *mb->scan++ = wchar >> 8; in buf_encode()
601 (mb->flags & SMB_MSGBUF_NOTERM) == 0) { in buf_encode()
602 *mb->scan++ = 0; in buf_encode()
606 *mb->scan++ = 0; in buf_encode()
616 smb_msgbuf_word_align(mb); in buf_encode()
620 if (!(mb->flags & SMB_MSGBUF_NOTERM)) in buf_encode()
623 if (!smb_msgbuf_has_space(mb, repc)) in buf_encode()
634 LE_OUT16(mb->scan, wchar); in buf_encode()
635 mb->scan += 2; in buf_encode()
639 (mb->flags & SMB_MSGBUF_NOTERM) == 0) { in buf_encode()
640 LE_OUT16(mb->scan, 0); in buf_encode()
641 mb->scan += 2; in buf_encode()
645 *mb->scan++ = 0; in buf_encode()
651 if (smb_msgbuf_has_space(mb, 4) == 0) in buf_encode()
654 *mb->scan++ = 0xFF; in buf_encode()
655 *mb->scan++ = 'S'; in buf_encode()
656 *mb->scan++ = 'M'; in buf_encode()
657 *mb->scan++ = 'B'; in buf_encode()
677 smb_msgbuf_malloc(smb_msgbuf_t *mb, size_t size) in smb_msgbuf_malloc() argument
689 item->next = mb->mlist.next; in smb_msgbuf_malloc()
691 mb->mlist.next = item; in smb_msgbuf_malloc()