# HG changeset patch # User Kim F. Storm # Date 1171746431 0 # Node ID 9012e6e12d0edcaf9159503a5e66074e88d67421 # Parent 6fcd34fb603eaeb8f557b4c1ff1bb6b5e7c6662a (Bindat Spec): Vector types can have optional element type. (Bindat Examples): Fix example. Add vector with element type. diff -r 6fcd34fb603e -r 9012e6e12d0e lispref/processes.texi --- a/lispref/processes.texi Sat Feb 17 20:39:55 2007 +0000 +++ b/lispref/processes.texi Sat Feb 17 21:07:11 2007 +0000 @@ -2146,8 +2146,11 @@ @item strz @var{len} Zero-terminated string, in a fixed-size field with length @var{len}. -@item vec @var{len} -Vector of @var{len} bytes. +@item vec @var{len} [@var{type}] +Vector of @var{len} elements of type @var{type}, or bytes if not +@var{type} is specified. +The @var{type} is any of the simple types above, or another vector +specified as a list @code{(vec @var{len} [@var{type}])}. @item ip Four-byte vector representing an Internet address. For example: @@ -2429,13 +2432,14 @@ struct data @{ unsigned char type; unsigned char opcode; - unsigned long length; /* In little endian order */ + unsigned long length; /* In network byte order */ unsigned char id[8]; /* null-terminated string */ unsigned char data[/* (length + 3) & ~3 */]; @}; struct packet @{ struct header header; + unsigned short counters[4]; /* In little endian order */ unsigned char items; unsigned char filler[3]; struct data item[/* items */]; @@ -2455,13 +2459,14 @@ (setq data-spec '((type u8) (opcode u8) - (length u16r) ;; little endian order + (length u32) ;; network byte order (id strz 8) (data vec (length)) (align 4))) (setq packet-spec '((header struct header-spec) + (counters vec 4 u16r) ;; little endian order (items u8) (fill 3) (item repeat (items)