aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2007-02-17 21:07:11 +0000
committerKim F. Storm2007-02-17 21:07:11 +0000
commit500cbe57f6398d80e0e8fb571e888039ffa87e16 (patch)
treea64e47bbbd9378930618484409afe002757f6f19
parent4ebb03e66b8e198df1d65d2fe8f599454aa65a3e (diff)
downloademacs-500cbe57f6398d80e0e8fb571e888039ffa87e16.tar.gz
emacs-500cbe57f6398d80e0e8fb571e888039ffa87e16.zip
(Bindat Spec): Vector types can have optional element type.
(Bindat Examples): Fix example. Add vector with element type.
-rw-r--r--lispref/processes.texi13
1 files changed, 9 insertions, 4 deletions
diff --git a/lispref/processes.texi b/lispref/processes.texi
index d914fd7f669..8eaed87c701 100644
--- a/lispref/processes.texi
+++ b/lispref/processes.texi
@@ -2146,8 +2146,11 @@ String of length @var{len}.
2146@item strz @var{len} 2146@item strz @var{len}
2147Zero-terminated string, in a fixed-size field with length @var{len}. 2147Zero-terminated string, in a fixed-size field with length @var{len}.
2148 2148
2149@item vec @var{len} 2149@item vec @var{len} [@var{type}]
2150Vector of @var{len} bytes. 2150Vector of @var{len} elements of type @var{type}, or bytes if not
2151@var{type} is specified.
2152The @var{type} is any of the simple types above, or another vector
2153specified as a list @code{(vec @var{len} [@var{type}])}.
2151 2154
2152@item ip 2155@item ip
2153Four-byte vector representing an Internet address. For example: 2156Four-byte vector representing an Internet address. For example:
@@ -2429,13 +2432,14 @@ struct header @{
2429struct data @{ 2432struct data @{
2430 unsigned char type; 2433 unsigned char type;
2431 unsigned char opcode; 2434 unsigned char opcode;
2432 unsigned long length; /* In little endian order */ 2435 unsigned long length; /* In network byte order */
2433 unsigned char id[8]; /* null-terminated string */ 2436 unsigned char id[8]; /* null-terminated string */
2434 unsigned char data[/* (length + 3) & ~3 */]; 2437 unsigned char data[/* (length + 3) & ~3 */];
2435@}; 2438@};
2436 2439
2437struct packet @{ 2440struct packet @{
2438 struct header header; 2441 struct header header;
2442 unsigned short counters[4]; /* In little endian order */
2439 unsigned char items; 2443 unsigned char items;
2440 unsigned char filler[3]; 2444 unsigned char filler[3];
2441 struct data item[/* items */]; 2445 struct data item[/* items */];
@@ -2455,13 +2459,14 @@ The corresponding data layout specification:
2455(setq data-spec 2459(setq data-spec
2456 '((type u8) 2460 '((type u8)
2457 (opcode u8) 2461 (opcode u8)
2458 (length u16r) ;; little endian order 2462 (length u32) ;; network byte order
2459 (id strz 8) 2463 (id strz 8)
2460 (data vec (length)) 2464 (data vec (length))
2461 (align 4))) 2465 (align 4)))
2462 2466
2463(setq packet-spec 2467(setq packet-spec
2464 '((header struct header-spec) 2468 '((header struct header-spec)
2469 (counters vec 4 u16r) ;; little endian order
2465 (items u8) 2470 (items u8)
2466 (fill 3) 2471 (fill 3)
2467 (item repeat (items) 2472 (item repeat (items)