17d1ffc32SGordon Ross /*
27d1ffc32SGordon Ross * This file and its contents are supplied under the terms of the
37d1ffc32SGordon Ross * Common Development and Distribution License ("CDDL"), version 1.0.
47d1ffc32SGordon Ross * You may only use this file in accordance with the terms of version
57d1ffc32SGordon Ross * 1.0 of the CDDL.
67d1ffc32SGordon Ross *
77d1ffc32SGordon Ross * A full copy of the text of the CDDL should have accompanied this
87d1ffc32SGordon Ross * source. A copy of the CDDL is also available via the Internet at
97d1ffc32SGordon Ross * http://www.illumos.org/license/CDDL.
107d1ffc32SGordon Ross */
117d1ffc32SGordon Ross
127d1ffc32SGordon Ross /*
137d1ffc32SGordon Ross * Copyright 2018 Nexenta Systems, Inc. All rights reserved.
14*da90d5b8SJohn Levon * Copyright 2019 Joyent, Inc.
157d1ffc32SGordon Ross */
167d1ffc32SGordon Ross
177d1ffc32SGordon Ross /*
187d1ffc32SGordon Ross * Test & debug program for smb_msgbuf.c and smb_mbuf_marshaling.c
197d1ffc32SGordon Ross */
207d1ffc32SGordon Ross
217d1ffc32SGordon Ross #include <sys/types.h>
227d1ffc32SGordon Ross #include <sys/debug.h>
237d1ffc32SGordon Ross
247d1ffc32SGordon Ross #include <stdio.h>
257d1ffc32SGordon Ross #include <stdlib.h>
267d1ffc32SGordon Ross #include <string.h>
277d1ffc32SGordon Ross #include <strings.h>
287d1ffc32SGordon Ross #include <unistd.h>
297d1ffc32SGordon Ross
307d1ffc32SGordon Ross #include "test_defs.h"
317d1ffc32SGordon Ross
327d1ffc32SGordon Ross
337d1ffc32SGordon Ross int
main(int argc,char * argv[])347d1ffc32SGordon Ross main(int argc, char *argv[])
357d1ffc32SGordon Ross {
367d1ffc32SGordon Ross
377d1ffc32SGordon Ross test_conv();
387d1ffc32SGordon Ross test_mbmarshal();
397d1ffc32SGordon Ross test_msgbuf();
407d1ffc32SGordon Ross
417d1ffc32SGordon Ross return (0);
427d1ffc32SGordon Ross }
437d1ffc32SGordon Ross
447d1ffc32SGordon Ross void
hexdump(const uchar_t * buf,int len)457d1ffc32SGordon Ross hexdump(const uchar_t *buf, int len)
467d1ffc32SGordon Ross {
477d1ffc32SGordon Ross int idx;
487d1ffc32SGordon Ross char ascii[24];
497d1ffc32SGordon Ross char *pa = ascii;
507d1ffc32SGordon Ross
517d1ffc32SGordon Ross memset(ascii, '\0', sizeof (ascii));
527d1ffc32SGordon Ross
537d1ffc32SGordon Ross idx = 0;
547d1ffc32SGordon Ross while (len--) {
557d1ffc32SGordon Ross if ((idx & 15) == 0) {
567d1ffc32SGordon Ross printf("%04X: ", idx);
577d1ffc32SGordon Ross pa = ascii;
587d1ffc32SGordon Ross }
597d1ffc32SGordon Ross if (*buf > ' ' && *buf <= '~')
607d1ffc32SGordon Ross *pa++ = *buf;
617d1ffc32SGordon Ross else
627d1ffc32SGordon Ross *pa++ = '.';
637d1ffc32SGordon Ross printf("%02x ", *buf++);
647d1ffc32SGordon Ross
657d1ffc32SGordon Ross idx++;
667d1ffc32SGordon Ross if ((idx & 3) == 0) {
677d1ffc32SGordon Ross *pa++ = ' ';
68*da90d5b8SJohn Levon (void) putchar(' ');
697d1ffc32SGordon Ross }
707d1ffc32SGordon Ross if ((idx & 15) == 0) {
717d1ffc32SGordon Ross *pa = '\0';
727d1ffc32SGordon Ross printf("%s\n", ascii);
737d1ffc32SGordon Ross }
747d1ffc32SGordon Ross }
757d1ffc32SGordon Ross
767d1ffc32SGordon Ross if ((idx & 15) != 0) {
777d1ffc32SGordon Ross *pa = '\0';
787d1ffc32SGordon Ross /* column align the last ascii row */
797d1ffc32SGordon Ross while ((idx & 15) != 0) {
807d1ffc32SGordon Ross if ((idx & 3) == 0)
81*da90d5b8SJohn Levon (void) putchar(' ');
827d1ffc32SGordon Ross printf(" ");
837d1ffc32SGordon Ross idx++;
847d1ffc32SGordon Ross }
857d1ffc32SGordon Ross printf("%s\n", ascii);
867d1ffc32SGordon Ross }
877d1ffc32SGordon Ross }
88