2 * HND Run Time Environment debug info area
4 * Copyright (C) 2013, Broadcom Corporation. All Rights Reserved.
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
13 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
15 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 * $Id: hndrte_debug.h 342211 2012-07-02 02:23:04Z $
21 #ifndef _HNDRTE_DEBUG_H
22 #define _HNDRTE_DEBUG_H
24 /* Magic number at a magic location to find HNDRTE_DEBUG pointers */
25 #define HNDRTE_DEBUG_PTR_PTR_MAGIC 0x50504244 /* DBPP */
27 #ifndef _LANGUAGE_ASSEMBLY
29 /* Includes only when building dongle code */
32 #define NUM_EVENT_LOG_SETS 4
34 /* We use explicit sizes here since this gets included from different
35 * systems. The sizes must be the size of the creating system
36 * (currently 32 bit ARM) since this is gleaned from dump.
39 /* Define pointers for use on other systems */
40 #define _HD_EVLOG_P uint32
41 #define _HD_CONS_P uint32
42 #define _HD_TRAP_P uint32
44 typedef struct hndrte_debug
{
46 #define HNDRTE_DEBUG_MAGIC 0x47424544 /* 'DEBG' */
48 uint32 version
; /* Debug struct version */
49 #define HNDRTE_DEBUG_VERSION 1
51 uint32 fwid
; /* 4 bytes of fw info */
54 _HD_TRAP_P trap_ptr
; /* trap_t data struct */
55 _HD_CONS_P console
; /* Console */
63 _HD_EVLOG_P event_log_top
;
68 * timeval_t and prstatus_t are copies of the Linux structures.
69 * Included here because we need the definitions for the target processor
70 * (32 bits) and not the definition on the host this is running on
71 * (which could be 64 bits).
74 typedef struct { /* Time value with microsecond resolution */
75 uint32 tv_sec
; /* Seconds */
76 uint32 tv_usec
; /* Microseconds */
80 /* Linux/ARM 32 prstatus for notes section */
81 typedef struct prstatus
{
82 int32 si_signo
; /* Signal number */
83 int32 si_code
; /* Extra code */
84 int32 si_errno
; /* Errno */
85 uint16 pr_cursig
; /* Current signal. */
87 uint32 pr_sigpend
; /* Set of pending signals. */
88 uint32 pr_sighold
; /* Set of held signals. */
93 timeval_t pr_utime
; /* User time. */
94 timeval_t pr_stime
; /* System time. */
95 timeval_t pr_cutime
; /* Cumulative user time. */
96 timeval_t pr_cstime
; /* Cumulative system time. */
98 int32 pr_fpvalid
; /* True if math copro being used. */
102 extern hndrte_debug_t hndrte_debug_info
__attribute__ ((weak
));
103 #endif /* __GNUC__ */
105 #endif /* !LANGUAGE_ASSEMBLY */
107 #endif /* _HNDRTE_DEBUG_H */