File:  [ELWIX - Embedded LightWeight unIX -] / libelwix / example / test_pack.c
Revision 1.2.22.1: download - view: text, annotated - select for diffs - revision graph
Mon Feb 10 22:48:44 2014 UTC (10 years, 3 months ago) by misho
Branches: elwix3_0
Diff to: branchpoint 1.2: preferred, unified
patch

    1: #include <stdio.h>
    2: #include <string.h>
    3: #include <elwix.h>
    4: 
    5: 
    6: int
    7: main(int argc, char **argv)
    8: {
    9: 	rpack_t *rp;
   10: 	register int i;
   11: 	char n8 = '*';
   12: 	short n16 = 0xdeba;
   13: 	int n32 = 0xdeadbeef;
   14: 	long long int n64 = 0x123456789abcdef0;
   15: 
   16: 	if (argc < 2)
   17: 		return 1;
   18: 
   19: 	rp = rpack_create(argv[1], strlen(argv[1]) + 1);
   20: 	if (!rp) {
   21: 		printf("#%d - %s\n", elwix_GetErrno(), elwix_GetError());
   22: 		return 2;
   23: 	} else
   24: 		printf("create raw packet %p -> %s(%d)\n", rp, rp->r_buf, rp->r_len);
   25: 
   26: 	printf("test rpack_uint8::\n");
   27: 	for (i = 0; i < RPACK_LEN(rp); i++)
   28: 		if (i == 4)
   29: 			printf("\t%d) %c\n", i, rpack_uint8(rp, (uint8_t*) &n8));
   30: 		else
   31: 			printf("\t%d) %c\n", i, rpack_uint8(rp, NULL));
   32: 	RPACK_REWIND(rp);
   33: 	for (i = 0; i < RPACK_LEN(rp); i++)
   34: 		printf("\t%d) %c\n", i, rpack_uint8(rp, NULL));
   35: 	RPACK_REWIND(rp);
   36: 
   37: 	printf("test rpack_uint16::\n");
   38: 	for (i = 0; i < RPACK_LEN(rp); i++)
   39: 		if (i == 4)
   40: 			printf("\t%d) %x\n", i, rpack_uint16(rp, (uint16_t*) &n16, 0));
   41: 		else
   42: 			printf("\t%d) %x\n", i, rpack_uint16(rp, NULL, 0));
   43: 	RPACK_REWIND(rp);
   44: 	for (i = 0; i < RPACK_LEN(rp); i++)
   45: 		printf("\t%d) %x\n", i, rpack_uint16(rp, NULL, 0));
   46: 	RPACK_REWIND(rp);
   47: 
   48: 	printf("test rpack_uint24::\n");
   49: 	for (i = 0; i < RPACK_LEN(rp); i++)
   50: 		if (i == 4)
   51: 			printf("\t%d) %x\n", i, rpack_uint24(rp, (uint32_t*) &n32, 0));
   52: 		else
   53: 			printf("\t%d) %x\n", i, rpack_uint24(rp, NULL, 0));
   54: 	RPACK_REWIND(rp);
   55: 	for (i = 0; i < RPACK_LEN(rp); i++)
   56: 		printf("\t%d) %x\n", i, rpack_uint24(rp, NULL, 0));
   57: 	RPACK_REWIND(rp);
   58: 
   59: 	printf("test rpack_uint32::\n");
   60: 	for (i = 0; i < RPACK_LEN(rp); i++)
   61: 		if (i == 4)
   62: 			printf("\t%d) %x\n", i, rpack_uint32(rp, (uint32_t*) &n32, 0));
   63: 		else
   64: 			printf("\t%d) %x\n", i, rpack_uint32(rp, NULL, 0));
   65: 	RPACK_REWIND(rp);
   66: 	for (i = 0; i < RPACK_LEN(rp); i++)
   67: 		printf("\t%d) %x\n", i, rpack_uint32(rp, NULL, 0));
   68: 	RPACK_REWIND(rp);
   69: 
   70: 	printf("test rpack_uint64::\n");
   71: 	for (i = 0; i < RPACK_LEN(rp); i++)
   72: 		if (i == 4)
   73: 			printf("\t%d) %llx\n", i, rpack_uint64(rp, (uint64_t*) &n64, 0));
   74: 		else
   75: 			printf("\t%d) %llx\n", i, rpack_uint64(rp, NULL, 0));
   76: 	RPACK_REWIND(rp);
   77: 	for (i = 0; i < RPACK_LEN(rp); i++)
   78: 		printf("\t%d) %llx\n", i, rpack_uint64(rp, NULL, 0));
   79: 	RPACK_REWIND(rp);
   80: 
   81: 	rpack_destroy(&rp);
   82: 	printf("destroy packet %p\n", rp);
   83: 	return 0;
   84: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>