2 * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd.
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
25 #include <sys/types.h>
28 #include "ah_decode.h"
32 const char *markers[] = {
33 "AH_MARK_RESET", /* ar*Reset entry, bChannelChange */
34 "AH_MARK_RESET_LINE", /* ar*_reset.c, line %d */
35 "AH_MARK_RESET_DONE", /* ar*Reset exit, error code */
36 "AH_MARK_CHIPRESET", /* ar*ChipReset, channel num */
37 "AH_MARK_PERCAL", /* ar*PerCalibration, channel num */
38 "AH_MARK_SETCHANNEL", /* ar*SetChannel, channel num */
39 "AH_MARK_ANI_RESET", /* ar*AniReset, opmode */
40 "AH_MARK_ANI_POLL", /* ar*AniReset, listen time */
41 "AH_MARK_ANI_CONTROL", /* ar*AniReset, cmd */
45 op_read(struct athregrec *a)
47 printf("read\t%.8x = %.8x\n", a->reg, a->val);
51 op_write(struct athregrec *a)
53 printf("write\t%.8x = %.8x\n", a->reg, a->val);
57 op_device(struct athregrec *a)
59 printf("device\t0x%x/0x%x\n", a->reg, a->val);
63 op_mark(struct athregrec *a)
65 const char *s = "UNKNOWN";
66 if (a->reg <= MAX_MARKERS)
69 printf("mark\t%s (%d): %d\n", s, a->reg, a->val);
73 main(int argc, const char *argv[])
75 const char *file = argv[1];
81 printf("usage: %s <ahq log>\n", argv[0]);
85 fd = open(file, O_RDONLY);
92 r = read(fd, &a, sizeof(a));
109 printf("op: %d; reg: 0x%x; val: 0x%x\n",