diff options
| author | Kim F. Storm | 2007-02-17 21:07:11 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2007-02-17 21:07:11 +0000 |
| commit | 500cbe57f6398d80e0e8fb571e888039ffa87e16 (patch) | |
| tree | a64e47bbbd9378930618484409afe002757f6f19 | |
| parent | 4ebb03e66b8e198df1d65d2fe8f599454aa65a3e (diff) | |
| download | emacs-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.texi | 13 |
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} |
| 2147 | Zero-terminated string, in a fixed-size field with length @var{len}. | 2147 | Zero-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}] |
| 2150 | Vector of @var{len} bytes. | 2150 | Vector of @var{len} elements of type @var{type}, or bytes if not |
| 2151 | @var{type} is specified. | ||
| 2152 | The @var{type} is any of the simple types above, or another vector | ||
| 2153 | specified as a list @code{(vec @var{len} [@var{type}])}. | ||
| 2151 | 2154 | ||
| 2152 | @item ip | 2155 | @item ip |
| 2153 | Four-byte vector representing an Internet address. For example: | 2156 | Four-byte vector representing an Internet address. For example: |
| @@ -2429,13 +2432,14 @@ struct header @{ | |||
| 2429 | struct data @{ | 2432 | struct 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 | ||
| 2437 | struct packet @{ | 2440 | struct 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) |