Mercurial > emacs
changeset 75987:9012e6e12d0e
(Bindat Spec): Vector types can have optional element type.
(Bindat Examples): Fix example. Add vector with element type.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sat, 17 Feb 2007 21:07:11 +0000 |
parents | 6fcd34fb603e |
children | 6f0c6046d7ac |
files | lispref/processes.texi |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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)