]>
Commit | Line | Data |
---|---|---|
cf2b4488 HP |
1 | /* |
2 | * Copyright (c) 2010 Broadcom Corporation | |
3 | * | |
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. | |
7 | * | |
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 ANY | |
11 | * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | |
13 | * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |
14 | * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
17 | #ifndef _MSGTRACE_H | |
18 | #define _MSGTRACE_H | |
19 | ||
cf2b4488 | 20 | #include <typedefs.h> |
cf2b4488 HP |
21 | |
22 | /* This marks the start of a packed structure section. */ | |
23 | #include <packed_section_start.h> | |
24 | ||
25 | #define MSGTRACE_VERSION 1 | |
26 | ||
27 | /* Message trace header */ | |
28 | typedef BWL_PRE_PACKED_STRUCT struct msgtrace_hdr { | |
de9bca63 GKH |
29 | u8 version; |
30 | u8 spare; | |
7d4df48e | 31 | u16 len; /* Len of the trace */ |
cf2b4488 HP |
32 | uint32 seqnum; /* Sequence number of message. Useful |
33 | * if the messsage has been lost | |
34 | * because of DMA error or a bus reset | |
35 | * (ex: SDIO Func2) | |
36 | */ | |
37 | uint32 discarded_bytes; /* Number of discarded bytes because of | |
38 | trace overflow */ | |
39 | uint32 discarded_printf; /* Number of discarded printf | |
40 | because of trace overflow */ | |
41 | } BWL_POST_PACKED_STRUCT msgtrace_hdr_t; | |
42 | ||
43 | #define MSGTRACE_HDRLEN sizeof(msgtrace_hdr_t) | |
44 | ||
45 | /* The hbus driver generates traces when sending a trace message. | |
46 | * This causes endless traces. | |
47 | * This flag must be set to TRUE in any hbus traces. | |
48 | * The flag is reset in the function msgtrace_put. | |
49 | * This prevents endless traces but generates hasardous | |
50 | * lost of traces only in bus device code. | |
51 | * It is recommendat to set this flag in macro SD_TRACE | |
52 | * but not in SD_ERROR for avoiding missing | |
53 | * hbus error traces. hbus error trace should not generates endless traces. | |
54 | */ | |
55 | extern bool msgtrace_hbus_trace; | |
56 | ||
de9bca63 | 57 | typedef void (*msgtrace_func_send_t) (void *hdl1, void *hdl2, u8 *hdr, |
7d4df48e GKH |
58 | u16 hdrlen, u8 *buf, |
59 | u16 buflen); | |
cf2b4488 HP |
60 | |
61 | extern void msgtrace_sent(void); | |
62 | extern void msgtrace_put(char *buf, int count); | |
63 | extern void msgtrace_init(void *hdl1, void *hdl2, | |
64 | msgtrace_func_send_t func_send); | |
65 | ||
66 | /* This marks the end of a packed structure section. */ | |
67 | #include <packed_section_end.h> | |
68 | ||
69 | #endif /* _MSGTRACE_H */ |