PageRenderTime 42ms CodeModel.GetById 21ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 0ms

/drivers/net/wireless/bcmdhd_34/include/hndrte_armtrap.h

https://bitbucket.org/cyanogenmod/android_kernel_asus_tf300t
C Header | 88 lines | 46 code | 13 blank | 29 comment | 0 complexity | be5de87e7b67649045cdc85f18a34661 MD5 | raw file
Possible License(s): LGPL-2.0, AGPL-1.0, GPL-2.0
 1/*
 2 * HNDRTE arm trap handling.
 3 *
 4 * Copyright (C) 1999-2012, Broadcom Corporation
 5 * 
 6 *      Unless you and Broadcom execute a separate written software license
 7 * agreement governing use of this software, this software is licensed to you
 8 * under the terms of the GNU General Public License version 2 (the "GPL"),
 9 * available at http://www.broadcom.com/licenses/GPLv2.php, with the
10 * following added to such license:
11 * 
12 *      As a special exception, the copyright holders of this software give you
13 * permission to link this software with independent modules, and to copy and
14 * distribute the resulting executable under terms of your choice, provided that
15 * you also meet, for each linked independent module, the terms and conditions of
16 * the license of that module.  An independent module is a module which is not
17 * derived from this software.  The special exception does not apply to any
18 * modifications of the software.
19 * 
20 *      Notwithstanding the above, under no circumstances may you combine this
21 * software in any way with any other Broadcom software provided under a license
22 * other than the GPL, without Broadcom's express prior written consent.
23 *
24 * $Id: hndrte_armtrap.h 261365 2011-05-24 20:42:23Z $
25 */
26
27#ifndef	_hndrte_armtrap_h
28#define	_hndrte_armtrap_h
29
30
31/* ARM trap handling */
32
33/* Trap types defined by ARM (see arminc.h) */
34
35/* Trap locations in lo memory */
36#define	TRAP_STRIDE	4
37#define FIRST_TRAP	TR_RST
38#define LAST_TRAP	(TR_FIQ * TRAP_STRIDE)
39
40#if defined(__ARM_ARCH_4T__)
41#define	MAX_TRAP_TYPE	(TR_FIQ + 1)
42#elif defined(__ARM_ARCH_7M__)
43#define	MAX_TRAP_TYPE	(TR_ISR + ARMCM3_NUMINTS)
44#endif	/* __ARM_ARCH_7M__ */
45
46/* The trap structure is defined here as offsets for assembly */
47#define	TR_TYPE		0x00
48#define	TR_EPC		0x04
49#define	TR_CPSR		0x08
50#define	TR_SPSR		0x0c
51#define	TR_REGS		0x10
52#define	TR_REG(n)	(TR_REGS + (n) * 4)
53#define	TR_SP		TR_REG(13)
54#define	TR_LR		TR_REG(14)
55#define	TR_PC		TR_REG(15)
56
57#define	TRAP_T_SIZE	80
58
59#ifndef	_LANGUAGE_ASSEMBLY
60
61#include <typedefs.h>
62
63typedef struct _trap_struct {
64	uint32		type;
65	uint32		epc;
66	uint32		cpsr;
67	uint32		spsr;
68	uint32		r0;	/* a1 */
69	uint32		r1;	/* a2 */
70	uint32		r2;	/* a3 */
71	uint32		r3;	/* a4 */
72	uint32		r4;	/* v1 */
73	uint32		r5;	/* v2 */
74	uint32		r6;	/* v3 */
75	uint32		r7;	/* v4 */
76	uint32		r8;	/* v5 */
77	uint32		r9;	/* sb/v6 */
78	uint32		r10;	/* sl/v7 */
79	uint32		r11;	/* fp/v8 */
80	uint32		r12;	/* ip */
81	uint32		r13;	/* sp */
82	uint32		r14;	/* lr */
83	uint32		pc;	/* r15 */
84} trap_t;
85
86#endif	/* !_LANGUAGE_ASSEMBLY */
87
88#endif	/* _hndrte_armtrap_h */