From: Peter Chubb <peter@chubb.wattle.id.au>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] offsets.h generation
Date: Mon, 26 May 2003 23:25:28 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590723706036@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723705941@msgid-missing>
[-- Attachment #1: message body text --]
[-- Type: text/plain, Size: 152 bytes --]
OK, here's a patch against this morning's BK tree. (or would you
prefer I stuck a BK tree in a publicly accessible place, that you
could pull from?)
[-- Attachment #2: p2 --]
[-- Type: text/plain, Size: 25813 bytes --]
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1099 -> 1.1101
# arch/ia64/Makefile 1.49 -> 1.50
# arch/ia64/tools/print_offsets.c 1.18 -> (deleted)
# arch/ia64/kernel/Makefile 1.17 -> 1.18
# (new) -> 1.1 arch/ia64/kernel/asm-offsets.c
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/05/26 peterc@wombat.disy.cse.unsw.edu.au 1.1100
# IA64: generate include/asm/offsets.h in a way similar to all other architectures.
#
# Delete references to arch/ia64/tools; use standard sed script to generate offsets.h.
#
# This gets the dependencies right for offsets.h
#
# (Next change set removes arch/ia64/tools/ directory)
# --------------------------------------------
# 03/05/26 peterc@wombat.disy.cse.unsw.edu.au 1.1101
# IA64: Remove now-unneeded arch/ia64/tools subdirectory
# --------------------------------------------
#
diff -Nru a/arch/ia64/Makefile b/arch/ia64/Makefile
--- a/arch/ia64/Makefile Tue May 27 09:23:12 2003
+++ b/arch/ia64/Makefile Tue May 27 09:23:12 2003
@@ -66,7 +66,6 @@
drivers-$(CONFIG_IA64_GENERIC) += arch/ia64/hp/common/ arch/ia64/hp/zx1/ arch/ia64/hp/sim/
boot := arch/ia64/boot
-tools := arch/ia64/tools
.PHONY: boot compressed check
@@ -80,17 +79,17 @@
archclean:
$(Q)$(MAKE) $(clean)=$(boot)
- $(Q)$(MAKE) $(clean)=$(tools)
CLEAN_FILES += include/asm-ia64/offsets.h vmlinux.gz bootloader
-prepare: include/asm-ia64/offsets.h
+prepare: include/asm-ia64/offsets.h
+
+include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
+ $(call filechk,gen-asm-offsets)
boot: lib/lib.a vmlinux
$(Q)$(MAKE) $(build)=$(boot) $@
-include/asm-ia64/offsets.h:
- $(Q)$(MAKE) $(build)=$(tools) $@
define archhelp
echo ' compressed - Build compressed kernel image'
diff -Nru a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile
--- a/arch/ia64/kernel/Makefile Tue May 27 09:23:12 2003
+++ b/arch/ia64/kernel/Makefile Tue May 27 09:23:12 2003
@@ -18,3 +18,11 @@
obj-$(CONFIG_IOSAPIC) += iosapic.o
obj-$(CONFIG_MODULES) += module.o
obj-$(CONFIG_SMP) += smp.o smpboot.o
+
+arch/$(ARCH)/kernel/asm-offsets.s: include/asm-$(ARCH)/.offsets.h.stamp
+
+include/asm-$(ARCH)/.offsets.h.stamp:
+ [ -s include/asm-$(ARCH)/offsets.h ] || echo "#define IA64_TASK_SIZE 0" > include/asm-$(ARCH)/offsets.h
+ touch $@
+
+CLEAN_FILES += include/asm-ia64/.offsets.h.stamp
diff -Nru a/arch/ia64/kernel/asm-offsets.c b/arch/ia64/kernel/asm-offsets.c
--- /dev/null Wed Dec 31 16:00:00 1969
+++ b/arch/ia64/kernel/asm-offsets.c Tue May 27 09:23:12 2003
@@ -0,0 +1,189 @@
+/*
+ * Generate definitions needed by assembly language modules.
+ * This code generates raw asm output which is post-processed
+ * to extract and format the required data.
+ */
+
+#include <linux/config.h>
+
+#include <linux/sched.h>
+
+#include <asm-ia64/processor.h>
+#include <asm-ia64/ptrace.h>
+#include <asm-ia64/siginfo.h>
+#include <asm-ia64/sigcontext.h>
+
+#include "../kernel/sigframe.h"
+
+#define DEFINE(sym, val) \
+ asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+
+#define BLANK() asm volatile("\n->" : : )
+
+void foo(void)
+{
+ DEFINE(IA64_TASK_SIZE, sizeof (struct task_struct));
+ DEFINE(IA64_THREAD_INFO_SIZE, sizeof (struct thread_info));
+ DEFINE(IA64_PT_REGS_SIZE, sizeof (struct pt_regs));
+ DEFINE(IA64_SWITCH_STACK_SIZE, sizeof (struct switch_stack));
+ DEFINE(IA64_SIGINFO_SIZE, sizeof (struct siginfo));
+ DEFINE(IA64_CPU_SIZE, sizeof (struct cpuinfo_ia64));
+ DEFINE(SIGFRAME_SIZE, sizeof (struct sigframe));
+ DEFINE(UNW_FRAME_INFO_SIZE, sizeof (struct unw_frame_info));
+
+ BLANK();
+
+ DEFINE(IA64_TASK_CLEAR_CHILD_TID_OFFSET,offsetof (struct task_struct, clear_child_tid));
+ DEFINE(IA64_TASK_GROUP_LEADER_OFFSET, offsetof (struct task_struct, group_leader));
+ DEFINE(IA64_TASK_PID_OFFSET, offsetof (struct task_struct, pid));
+ DEFINE(IA64_TASK_REAL_PARENT_OFFSET, offsetof (struct task_struct, real_parent));
+ DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid));
+ DEFINE(IA64_TASK_THREAD_KSP_OFFSET, offsetof (struct task_struct, thread.ksp));
+ DEFINE(IA64_TASK_THREAD_ON_USTACK_OFFSET, offsetof (struct task_struct, thread.on_ustack));
+
+ BLANK();
+
+ DEFINE(IA64_PT_REGS_B6_OFFSET, offsetof (struct pt_regs, b6));
+ DEFINE(IA64_PT_REGS_B7_OFFSET, offsetof (struct pt_regs, b7));
+ DEFINE(IA64_PT_REGS_AR_CSD_OFFSET, offsetof (struct pt_regs, ar_csd));
+ DEFINE(IA64_PT_REGS_AR_SSD_OFFSET, offsetof (struct pt_regs, ar_ssd));
+ DEFINE(IA64_PT_REGS_R8_OFFSET, offsetof (struct pt_regs, r8));
+ DEFINE(IA64_PT_REGS_R9_OFFSET, offsetof (struct pt_regs, r9));
+ DEFINE(IA64_PT_REGS_R10_OFFSET, offsetof (struct pt_regs, r10));
+ DEFINE(IA64_PT_REGS_R11_OFFSET, offsetof (struct pt_regs, r11));
+ DEFINE(IA64_PT_REGS_CR_IPSR_OFFSET, offsetof (struct pt_regs, cr_ipsr));
+ DEFINE(IA64_PT_REGS_CR_IIP_OFFSET, offsetof (struct pt_regs, cr_iip));
+ DEFINE(IA64_PT_REGS_CR_IFS_OFFSET, offsetof (struct pt_regs, cr_ifs));
+ DEFINE(IA64_PT_REGS_AR_UNAT_OFFSET, offsetof (struct pt_regs, ar_unat));
+ DEFINE(IA64_PT_REGS_AR_PFS_OFFSET, offsetof (struct pt_regs, ar_pfs));
+ DEFINE(IA64_PT_REGS_AR_RSC_OFFSET, offsetof (struct pt_regs, ar_rsc));
+ DEFINE(IA64_PT_REGS_AR_RNAT_OFFSET, offsetof (struct pt_regs, ar_rnat));
+
+ DEFINE(IA64_PT_REGS_AR_BSPSTORE_OFFSET, offsetof (struct pt_regs, ar_bspstore));
+ DEFINE(IA64_PT_REGS_PR_OFFSET, offsetof (struct pt_regs, pr));
+ DEFINE(IA64_PT_REGS_B0_OFFSET, offsetof (struct pt_regs, b0));
+ DEFINE(IA64_PT_REGS_LOADRS_OFFSET, offsetof (struct pt_regs, loadrs));
+ DEFINE(IA64_PT_REGS_R1_OFFSET, offsetof (struct pt_regs, r1));
+ DEFINE(IA64_PT_REGS_R12_OFFSET, offsetof (struct pt_regs, r12));
+ DEFINE(IA64_PT_REGS_R13_OFFSET, offsetof (struct pt_regs, r13));
+ DEFINE(IA64_PT_REGS_AR_FPSR_OFFSET, offsetof (struct pt_regs, ar_fpsr));
+ DEFINE(IA64_PT_REGS_R15_OFFSET, offsetof (struct pt_regs, r15));
+ DEFINE(IA64_PT_REGS_R14_OFFSET, offsetof (struct pt_regs, r14));
+ DEFINE(IA64_PT_REGS_R2_OFFSET, offsetof (struct pt_regs, r2));
+ DEFINE(IA64_PT_REGS_R3_OFFSET, offsetof (struct pt_regs, r3));
+ DEFINE(IA64_PT_REGS_R16_OFFSET, offsetof (struct pt_regs, r16));
+ DEFINE(IA64_PT_REGS_R17_OFFSET, offsetof (struct pt_regs, r17));
+ DEFINE(IA64_PT_REGS_R18_OFFSET, offsetof (struct pt_regs, r18));
+ DEFINE(IA64_PT_REGS_R19_OFFSET, offsetof (struct pt_regs, r19));
+ DEFINE(IA64_PT_REGS_R20_OFFSET, offsetof (struct pt_regs, r20));
+ DEFINE(IA64_PT_REGS_R21_OFFSET, offsetof (struct pt_regs, r21));
+ DEFINE(IA64_PT_REGS_R22_OFFSET, offsetof (struct pt_regs, r22));
+ DEFINE(IA64_PT_REGS_R23_OFFSET, offsetof (struct pt_regs, r23));
+ DEFINE(IA64_PT_REGS_R24_OFFSET, offsetof (struct pt_regs, r24));
+ DEFINE(IA64_PT_REGS_R25_OFFSET, offsetof (struct pt_regs, r25));
+ DEFINE(IA64_PT_REGS_R26_OFFSET, offsetof (struct pt_regs, r26));
+ DEFINE(IA64_PT_REGS_R27_OFFSET, offsetof (struct pt_regs, r27));
+ DEFINE(IA64_PT_REGS_R28_OFFSET, offsetof (struct pt_regs, r28));
+ DEFINE(IA64_PT_REGS_R29_OFFSET, offsetof (struct pt_regs, r29));
+ DEFINE(IA64_PT_REGS_R30_OFFSET, offsetof (struct pt_regs, r30));
+ DEFINE(IA64_PT_REGS_R31_OFFSET, offsetof (struct pt_regs, r31));
+ DEFINE(IA64_PT_REGS_AR_CCV_OFFSET, offsetof (struct pt_regs, ar_ccv));
+ DEFINE(IA64_PT_REGS_F6_OFFSET, offsetof (struct pt_regs, f6));
+ DEFINE(IA64_PT_REGS_F7_OFFSET, offsetof (struct pt_regs, f7));
+ DEFINE(IA64_PT_REGS_F8_OFFSET, offsetof (struct pt_regs, f8));
+ DEFINE(IA64_PT_REGS_F9_OFFSET, offsetof (struct pt_regs, f9));
+ DEFINE(IA64_PT_REGS_F10_OFFSET, offsetof (struct pt_regs, f10));
+ DEFINE(IA64_PT_REGS_F11_OFFSET, offsetof (struct pt_regs, f11));
+
+ BLANK();
+
+ DEFINE(IA64_SWITCH_STACK_CALLER_UNAT_OFFSET, offsetof (struct switch_stack, caller_unat));
+ DEFINE(IA64_SWITCH_STACK_AR_FPSR_OFFSET, offsetof (struct switch_stack, ar_fpsr));
+ DEFINE(IA64_SWITCH_STACK_F2_OFFSET, offsetof (struct switch_stack, f2));
+ DEFINE(IA64_SWITCH_STACK_F3_OFFSET, offsetof (struct switch_stack, f3));
+ DEFINE(IA64_SWITCH_STACK_F4_OFFSET, offsetof (struct switch_stack, f4));
+ DEFINE(IA64_SWITCH_STACK_F5_OFFSET, offsetof (struct switch_stack, f5));
+ DEFINE(IA64_SWITCH_STACK_F12_OFFSET, offsetof (struct switch_stack, f12));
+ DEFINE(IA64_SWITCH_STACK_F13_OFFSET, offsetof (struct switch_stack, f13));
+ DEFINE(IA64_SWITCH_STACK_F14_OFFSET, offsetof (struct switch_stack, f14));
+ DEFINE(IA64_SWITCH_STACK_F15_OFFSET, offsetof (struct switch_stack, f15));
+ DEFINE(IA64_SWITCH_STACK_F16_OFFSET, offsetof (struct switch_stack, f16));
+ DEFINE(IA64_SWITCH_STACK_F17_OFFSET, offsetof (struct switch_stack, f17));
+ DEFINE(IA64_SWITCH_STACK_F18_OFFSET, offsetof (struct switch_stack, f18));
+ DEFINE(IA64_SWITCH_STACK_F19_OFFSET, offsetof (struct switch_stack, f19));
+ DEFINE(IA64_SWITCH_STACK_F20_OFFSET, offsetof (struct switch_stack, f20));
+ DEFINE(IA64_SWITCH_STACK_F21_OFFSET, offsetof (struct switch_stack, f21));
+ DEFINE(IA64_SWITCH_STACK_F22_OFFSET, offsetof (struct switch_stack, f22));
+ DEFINE(IA64_SWITCH_STACK_F23_OFFSET, offsetof (struct switch_stack, f23));
+ DEFINE(IA64_SWITCH_STACK_F24_OFFSET, offsetof (struct switch_stack, f24));
+ DEFINE(IA64_SWITCH_STACK_F25_OFFSET, offsetof (struct switch_stack, f25));
+ DEFINE(IA64_SWITCH_STACK_F26_OFFSET, offsetof (struct switch_stack, f26));
+ DEFINE(IA64_SWITCH_STACK_F27_OFFSET, offsetof (struct switch_stack, f27));
+ DEFINE(IA64_SWITCH_STACK_F28_OFFSET, offsetof (struct switch_stack, f28));
+ DEFINE(IA64_SWITCH_STACK_F29_OFFSET, offsetof (struct switch_stack, f29));
+ DEFINE(IA64_SWITCH_STACK_F30_OFFSET, offsetof (struct switch_stack, f30));
+ DEFINE(IA64_SWITCH_STACK_F31_OFFSET, offsetof (struct switch_stack, f31));
+ DEFINE(IA64_SWITCH_STACK_R4_OFFSET, offsetof (struct switch_stack, r4));
+ DEFINE(IA64_SWITCH_STACK_R5_OFFSET, offsetof (struct switch_stack, r5));
+ DEFINE(IA64_SWITCH_STACK_R6_OFFSET, offsetof (struct switch_stack, r6));
+ DEFINE(IA64_SWITCH_STACK_R7_OFFSET, offsetof (struct switch_stack, r7));
+ DEFINE(IA64_SWITCH_STACK_B0_OFFSET, offsetof (struct switch_stack, b0));
+ DEFINE(IA64_SWITCH_STACK_B1_OFFSET, offsetof (struct switch_stack, b1));
+ DEFINE(IA64_SWITCH_STACK_B2_OFFSET, offsetof (struct switch_stack, b2));
+ DEFINE(IA64_SWITCH_STACK_B3_OFFSET, offsetof (struct switch_stack, b3));
+ DEFINE(IA64_SWITCH_STACK_B4_OFFSET, offsetof (struct switch_stack, b4));
+ DEFINE(IA64_SWITCH_STACK_B5_OFFSET, offsetof (struct switch_stack, b5));
+ DEFINE(IA64_SWITCH_STACK_AR_PFS_OFFSET, offsetof (struct switch_stack, ar_pfs));
+ DEFINE(IA64_SWITCH_STACK_AR_LC_OFFSET, offsetof (struct switch_stack, ar_lc));
+ DEFINE(IA64_SWITCH_STACK_AR_UNAT_OFFSET, offsetof (struct switch_stack, ar_unat));
+ DEFINE(IA64_SWITCH_STACK_AR_RNAT_OFFSET, offsetof (struct switch_stack, ar_rnat));
+ DEFINE(IA64_SWITCH_STACK_AR_BSPSTORE_OFFSET, offsetof (struct switch_stack, ar_bspstore));
+ DEFINE(IA64_SWITCH_STACK_PR_OFFSET, offsetof (struct switch_stack, pr));
+
+ BLANK();
+
+ DEFINE(IA64_SIGCONTEXT_IP_OFFSET, offsetof (struct sigcontext, sc_ip));
+ DEFINE(IA64_SIGCONTEXT_AR_BSP_OFFSET, offsetof (struct sigcontext, sc_ar_bsp));
+ DEFINE(IA64_SIGCONTEXT_AR_FPSR_OFFSET, offsetof (struct sigcontext, sc_ar_fpsr));
+ DEFINE(IA64_SIGCONTEXT_AR_RNAT_OFFSET, offsetof (struct sigcontext, sc_ar_rnat));
+ DEFINE(IA64_SIGCONTEXT_AR_UNAT_OFFSET, offsetof (struct sigcontext, sc_ar_unat));
+ DEFINE(IA64_SIGCONTEXT_B0_OFFSET, offsetof (struct sigcontext, sc_br[0]));
+ DEFINE(IA64_SIGCONTEXT_CFM_OFFSET, offsetof (struct sigcontext, sc_cfm));
+ DEFINE(IA64_SIGCONTEXT_FLAGS_OFFSET, offsetof (struct sigcontext, sc_flags));
+ DEFINE(IA64_SIGCONTEXT_FR6_OFFSET, offsetof (struct sigcontext, sc_fr[6]));
+ DEFINE(IA64_SIGCONTEXT_PR_OFFSET, offsetof (struct sigcontext, sc_pr));
+ DEFINE(IA64_SIGCONTEXT_R12_OFFSET, offsetof (struct sigcontext, sc_gr[12]));
+ DEFINE(IA64_SIGCONTEXT_RBS_BASE_OFFSET,offsetof (struct sigcontext, sc_rbs_base));
+ DEFINE(IA64_SIGCONTEXT_LOADRS_OFFSET, offsetof (struct sigcontext, sc_loadrs));
+
+ BLANK();
+
+ DEFINE(IA64_SIGFRAME_ARG0_OFFSET, offsetof (struct sigframe, arg0));
+ DEFINE(IA64_SIGFRAME_ARG1_OFFSET, offsetof (struct sigframe, arg1));
+ DEFINE(IA64_SIGFRAME_ARG2_OFFSET, offsetof (struct sigframe, arg2));
+ DEFINE(IA64_SIGFRAME_HANDLER_OFFSET, offsetof (struct sigframe, handler));
+ DEFINE(IA64_SIGFRAME_SIGCONTEXT_OFFSET, offsetof (struct sigframe, sc));
+ BLANK();
+ /* for assembly files which can't include sched.h: */
+ DEFINE(IA64_CLONE_VFORK, CLONE_VFORK);
+ DEFINE(IA64_CLONE_VM, CLONE_VM);
+
+ BLANK();
+ /* used by fsys_gettimeofday in arch/ia64/kernel/fsys.S */
+ DEFINE(IA64_CPUINFO_ITM_DELTA_OFFSET, offsetof (struct cpuinfo_ia64, itm_delta));
+ DEFINE(IA64_CPUINFO_ITM_NEXT_OFFSET, offsetof (struct cpuinfo_ia64, itm_next));
+ DEFINE(IA64_CPUINFO_NSEC_PER_CYC_OFFSET, offsetof (struct cpuinfo_ia64, nsec_per_cyc));
+ DEFINE(IA64_TIMESPEC_TV_NSEC_OFFSET, offsetof (struct timespec, tv_nsec));
+
+
+ DEFINE(CLONE_IDLETASK_BIT, 12);
+#if CLONE_IDLETASK != (1 << 12)
+# error "CLONE_IDLETASK_BIT incorrect, please fix"
+#endif
+
+ DEFINE(CLONE_SETTLS_BIT, 19);
+#if CLONE_SETTLS != (1<<19)
+# error "CLONE_SETTLS_BIT incorrect, please fix"
+#endif
+
+}
diff -Nru a/arch/ia64/tools/print_offsets.c b/arch/ia64/tools/print_offsets.c
--- a/arch/ia64/tools/print_offsets.c Tue May 27 09:23:12 2003
+++ /dev/null Wed Dec 31 16:00:00 1969
@@ -1,224 +0,0 @@
-/*
- * Utility to generate asm-ia64/offsets.h.
- *
- * Copyright (C) 1999-2003 Hewlett-Packard Co
- * David Mosberger-Tang <davidm@hpl.hp.com>
- * Copyright (C) 2002-2003 Intel Co
- * Fenghua Yu <fenghua.yu@intel.com>
- *
- * Note that this file has dual use: when building the kernel
- * natively, the file is translated into a binary and executed. When
- * building the kernel in a cross-development environment, this file
- * gets translated into an assembly file which, in turn, is processed
- * by awk to generate offsets.h. So if you make any changes to this
- * file, be sure to verify that the awk procedure still works (see
- * print_offsets.awk).
- */
-#include <linux/config.h>
-
-#include <linux/sched.h>
-
-#include <asm-ia64/processor.h>
-#include <asm-ia64/ptrace.h>
-#include <asm-ia64/siginfo.h>
-#include <asm-ia64/sigcontext.h>
-
-#include "../kernel/sigframe.h"
-
-#ifdef offsetof
-# undef offsetof
-#endif
-
-/*
- * We _can't_ include the host's standard header file, as those are in
- * potential conflict with the what the Linux kernel declares for the
- * target system.
- */
-extern int printf (const char *, ...);
-
-#define offsetof(type,field) ((char *) &((type *) 0)->field - (char *) 0)
-
-struct
- {
- const char name[256];
- unsigned long value;
- }
-tab[] =
- {
- { "IA64_TASK_SIZE", sizeof (struct task_struct) },
- { "IA64_THREAD_INFO_SIZE", sizeof (struct thread_info) },
- { "IA64_PT_REGS_SIZE", sizeof (struct pt_regs) },
- { "IA64_SWITCH_STACK_SIZE", sizeof (struct switch_stack) },
- { "IA64_SIGINFO_SIZE", sizeof (struct siginfo) },
- { "IA64_CPU_SIZE", sizeof (struct cpuinfo_ia64) },
- { "SIGFRAME_SIZE", sizeof (struct sigframe) },
- { "UNW_FRAME_INFO_SIZE", sizeof (struct unw_frame_info) },
- { "", 0 }, /* spacer */
- { "IA64_TASK_CLEAR_CHILD_TID_OFFSET",offsetof (struct task_struct, clear_child_tid) },
- { "IA64_TASK_GROUP_LEADER_OFFSET", offsetof (struct task_struct, group_leader) },
- { "IA64_TASK_PID_OFFSET", offsetof (struct task_struct, pid) },
- { "IA64_TASK_REAL_PARENT_OFFSET", offsetof (struct task_struct, real_parent) },
- { "IA64_TASK_TGID_OFFSET", offsetof (struct task_struct, tgid) },
- { "IA64_TASK_THREAD_KSP_OFFSET", offsetof (struct task_struct, thread.ksp) },
- { "IA64_TASK_THREAD_ON_USTACK_OFFSET", offsetof (struct task_struct, thread.on_ustack) },
- { "IA64_PT_REGS_B6_OFFSET", offsetof (struct pt_regs, b6) },
- { "IA64_PT_REGS_B7_OFFSET", offsetof (struct pt_regs, b7) },
- { "IA64_PT_REGS_AR_CSD_OFFSET", offsetof (struct pt_regs, ar_csd) },
- { "IA64_PT_REGS_AR_SSD_OFFSET", offsetof (struct pt_regs, ar_ssd) },
- { "IA64_PT_REGS_R8_OFFSET", offsetof (struct pt_regs, r8) },
- { "IA64_PT_REGS_R9_OFFSET", offsetof (struct pt_regs, r9) },
- { "IA64_PT_REGS_R10_OFFSET", offsetof (struct pt_regs, r10) },
- { "IA64_PT_REGS_R11_OFFSET", offsetof (struct pt_regs, r11) },
- { "IA64_PT_REGS_CR_IPSR_OFFSET", offsetof (struct pt_regs, cr_ipsr) },
- { "IA64_PT_REGS_CR_IIP_OFFSET", offsetof (struct pt_regs, cr_iip) },
- { "IA64_PT_REGS_CR_IFS_OFFSET", offsetof (struct pt_regs, cr_ifs) },
- { "IA64_PT_REGS_AR_UNAT_OFFSET", offsetof (struct pt_regs, ar_unat) },
- { "IA64_PT_REGS_AR_PFS_OFFSET", offsetof (struct pt_regs, ar_pfs) },
- { "IA64_PT_REGS_AR_RSC_OFFSET", offsetof (struct pt_regs, ar_rsc) },
- { "IA64_PT_REGS_AR_RNAT_OFFSET", offsetof (struct pt_regs, ar_rnat) },
- { "IA64_PT_REGS_AR_BSPSTORE_OFFSET",offsetof (struct pt_regs, ar_bspstore) },
- { "IA64_PT_REGS_PR_OFFSET", offsetof (struct pt_regs, pr) },
- { "IA64_PT_REGS_B0_OFFSET", offsetof (struct pt_regs, b0) },
- { "IA64_PT_REGS_LOADRS_OFFSET", offsetof (struct pt_regs, loadrs) },
- { "IA64_PT_REGS_R1_OFFSET", offsetof (struct pt_regs, r1) },
- { "IA64_PT_REGS_R12_OFFSET", offsetof (struct pt_regs, r12) },
- { "IA64_PT_REGS_R13_OFFSET", offsetof (struct pt_regs, r13) },
- { "IA64_PT_REGS_AR_FPSR_OFFSET", offsetof (struct pt_regs, ar_fpsr) },
- { "IA64_PT_REGS_R15_OFFSET", offsetof (struct pt_regs, r15) },
- { "IA64_PT_REGS_R14_OFFSET", offsetof (struct pt_regs, r14) },
- { "IA64_PT_REGS_R2_OFFSET", offsetof (struct pt_regs, r2) },
- { "IA64_PT_REGS_R3_OFFSET", offsetof (struct pt_regs, r3) },
- { "IA64_PT_REGS_R16_OFFSET", offsetof (struct pt_regs, r16) },
- { "IA64_PT_REGS_R17_OFFSET", offsetof (struct pt_regs, r17) },
- { "IA64_PT_REGS_R18_OFFSET", offsetof (struct pt_regs, r18) },
- { "IA64_PT_REGS_R19_OFFSET", offsetof (struct pt_regs, r19) },
- { "IA64_PT_REGS_R20_OFFSET", offsetof (struct pt_regs, r20) },
- { "IA64_PT_REGS_R21_OFFSET", offsetof (struct pt_regs, r21) },
- { "IA64_PT_REGS_R22_OFFSET", offsetof (struct pt_regs, r22) },
- { "IA64_PT_REGS_R23_OFFSET", offsetof (struct pt_regs, r23) },
- { "IA64_PT_REGS_R24_OFFSET", offsetof (struct pt_regs, r24) },
- { "IA64_PT_REGS_R25_OFFSET", offsetof (struct pt_regs, r25) },
- { "IA64_PT_REGS_R26_OFFSET", offsetof (struct pt_regs, r26) },
- { "IA64_PT_REGS_R27_OFFSET", offsetof (struct pt_regs, r27) },
- { "IA64_PT_REGS_R28_OFFSET", offsetof (struct pt_regs, r28) },
- { "IA64_PT_REGS_R29_OFFSET", offsetof (struct pt_regs, r29) },
- { "IA64_PT_REGS_R30_OFFSET", offsetof (struct pt_regs, r30) },
- { "IA64_PT_REGS_R31_OFFSET", offsetof (struct pt_regs, r31) },
- { "IA64_PT_REGS_AR_CCV_OFFSET", offsetof (struct pt_regs, ar_ccv) },
- { "IA64_PT_REGS_F6_OFFSET", offsetof (struct pt_regs, f6) },
- { "IA64_PT_REGS_F7_OFFSET", offsetof (struct pt_regs, f7) },
- { "IA64_PT_REGS_F8_OFFSET", offsetof (struct pt_regs, f8) },
- { "IA64_PT_REGS_F9_OFFSET", offsetof (struct pt_regs, f9) },
- { "IA64_PT_REGS_F10_OFFSET", offsetof (struct pt_regs, f10) },
- { "IA64_PT_REGS_F11_OFFSET", offsetof (struct pt_regs, f11) },
- { "IA64_SWITCH_STACK_CALLER_UNAT_OFFSET", offsetof (struct switch_stack, caller_unat) },
- { "IA64_SWITCH_STACK_AR_FPSR_OFFSET", offsetof (struct switch_stack, ar_fpsr) },
- { "IA64_SWITCH_STACK_F2_OFFSET", offsetof (struct switch_stack, f2) },
- { "IA64_SWITCH_STACK_F3_OFFSET", offsetof (struct switch_stack, f3) },
- { "IA64_SWITCH_STACK_F4_OFFSET", offsetof (struct switch_stack, f4) },
- { "IA64_SWITCH_STACK_F5_OFFSET", offsetof (struct switch_stack, f5) },
- { "IA64_SWITCH_STACK_F12_OFFSET", offsetof (struct switch_stack, f12) },
- { "IA64_SWITCH_STACK_F13_OFFSET", offsetof (struct switch_stack, f13) },
- { "IA64_SWITCH_STACK_F14_OFFSET", offsetof (struct switch_stack, f14) },
- { "IA64_SWITCH_STACK_F15_OFFSET", offsetof (struct switch_stack, f15) },
- { "IA64_SWITCH_STACK_F16_OFFSET", offsetof (struct switch_stack, f16) },
- { "IA64_SWITCH_STACK_F17_OFFSET", offsetof (struct switch_stack, f17) },
- { "IA64_SWITCH_STACK_F18_OFFSET", offsetof (struct switch_stack, f18) },
- { "IA64_SWITCH_STACK_F19_OFFSET", offsetof (struct switch_stack, f19) },
- { "IA64_SWITCH_STACK_F20_OFFSET", offsetof (struct switch_stack, f20) },
- { "IA64_SWITCH_STACK_F21_OFFSET", offsetof (struct switch_stack, f21) },
- { "IA64_SWITCH_STACK_F22_OFFSET", offsetof (struct switch_stack, f22) },
- { "IA64_SWITCH_STACK_F23_OFFSET", offsetof (struct switch_stack, f23) },
- { "IA64_SWITCH_STACK_F24_OFFSET", offsetof (struct switch_stack, f24) },
- { "IA64_SWITCH_STACK_F25_OFFSET", offsetof (struct switch_stack, f25) },
- { "IA64_SWITCH_STACK_F26_OFFSET", offsetof (struct switch_stack, f26) },
- { "IA64_SWITCH_STACK_F27_OFFSET", offsetof (struct switch_stack, f27) },
- { "IA64_SWITCH_STACK_F28_OFFSET", offsetof (struct switch_stack, f28) },
- { "IA64_SWITCH_STACK_F29_OFFSET", offsetof (struct switch_stack, f29) },
- { "IA64_SWITCH_STACK_F30_OFFSET", offsetof (struct switch_stack, f30) },
- { "IA64_SWITCH_STACK_F31_OFFSET", offsetof (struct switch_stack, f31) },
- { "IA64_SWITCH_STACK_R4_OFFSET", offsetof (struct switch_stack, r4) },
- { "IA64_SWITCH_STACK_R5_OFFSET", offsetof (struct switch_stack, r5) },
- { "IA64_SWITCH_STACK_R6_OFFSET", offsetof (struct switch_stack, r6) },
- { "IA64_SWITCH_STACK_R7_OFFSET", offsetof (struct switch_stack, r7) },
- { "IA64_SWITCH_STACK_B0_OFFSET", offsetof (struct switch_stack, b0) },
- { "IA64_SWITCH_STACK_B1_OFFSET", offsetof (struct switch_stack, b1) },
- { "IA64_SWITCH_STACK_B2_OFFSET", offsetof (struct switch_stack, b2) },
- { "IA64_SWITCH_STACK_B3_OFFSET", offsetof (struct switch_stack, b3) },
- { "IA64_SWITCH_STACK_B4_OFFSET", offsetof (struct switch_stack, b4) },
- { "IA64_SWITCH_STACK_B5_OFFSET", offsetof (struct switch_stack, b5) },
- { "IA64_SWITCH_STACK_AR_PFS_OFFSET", offsetof (struct switch_stack, ar_pfs) },
- { "IA64_SWITCH_STACK_AR_LC_OFFSET", offsetof (struct switch_stack, ar_lc) },
- { "IA64_SWITCH_STACK_AR_UNAT_OFFSET", offsetof (struct switch_stack, ar_unat) },
- { "IA64_SWITCH_STACK_AR_RNAT_OFFSET", offsetof (struct switch_stack, ar_rnat) },
- { "IA64_SWITCH_STACK_AR_BSPSTORE_OFFSET", offsetof (struct switch_stack, ar_bspstore) },
- { "IA64_SWITCH_STACK_PR_OFFSET", offsetof (struct switch_stack, pr) },
- { "IA64_SIGCONTEXT_IP_OFFSET", offsetof (struct sigcontext, sc_ip) },
- { "IA64_SIGCONTEXT_AR_BSP_OFFSET", offsetof (struct sigcontext, sc_ar_bsp) },
- { "IA64_SIGCONTEXT_AR_FPSR_OFFSET", offsetof (struct sigcontext, sc_ar_fpsr) },
- { "IA64_SIGCONTEXT_AR_RNAT_OFFSET", offsetof (struct sigcontext, sc_ar_rnat) },
- { "IA64_SIGCONTEXT_AR_UNAT_OFFSET", offsetof (struct sigcontext, sc_ar_unat) },
- { "IA64_SIGCONTEXT_B0_OFFSET", offsetof (struct sigcontext, sc_br[0]) },
- { "IA64_SIGCONTEXT_CFM_OFFSET", offsetof (struct sigcontext, sc_cfm) },
- { "IA64_SIGCONTEXT_FLAGS_OFFSET", offsetof (struct sigcontext, sc_flags) },
- { "IA64_SIGCONTEXT_FR6_OFFSET", offsetof (struct sigcontext, sc_fr[6]) },
- { "IA64_SIGCONTEXT_PR_OFFSET", offsetof (struct sigcontext, sc_pr) },
- { "IA64_SIGCONTEXT_R12_OFFSET", offsetof (struct sigcontext, sc_gr[12]) },
- { "IA64_SIGCONTEXT_RBS_BASE_OFFSET",offsetof (struct sigcontext, sc_rbs_base) },
- { "IA64_SIGCONTEXT_LOADRS_OFFSET", offsetof (struct sigcontext, sc_loadrs) },
- { "IA64_SIGFRAME_ARG0_OFFSET", offsetof (struct sigframe, arg0) },
- { "IA64_SIGFRAME_ARG1_OFFSET", offsetof (struct sigframe, arg1) },
- { "IA64_SIGFRAME_ARG2_OFFSET", offsetof (struct sigframe, arg2) },
- { "IA64_SIGFRAME_HANDLER_OFFSET", offsetof (struct sigframe, handler) },
- { "IA64_SIGFRAME_SIGCONTEXT_OFFSET", offsetof (struct sigframe, sc) },
- /* for assembly files which can't include sched.h: */
- { "IA64_CLONE_VFORK", CLONE_VFORK },
- { "IA64_CLONE_VM", CLONE_VM },
- /* used by fsys_gettimeofday in arch/ia64/kernel/fsys.S */
- { "IA64_CPUINFO_ITM_DELTA_OFFSET", offsetof (struct cpuinfo_ia64, itm_delta) },
- { "IA64_CPUINFO_ITM_NEXT_OFFSET", offsetof (struct cpuinfo_ia64, itm_next) },
- { "IA64_CPUINFO_NSEC_PER_CYC_OFFSET", offsetof (struct cpuinfo_ia64, nsec_per_cyc) },
- { "IA64_TIMESPEC_TV_NSEC_OFFSET", offsetof (struct timespec, tv_nsec) },
-
-};
-
-static const char *tabs = "\t\t\t\t\t\t\t\t\t\t";
-
-int
-main (int argc, char **argv)
-{
- const char *space;
- int i, num_tabs;
- size_t len;
-
- printf ("#ifndef _ASM_IA64_OFFSETS_H\n");
- printf ("#define _ASM_IA64_OFFSETS_H\n\n");
-
- printf ("/*\n * DO NOT MODIFY\n *\n * This file was generated by "
- "arch/ia64/tools/print_offsets.\n *\n */\n\n");
-
- for (i = 0; i < (int) (sizeof (tab) / sizeof (tab[0])); ++i)
- {
- if (tab[i].name[0] == '\0')
- printf ("\n");
- else
- {
- len = strlen (tab[i].name);
-
- num_tabs = (40 - len) / 8;
- if (num_tabs <= 0)
- space = " ";
- else
- space = strchr(tabs, '\0') - (40 - len) / 8;
-
- printf ("#define %s%s%lu\t/* 0x%lx */\n",
- tab[i].name, space, tab[i].value, tab[i].value);
- }
- }
-
- printf ("\n#define CLONE_IDLETASK_BIT %ld\n", ia64_fls (CLONE_IDLETASK));
- printf ("\n#define CLONE_SETTLS_BIT %ld\n", ia64_fls (CLONE_SETTLS));
-
- printf ("\n#endif /* _ASM_IA64_OFFSETS_H */\n");
- return 0;
-}
next prev parent reply other threads:[~2003-05-26 23:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-19 4:30 [Linux-ia64] offsets.h generation Peter Chubb
2003-05-19 17:13 ` Sam Ravnborg
2003-05-20 1:26 ` Peter Chubb
2003-05-20 4:40 ` Sam Ravnborg
2003-05-20 6:31 ` David Mosberger
2003-05-20 9:15 ` Peter Chubb
2003-05-23 1:09 ` Peter Chubb
2003-05-23 1:50 ` David Mosberger
2003-05-26 23:25 ` Peter Chubb [this message]
2003-05-27 0:03 ` Peter Chubb
2003-05-27 0:03 ` Peter Chubb
2003-05-31 0:34 ` David Mosberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590723706036@msgid-missing \
--to=peter@chubb.wattle.id.au \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.