Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
asm-offsets.c
Go to the documentation of this file.
1 /*
2  * Copyright 2010 Tilera Corporation. All Rights Reserved.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation, version 2.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
11  * NON INFRINGEMENT. See the GNU General Public License for
12  * more details.
13  *
14  * Generates definitions from c-type structures used by assembly sources.
15  */
16 
17 #include <linux/kbuild.h>
18 #include <linux/thread_info.h>
19 #include <linux/sched.h>
20 #include <linux/hardirq.h>
21 #include <linux/ptrace.h>
22 #include <hv/hypervisor.h>
23 
24 /* Check for compatible compiler early in the build. */
25 #ifdef CONFIG_TILEGX
26 # ifndef __tilegx__
27 # error Can only build TILE-Gx configurations with tilegx compiler
28 # endif
29 # ifndef __LP64__
30 # error Must not specify -m32 when building the TILE-Gx kernel
31 # endif
32 #else
33 # ifdef __tilegx__
34 # error Can not build TILEPro/TILE64 configurations with tilegx compiler
35 # endif
36 #endif
37 
38 void foo(void)
39 {
40  DEFINE(SINGLESTEP_STATE_BUFFER_OFFSET, \
42  DEFINE(SINGLESTEP_STATE_FLAGS_OFFSET, \
44  DEFINE(SINGLESTEP_STATE_ORIG_PC_OFFSET, \
46  DEFINE(SINGLESTEP_STATE_NEXT_PC_OFFSET, \
47  offsetof(struct single_step_state, next_pc));
48  DEFINE(SINGLESTEP_STATE_BRANCH_NEXT_PC_OFFSET, \
49  offsetof(struct single_step_state, branch_next_pc));
50  DEFINE(SINGLESTEP_STATE_UPDATE_VALUE_OFFSET, \
51  offsetof(struct single_step_state, update_value));
52 
53  DEFINE(THREAD_INFO_TASK_OFFSET, \
54  offsetof(struct thread_info, task));
55  DEFINE(THREAD_INFO_FLAGS_OFFSET, \
56  offsetof(struct thread_info, flags));
57  DEFINE(THREAD_INFO_STATUS_OFFSET, \
58  offsetof(struct thread_info, status));
59  DEFINE(THREAD_INFO_HOMECACHE_CPU_OFFSET, \
60  offsetof(struct thread_info, homecache_cpu));
61  DEFINE(THREAD_INFO_STEP_STATE_OFFSET, \
62  offsetof(struct thread_info, step_state));
63 
64  DEFINE(TASK_STRUCT_THREAD_KSP_OFFSET,
65  offsetof(struct task_struct, thread.ksp));
66  DEFINE(TASK_STRUCT_THREAD_PC_OFFSET,
67  offsetof(struct task_struct, thread.pc));
68 
69  DEFINE(HV_TOPOLOGY_WIDTH_OFFSET, \
71  DEFINE(HV_TOPOLOGY_HEIGHT_OFFSET, \
73 
74  DEFINE(IRQ_CPUSTAT_SYSCALL_COUNT_OFFSET, \
75  offsetof(irq_cpustat_t, irq_syscall_count));
76 }