endif
# Where to locate arch specific headers
-hdr-arch := $(SRCARCH)
+ifeq ($(ARCH),sparc64)
+ hdr-arch := sparc
+else
+ hdr-arch := $(SRCARCH)
+endif
KCONFIG_CONFIG ?= .config
select HAVE_IDE
select HAVE_OPROFILE
select HAVE_ARCH_KGDB if !SMP
+ select HAVE_ARCH_TRACEHOOK
# Identify this as a Sparc32 build
config SPARC32
--- /dev/null
+# User exported sparc header files
+include include/asm-generic/Kbuild.asm
+
+header-y += ipcbuf_32.h
+header-y += ipcbuf_64.h
+header-y += posix_types_32.h
+header-y += posix_types_64.h
+header-y += ptrace_32.h
+header-y += ptrace_64.h
+header-y += sigcontext_32.h
+header-y += sigcontext_64.h
+header-y += siginfo_32.h
+header-y += siginfo_64.h
+header-y += signal_32.h
+header-y += signal_64.h
+header-y += stat_32.h
+header-y += stat_64.h
+header-y += statfs_32.h
+header-y += statfs_64.h
+header-y += unistd_32.h
+header-y += unistd_64.h
+
+header-y += apc.h
+header-y += asi.h
+header-y += bpp.h
+header-y += display7seg.h
+header-y += envctrl.h
+header-y += fbio.h
+header-y += jsflash.h
+header-y += openprom.h
+header-y += openprom_32.h
+header-y += openprom_64.h
+header-y += openpromio.h
+header-y += perfctr.h
+header-y += psrcompat.h
+header-y += psr.h
+header-y += pstate.h
+header-y += reg.h
+header-y += reg_32.h
+header-y += reg_64.h
+header-y += traps.h
+header-y += uctx.h
+header-y += utrap.h
+header-y += vfc_ioctls.h
+header-y += watchdog.h
#ifndef ___ASM_SPARC_ATOMIC_H
#define ___ASM_SPARC_ATOMIC_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/atomic_64.h>
+#include <asm/atomic_64.h>
#else
-#include <asm-sparc/atomic_32.h>
+#include <asm/atomic_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_AUXIO_H
#define ___ASM_SPARC_AUXIO_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/auxio_64.h>
+#include <asm/auxio_64.h>
#else
-#include <asm-sparc/auxio_32.h>
+#include <asm/auxio_32.h>
#endif
#endif
* understand the hardware you are querying!
*/
extern void set_auxio(unsigned char bits_on, unsigned char bits_off);
-extern unsigned char get_auxio(void); /* .../asm-sparc/floppy.h */
+extern unsigned char get_auxio(void); /* .../asm/floppy.h */
/*
* The following routines are provided for driver-compatibility
#ifndef ___ASM_SPARC_BITOPS_H
#define ___ASM_SPARC_BITOPS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/bitops_64.h>
+#include <asm/bitops_64.h>
#else
-#include <asm-sparc/bitops_32.h>
+#include <asm/bitops_32.h>
#endif
#endif
/*
- * asm-sparc/btfixup.h: Macros for boot time linking.
+ * asm/btfixup.h: Macros for boot time linking.
*
* Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
*/
-/* include/asm-sparc/bugs.h: Sparc probes for various bugs.
+/* include/asm/bugs.h: Sparc probes for various bugs.
*
* Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net)
*/
#ifndef ___ASM_SPARC_CACHEFLUSH_H
#define ___ASM_SPARC_CACHEFLUSH_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/cacheflush_64.h>
+#include <asm/cacheflush_64.h>
#else
-#include <asm-sparc/cacheflush_32.h>
+#include <asm/cacheflush_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_CHECKSUM_H
#define ___ASM_SPARC_CHECKSUM_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/checksum_64.h>
+#include <asm/checksum_64.h>
#else
-#include <asm-sparc/checksum_32.h>
+#include <asm/checksum_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_CPUDATA_H
#define ___ASM_SPARC_CPUDATA_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/cpudata_64.h>
+#include <asm/cpudata_64.h>
#else
-#include <asm-sparc/cpudata_32.h>
+#include <asm/cpudata_32.h>
#endif
#endif
*
* Copyright (C) 2004 Keith M Wesolowski (wesolows@foobazco.org)
*
- * Based on include/asm-sparc64/cpudata.h and Linux 2.4 smp.h
+ * Based on include/asm/cpudata.h and Linux 2.4 smp.h
* both (C) David S. Miller.
*/
-/* include/asm-sparc/current.h
+/* include/asm/current.h
*
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Copyright (C) 2002 Pete Zaitcev (zaitcev@yahoo.com)
#ifndef ___ASM_SPARC_DELAY_H
#define ___ASM_SPARC_DELAY_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/delay_64.h>
+#include <asm/delay_64.h>
#else
-#include <asm-sparc/delay_32.h>
+#include <asm/delay_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_DMA_MAPPING_H
#define ___ASM_SPARC_DMA_MAPPING_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/dma-mapping_64.h>
+#include <asm/dma-mapping_64.h>
#else
-#include <asm-sparc/dma-mapping_32.h>
+#include <asm/dma-mapping_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_DMA_H
#define ___ASM_SPARC_DMA_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/dma_64.h>
+#include <asm/dma_64.h>
#else
-#include <asm-sparc/dma_32.h>
+#include <asm/dma_32.h>
#endif
#endif
-/* include/asm-sparc/dma.h
+/* include/asm/dma.h
*
* Copyright 1995 (C) David S. Miller (davem@davemloft.net)
*/
/*
- * include/asm-sparc64/dma.h
+ * include/asm/dma.h
*
* Copyright 1996 (C) David S. Miller (davem@caip.rutgers.edu)
*/
#ifndef ___ASM_SPARC_EBUS_H
#define ___ASM_SPARC_EBUS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/ebus_64.h>
+#include <asm/ebus_64.h>
#else
-#include <asm-sparc/ebus_32.h>
+#include <asm/ebus_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_ELF_H
#define ___ASM_SPARC_ELF_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/elf_64.h>
+#include <asm/elf_64.h>
#else
-#include <asm-sparc/elf_32.h>
+#include <asm/elf_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_FLOPPY_H
#define ___ASM_SPARC_FLOPPY_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/floppy_64.h>
+#include <asm/floppy_64.h>
#else
-#include <asm-sparc/floppy_32.h>
+#include <asm/floppy_32.h>
#endif
#endif
-/* asm-sparc/floppy.h: Sparc specific parts of the Floppy driver.
+/* asm/floppy.h: Sparc specific parts of the Floppy driver.
*
* Copyright (C) 1995 David S. Miller (davem@davemloft.net)
*/
#ifndef ___ASM_SPARC_FUTEX_H
#define ___ASM_SPARC_FUTEX_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/futex_64.h>
+#include <asm/futex_64.h>
#else
-#include <asm-sparc/futex_32.h>
+#include <asm/futex_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_HARDIRQ_H
#define ___ASM_SPARC_HARDIRQ_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/hardirq_64.h>
+#include <asm/hardirq_64.h>
#else
-#include <asm-sparc/hardirq_32.h>
+#include <asm/hardirq_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_HEAD_H
#define ___ASM_SPARC_HEAD_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/head_64.h>
+#include <asm/head_64.h>
#else
-#include <asm-sparc/head_32.h>
+#include <asm/head_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_IO_H
#define ___ASM_SPARC_IO_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/io_64.h>
+#include <asm/io_64.h>
#else
-#include <asm-sparc/io_32.h>
+#include <asm/io_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_IOMMU_H
#define ___ASM_SPARC_IOMMU_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/iommu_64.h>
+#include <asm/iommu_64.h>
#else
-#include <asm-sparc/iommu_32.h>
+#include <asm/iommu_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_IPCBUF_H
#define ___ASM_SPARC_IPCBUF_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/ipcbuf_64.h>
+#include <asm/ipcbuf_64.h>
#else
-#include <asm-sparc/ipcbuf_32.h>
+#include <asm/ipcbuf_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_IRQ_H
#define ___ASM_SPARC_IRQ_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/irq_64.h>
+#include <asm/irq_64.h>
#else
-#include <asm-sparc/irq_32.h>
+#include <asm/irq_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_IRQFLAGS_H
#define ___ASM_SPARC_IRQFLAGS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/irqflags_64.h>
+#include <asm/irqflags_64.h>
#else
-#include <asm-sparc/irqflags_32.h>
+#include <asm/irqflags_32.h>
#endif
#endif
/*
- * include/asm-sparc/irqflags.h
+ * include/asm/irqflags.h
*
* IRQ flags handling
*
/*
- * include/asm-sparc64/irqflags.h
+ * include/asm/irqflags.h
*
* IRQ flags handling
*
#ifndef ___ASM_SPARC_KDEBUG_H
#define ___ASM_SPARC_KDEBUG_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/kdebug_64.h>
+#include <asm/kdebug_64.h>
#else
-#include <asm-sparc/kdebug_32.h>
+#include <asm/kdebug_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_MC146818RTC_H
#define ___ASM_SPARC_MC146818RTC_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/mc146818rtc_64.h>
+#include <asm/mc146818rtc_64.h>
#else
-#include <asm-sparc/mc146818rtc_32.h>
+#include <asm/mc146818rtc_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_MMU_H
#define ___ASM_SPARC_MMU_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/mmu_64.h>
+#include <asm/mmu_64.h>
#else
-#include <asm-sparc/mmu_32.h>
+#include <asm/mmu_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_MMU_CONTEXT_H
#define ___ASM_SPARC_MMU_CONTEXT_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/mmu_context_64.h>
+#include <asm/mmu_context_64.h>
#else
-#include <asm-sparc/mmu_context_32.h>
+#include <asm/mmu_context_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_MODULE_H
#define ___ASM_SPARC_MODULE_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/module_64.h>
+#include <asm/module_64.h>
#else
-#include <asm-sparc/module_32.h>
+#include <asm/module_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_MOSTEK_H
#define ___ASM_SPARC_MOSTEK_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/mostek_64.h>
+#include <asm/mostek_64.h>
#else
-#include <asm-sparc/mostek_32.h>
+#include <asm/mostek_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_OF_PLATFORM_H
#define ___ASM_SPARC_OF_PLATFORM_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/of_platform_64.h>
+#include <asm/of_platform_64.h>
#else
-#include <asm-sparc/of_platform_32.h>
+#include <asm/of_platform_32.h>
#endif
#endif
/*
* Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
* <benh@kernel.crashing.org>
- * Modified for Sparc by merging parts of asm-sparc/of_device.h
+ * Modified for Sparc by merging parts of asm/of_device.h
* by Stephen Rothwell
*
* This program is free software; you can redistribute it and/or
/*
* Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
* <benh@kernel.crashing.org>
- * Modified for Sparc by merging parts of asm-sparc/of_device.h
+ * Modified for Sparc by merging parts of asm/of_device.h
* by Stephen Rothwell
*
* This program is free software; you can redistribute it and/or
#ifndef ___ASM_SPARC_OPENPROM_H
#define ___ASM_SPARC_OPENPROM_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/openprom_64.h>
+#include <asm/openprom_64.h>
#else
-#include <asm-sparc/openprom_32.h>
+#include <asm/openprom_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_OPLIB_H
#define ___ASM_SPARC_OPLIB_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/oplib_64.h>
+#include <asm/oplib_64.h>
#else
-#include <asm-sparc/oplib_32.h>
+#include <asm/oplib_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_PAGE_H
#define ___ASM_SPARC_PAGE_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/page_64.h>
+#include <asm/page_64.h>
#else
-#include <asm-sparc/page_32.h>
+#include <asm/page_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_PCI_H
#define ___ASM_SPARC_PCI_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/pci_64.h>
+#include <asm/pci_64.h>
#else
-#include <asm-sparc/pci_32.h>
+#include <asm/pci_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_PERCPU_H
#define ___ASM_SPARC_PERCPU_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/percpu_64.h>
+#include <asm/percpu_64.h>
#else
-#include <asm-sparc/percpu_32.h>
+#include <asm/percpu_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_PGALLOC_H
#define ___ASM_SPARC_PGALLOC_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/pgalloc_64.h>
+#include <asm/pgalloc_64.h>
#else
-#include <asm-sparc/pgalloc_32.h>
+#include <asm/pgalloc_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_PGTABLE_H
#define ___ASM_SPARC_PGTABLE_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/pgtable_64.h>
+#include <asm/pgtable_64.h>
#else
-#include <asm-sparc/pgtable_32.h>
+#include <asm/pgtable_32.h>
#endif
#endif
#ifndef _SPARC_PGTABLE_H
#define _SPARC_PGTABLE_H
-/* asm-sparc/pgtable.h: Defines and functions used to work
+/* asm/pgtable.h: Defines and functions used to work
* with Sparc page tables.
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
#ifndef ___ASM_SPARC_POSIX_TYPES_H
#define ___ASM_SPARC_POSIX_TYPES_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/posix_types_64.h>
+#include <asm/posix_types_64.h>
#else
-#include <asm-sparc/posix_types_32.h>
+#include <asm/posix_types_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_PROCESSOR_H
#define ___ASM_SPARC_PROCESSOR_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/processor_64.h>
+#include <asm/processor_64.h>
#else
-#include <asm-sparc/processor_32.h>
+#include <asm/processor_32.h>
#endif
#endif
-/* include/asm-sparc/processor.h
+/* include/asm/processor.h
*
* Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu)
*/
extern unsigned long get_wchan(struct task_struct *);
+#define task_pt_regs(tsk) ((tsk)->thread.kregs)
#define KSTK_EIP(tsk) ((tsk)->thread.kregs->pc)
#define KSTK_ESP(tsk) ((tsk)->thread.kregs->u_regs[UREG_FP])
/*
- * include/asm-sparc64/processor.h
+ * include/asm/processor.h
*
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
*/
#ifndef ___ASM_SPARC_PTRACE_H
#define ___ASM_SPARC_PTRACE_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/ptrace_64.h>
+#include <asm/ptrace_64.h>
#else
-#include <asm-sparc/ptrace_32.h>
+#include <asm/ptrace_32.h>
#endif
#endif
#define user_mode(regs) (!((regs)->psr & PSR_PS))
#define instruction_pointer(regs) ((regs)->pc)
+#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
unsigned long profile_pc(struct pt_regs *);
extern void show_regs(struct pt_regs *);
#endif
} while (0)
#define user_mode(regs) (!((regs)->tstate & TSTATE_PRIV))
#define instruction_pointer(regs) ((regs)->tpc)
+#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
#define regs_return_value(regs) ((regs)->u_regs[UREG_I0])
#ifdef CONFIG_SMP
extern unsigned long profile_pc(struct pt_regs *);
#ifndef ___ASM_SPARC_REG_H
#define ___ASM_SPARC_REG_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/reg_64.h>
+#include <asm/reg_64.h>
#else
-#include <asm-sparc/reg_32.h>
+#include <asm/reg_32.h>
#endif
#endif
/*
- * linux/include/asm-sparc/reg.h
+ * linux/include/asm/reg.h
* Layout of the registers as expected by gdb on the Sparc
* we should replace the user.h definitions with those in
* this file, we don't even use the other
/*
- * linux/asm-sparc64/reg.h
+ * linux/asm/reg.h
* Layout of the registers as expected by gdb on the Sparc
* we should replace the user.h definitions with those in
* this file, we don't even use the other
#ifndef ___ASM_SPARC_SBUS_H
#define ___ASM_SPARC_SBUS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/sbus_64.h>
+#include <asm/sbus_64.h>
#else
-#include <asm-sparc/sbus_32.h>
+#include <asm/sbus_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SCATTERLIST_H
#define ___ASM_SPARC_SCATTERLIST_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/scatterlist_64.h>
+#include <asm/scatterlist_64.h>
#else
-#include <asm-sparc/scatterlist_32.h>
+#include <asm/scatterlist_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SECTIONS_H
#define ___ASM_SPARC_SECTIONS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/sections_64.h>
+#include <asm/sections_64.h>
#else
-#include <asm-sparc/sections_32.h>
+#include <asm/sections_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SFP_MACHINE_H
#define ___ASM_SPARC_SFP_MACHINE_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/sfp-machine_64.h>
+#include <asm/sfp-machine_64.h>
#else
-#include <asm-sparc/sfp-machine_32.h>
+#include <asm/sfp-machine_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SHMPARAM_H
#define ___ASM_SPARC_SHMPARAM_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/shmparam_64.h>
+#include <asm/shmparam_64.h>
#else
-#include <asm-sparc/shmparam_32.h>
+#include <asm/shmparam_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SIGCONTEXT_H
#define ___ASM_SPARC_SIGCONTEXT_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/sigcontext_64.h>
+#include <asm/sigcontext_64.h>
#else
-#include <asm-sparc/sigcontext_32.h>
+#include <asm/sigcontext_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SIGINFO_H
#define ___ASM_SPARC_SIGINFO_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/siginfo_64.h>
+#include <asm/siginfo_64.h>
#else
-#include <asm-sparc/siginfo_32.h>
+#include <asm/siginfo_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SIGNAL_H
#define ___ASM_SPARC_SIGNAL_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/signal_64.h>
+#include <asm/signal_64.h>
#else
-#include <asm-sparc/signal_32.h>
+#include <asm/signal_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SMP_H
#define ___ASM_SPARC_SMP_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/smp_64.h>
+#include <asm/smp_64.h>
#else
-#include <asm-sparc/smp_32.h>
+#include <asm/smp_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_SPINLOCK_H
#define ___ASM_SPARC_SPINLOCK_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/spinlock_64.h>
+#include <asm/spinlock_64.h>
#else
-#include <asm-sparc/spinlock_32.h>
+#include <asm/spinlock_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_STAT_H
#define ___ASM_SPARC_STAT_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/stat_64.h>
+#include <asm/stat_64.h>
#else
-#include <asm-sparc/stat_32.h>
+#include <asm/stat_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_STATFS_H
#define ___ASM_SPARC_STATFS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/statfs_64.h>
+#include <asm/statfs_64.h>
#else
-#include <asm-sparc/statfs_32.h>
+#include <asm/statfs_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_STRING_H
#define ___ASM_SPARC_STRING_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/string_64.h>
+#include <asm/string_64.h>
#else
-#include <asm-sparc/string_32.h>
+#include <asm/string_32.h>
#endif
#endif
/*
- * include/asm-sparc/sunbpp.h
+ * include/asm/sunbpp.h
*/
#ifndef _ASM_SPARC_SUNBPP_H
--- /dev/null
+#ifndef __ASM_SPARC_SYSCALL_H
+#define __ASM_SPARC_SYSCALL_H
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <asm/ptrace.h>
+
+/* The system call number is given by the user in %g1 */
+static inline long syscall_get_nr(struct task_struct *task,
+ struct pt_regs *regs)
+{
+ int syscall_p = pt_regs_is_syscall(regs);
+
+ return (syscall_p ? regs->u_regs[UREG_G1] : -1L);
+}
+
+static inline void syscall_rollback(struct task_struct *task,
+ struct pt_regs *regs)
+{
+ /* XXX This needs some thought. On Sparc we don't
+ * XXX save away the original %o0 value somewhere.
+ * XXX Instead we hold it in register %l5 at the top
+ * XXX level trap frame and pass this down to the signal
+ * XXX dispatch code which is the only place that value
+ * XXX ever was needed.
+ */
+}
+
+#ifdef CONFIG_SPARC32
+static inline bool syscall_has_error(struct pt_regs *regs)
+{
+ return (regs->psr & PSR_C) ? true : false;
+}
+static inline void syscall_set_error(struct pt_regs *regs)
+{
+ regs->psr |= PSR_C;
+}
+static inline void syscall_clear_error(struct pt_regs *regs)
+{
+ regs->psr &= ~PSR_C;
+}
+#else
+static inline bool syscall_has_error(struct pt_regs *regs)
+{
+ return (regs->tstate & (TSTATE_XCARRY | TSTATE_ICARRY)) ? true : false;
+}
+static inline void syscall_set_error(struct pt_regs *regs)
+{
+ regs->tstate |= (TSTATE_XCARRY | TSTATE_ICARRY);
+}
+static inline void syscall_clear_error(struct pt_regs *regs)
+{
+ regs->tstate &= ~(TSTATE_XCARRY | TSTATE_ICARRY);
+}
+#endif
+
+static inline long syscall_get_error(struct task_struct *task,
+ struct pt_regs *regs)
+{
+ long val = regs->u_regs[UREG_I0];
+
+ return (syscall_has_error(regs) ? -val : 0);
+}
+
+static inline long syscall_get_return_value(struct task_struct *task,
+ struct pt_regs *regs)
+{
+ long val = regs->u_regs[UREG_I0];
+
+ return val;
+}
+
+static inline void syscall_set_return_value(struct task_struct *task,
+ struct pt_regs *regs,
+ int error, long val)
+{
+ if (error) {
+ syscall_set_error(regs);
+ regs->u_regs[UREG_I0] = -error;
+ } else {
+ syscall_clear_error(regs);
+ regs->u_regs[UREG_I0] = val;
+ }
+}
+
+static inline void syscall_get_arguments(struct task_struct *task,
+ struct pt_regs *regs,
+ unsigned int i, unsigned int n,
+ unsigned long *args)
+{
+ int zero_extend = 0;
+ unsigned int j;
+
+#ifdef CONFIG_SPARC64
+ if (test_tsk_thread_flag(task, TIF_32BIT))
+ zero_extend = 1;
+#endif
+
+ for (j = 0; j < n; j++) {
+ unsigned long val = regs->u_regs[UREG_I0 + i + j];
+
+ if (zero_extend)
+ args[j] = (u32) val;
+ else
+ args[j] = val;
+ }
+}
+
+static inline void syscall_set_arguments(struct task_struct *task,
+ struct pt_regs *regs,
+ unsigned int i, unsigned int n,
+ const unsigned long *args)
+{
+ unsigned int j;
+
+ for (j = 0; j < n; j++)
+ regs->u_regs[UREG_I0 + i + j] = args[j];
+}
+
+#endif /* __ASM_SPARC_SYSCALL_H */
#ifndef ___ASM_SPARC_SYSTEM_H
#define ___ASM_SPARC_SYSTEM_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/system_64.h>
+#include <asm/system_64.h>
#else
-#include <asm-sparc/system_32.h>
+#include <asm/system_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_THREAD_INFO_H
#define ___ASM_SPARC_THREAD_INFO_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/thread_info_64.h>
+#include <asm/thread_info_64.h>
#else
-#include <asm-sparc/thread_info_32.h>
+#include <asm/thread_info_32.h>
#endif
#endif
* thread information flag bit numbers
*/
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
-/* flag bit 1 is available */
+#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */
#define TIF_SIGPENDING 2 /* signal pending */
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
#define TIF_RESTORE_SIGMASK 4 /* restore signal mask in do_signal() */
/* as above, but as bit values */
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
+#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
#define _TIF_USEDFPU (1<<TIF_USEDFPU)
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
+#define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | \
+ _TIF_SIGPENDING | \
+ _TIF_RESTORE_SIGMASK)
+
#endif /* __KERNEL__ */
#endif /* _ASM_THREAD_INFO_H */
* nop
*/
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
-/* flags bit 1 is available */
+#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */
#define TIF_SIGPENDING 2 /* signal pending */
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
#define TIF_PERFCTR 4 /* performance counters active */
#define TIF_POLLING_NRFLAG 14
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
+#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
#define _TIF_PERFCTR (1<<TIF_PERFCTR)
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
#define _TIF_USER_WORK_MASK ((0xff << TI_FLAG_WSAVED_SHIFT) | \
- (_TIF_SIGPENDING | \
- _TIF_NEED_RESCHED | _TIF_PERFCTR))
+ _TIF_DO_NOTIFY_RESUME_MASK | \
+ _TIF_NEED_RESCHED | _TIF_PERFCTR)
+#define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING)
/*
* Thread-synchronous status.
#ifndef ___ASM_SPARC_TIMER_H
#define ___ASM_SPARC_TIMER_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/timer_64.h>
+#include <asm/timer_64.h>
#else
-#include <asm-sparc/timer_32.h>
+#include <asm/timer_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_TIMEX_H
#define ___ASM_SPARC_TIMEX_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/timex_64.h>
+#include <asm/timex_64.h>
#else
-#include <asm-sparc/timex_32.h>
+#include <asm/timex_32.h>
#endif
#endif
/*
- * linux/include/asm-sparc/timex.h
+ * linux/include/asm/timex.h
*
* sparc architecture timex specifications
*/
/*
- * linux/include/asm-sparc64/timex.h
+ * linux/include/asm/timex.h
*
* sparc64 architecture timex specifications
*/
#ifndef ___ASM_SPARC_TLB_H
#define ___ASM_SPARC_TLB_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/tlb_64.h>
+#include <asm/tlb_64.h>
#else
-#include <asm-sparc/tlb_32.h>
+#include <asm/tlb_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_TLBFLUSH_H
#define ___ASM_SPARC_TLBFLUSH_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/tlbflush_64.h>
+#include <asm/tlbflush_64.h>
#else
-#include <asm-sparc/tlbflush_32.h>
+#include <asm/tlbflush_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_TOPOLOGY_H
#define ___ASM_SPARC_TOPOLOGY_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/topology_64.h>
+#include <asm/topology_64.h>
#else
-#include <asm-sparc/topology_32.h>
+#include <asm/topology_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_UACCESS_H
#define ___ASM_SPARC_UACCESS_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/uaccess_64.h>
+#include <asm/uaccess_64.h>
#else
-#include <asm-sparc/uaccess_32.h>
+#include <asm/uaccess_32.h>
#endif
#endif
#ifndef ___ASM_SPARC_UNISTD_H
#define ___ASM_SPARC_UNISTD_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/unistd_64.h>
+#include <asm/unistd_64.h>
#else
-#include <asm-sparc/unistd_32.h>
+#include <asm/unistd_32.h>
#endif
#endif
/*
- * include/asm-sparc64/utrap.h
+ * include/asm/utrap.h
*
* Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
*/
#include <asm/head.h>
/*
- * asm-sparc/vaddrs.h: Here we define the virtual addresses at
+ * asm/vaddrs.h: Here we define the virtual addresses at
* which important things will be mapped.
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
#ifndef ___ASM_SPARC_XOR_H
#define ___ASM_SPARC_XOR_H
#if defined(__sparc__) && defined(__arch64__)
-#include <asm-sparc/xor_64.h>
+#include <asm/xor_64.h>
#else
-#include <asm-sparc/xor_32.h>
+#include <asm/xor_32.h>
#endif
#endif
/*
- * include/asm-sparc/xor.h
+ * include/asm/xor.h
*
* Optimized RAID-5 checksumming functions for 32-bit Sparc.
*
/*
- * include/asm-sparc64/xor.h
+ * include/asm/xor.h
*
* High speed xor_block operation for RAID4/5 utilizing the
* UltraSparc Visual Instruction Set and Niagara block-init
be 1f
nop
+ add %sp, STACKFRAME_SZ, %o0
call syscall_trace
- nop
+ mov 1, %o1
1:
/* We are returning to a signal handler. */
mov %i3, %o3
linux_syscall_trace:
+ add %sp, STACKFRAME_SZ, %o0
call syscall_trace
- nop
+ mov 0, %o1
+ cmp %o0, 0
+ bne 3f
+ mov -ENOSYS, %o0
mov %i0, %o0
mov %i1, %o1
mov %i2, %o2
call %l7
mov %i5, %o5
+3:
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
ret_sys_call:
st %l2, [%sp + STACKFRAME_SZ + PT_NPC]
linux_syscall_trace2:
+ add %sp, STACKFRAME_SZ, %o0
+ mov 1, %o1
call syscall_trace
add %l1, 0x4, %l2 /* npc = npc+4 */
st %l1, [%sp + STACKFRAME_SZ + PT_PC]
#include <linux/signal.h>
#include <linux/regset.h>
#include <linux/elf.h>
+#include <linux/tracehook.h>
#include <asm/pgtable.h>
#include <asm/system.h>
return ret;
}
-asmlinkage void syscall_trace(void)
+asmlinkage int syscall_trace(struct pt_regs *regs, int syscall_exit_p)
{
- if (!test_thread_flag(TIF_SYSCALL_TRACE))
- return;
- if (!(current->ptrace & PT_PTRACED))
- return;
- ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
- ? 0x80 : 0));
- /*
- * this isn't the same as continuing with a signal, but it will do
- * for normal use. strace only continues with a signal if the
- * stopping signal is not SIGTRAP. -brl
- */
- if (current->exit_code) {
- send_sig (current->exit_code, current, 1);
- current->exit_code = 0;
+ int ret = 0;
+
+ if (test_thread_flag(TIF_SYSCALL_TRACE)) {
+ if (syscall_exit_p)
+ tracehook_report_syscall_exit(regs, 0);
+ else
+ ret = tracehook_report_syscall_entry(regs);
}
+
+ return ret;
}
ld [%curptr + TI_FLAGS], %g2
signal_p:
- andcc %g2, (_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK), %g0
+ andcc %g2, _TIF_DO_NOTIFY_RESUME_MASK, %g0
bz,a ret_trap_continue
ld [%sp + STACKFRAME_SZ + PT_PSR], %t_psr
+ mov %g2, %o2
mov %l5, %o1
- call do_signal
+ call do_notify_resume
add %sp, STACKFRAME_SZ, %o0 ! pt_regs ptr
/* Fall through. */
#include <linux/smp.h>
#include <linux/binfmts.h> /* do_coredum */
#include <linux/bitops.h>
+#include <linux/tracehook.h>
#include <asm/uaccess.h>
#include <asm/ptrace.h>
* want to handle. Thus you cannot kill init even with a SIGKILL even by
* mistake.
*/
-asmlinkage void do_signal(struct pt_regs * regs, unsigned long orig_i0)
+static void do_signal(struct pt_regs *regs, unsigned long orig_i0)
{
struct k_sigaction ka;
int restart_syscall;
*/
if (test_thread_flag(TIF_RESTORE_SIGMASK))
clear_thread_flag(TIF_RESTORE_SIGMASK);
+
+ tracehook_signal_handler(signr, &info, &ka, regs, 0);
return;
}
if (restart_syscall &&
}
}
+void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0,
+ unsigned long thread_info_flags)
+{
+ if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK))
+ do_signal(regs, orig_i0);
+ if (thread_info_flags & _TIF_NOTIFY_RESUME) {
+ clear_thread_flag(TIF_NOTIFY_RESUME);
+ tracehook_notify_resume(regs);
+ }
+}
+
asmlinkage int
do_sys_sigstack(struct sigstack __user *ssptr, struct sigstack __user *ossptr,
unsigned long sp)
select HAVE_LMB
select HAVE_ARCH_KGDB
select USE_GENERIC_SMP_HELPERS if SMP
+ select HAVE_ARCH_TRACEHOOK
config GENERIC_TIME
bool
-#include <asm-sparc/unistd.h>
+#include <asm/unistd_32.h>
unsigned sparc32_dir_class[] = {
#include <asm-generic/audit_dir_write.h>
unsigned long orig_i0,
unsigned long thread_info_flags);
-extern asmlinkage void syscall_trace(struct pt_regs *regs,
- int syscall_exit_p);
+extern asmlinkage int syscall_trace(struct pt_regs *regs, int syscall_exit_p);
extern void bad_trap_tl1(struct pt_regs *regs, long lvl);
#include <linux/audit.h>
#include <linux/signal.h>
#include <linux/regset.h>
+#include <linux/tracehook.h>
#include <linux/compat.h>
#include <linux/elf.h>
return ret;
}
-asmlinkage void syscall_trace(struct pt_regs *regs, int syscall_exit_p)
+asmlinkage int syscall_trace(struct pt_regs *regs, int syscall_exit_p)
{
+ int ret = 0;
+
/* do the secure computing check first */
secure_computing(regs->u_regs[UREG_G1]);
audit_syscall_exit(result, regs->u_regs[UREG_I0]);
}
- if (!(current->ptrace & PT_PTRACED))
- goto out;
-
- if (!test_thread_flag(TIF_SYSCALL_TRACE))
- goto out;
-
- ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
- ? 0x80 : 0));
-
- /*
- * this isn't the same as continuing with a signal, but it will do
- * for normal use. strace only continues with a signal if the
- * stopping signal is not SIGTRAP. -brl
- */
- if (current->exit_code) {
- send_sig(current->exit_code, current, 1);
- current->exit_code = 0;
+ if (test_thread_flag(TIF_SYSCALL_TRACE)) {
+ if (syscall_exit_p)
+ tracehook_report_syscall_exit(regs, 0);
+ else
+ ret = tracehook_report_syscall_entry(regs);
}
-out:
- if (unlikely(current->audit_context) && !syscall_exit_p)
+ if (unlikely(current->audit_context) && !syscall_exit_p && !ret)
audit_syscall_entry((test_thread_flag(TIF_32BIT) ?
AUDIT_ARCH_SPARC :
AUDIT_ARCH_SPARC64),
regs->u_regs[UREG_I1],
regs->u_regs[UREG_I2],
regs->u_regs[UREG_I3]);
+
+ return ret;
}
wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
ldx [%g6 + TI_FLAGS], %l0
-1: andcc %l0, _TIF_SIGPENDING, %g0
+1: andcc %l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
be,pt %xcc, __handle_user_windows_continue
nop
mov %l5, %o1
wrpr %g0, RTRAP_PSTATE, %pstate
wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
ldx [%g6 + TI_FLAGS], %l0
-1: andcc %l0, _TIF_SIGPENDING, %g0
+1: andcc %l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
be,pt %xcc, __handle_perfctrs_continue
sethi %hi(TSTATE_PEF), %o0
andcc %l1, %o0, %g0
andcc %l0, _TIF_NEED_RESCHED, %g0
bne,pn %xcc, __handle_preemption
- andcc %l0, _TIF_SIGPENDING, %g0
+ andcc %l0, _TIF_DO_NOTIFY_RESUME_MASK, %g0
bne,pn %xcc, __handle_signal
__handle_signal_continue:
ldub [%g6 + TI_WSAVED], %o2
#include <linux/errno.h>
#include <linux/wait.h>
#include <linux/ptrace.h>
+#include <linux/tracehook.h>
#include <linux/unistd.h>
#include <linux/mm.h>
#include <linux/tty.h>
#include <linux/binfmts.h>
#include <linux/bitops.h>
+#include <linux/tracehook.h>
#include <asm/uaccess.h>
#include <asm/ptrace.h>
* clear the TS_RESTORE_SIGMASK flag.
*/
current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
+
+ tracehook_signal_handler(signr, &info, &ka, regs, 0);
return;
}
if (restart_syscall &&
{
if (thread_info_flags & _TIF_SIGPENDING)
do_signal(regs, orig_i0);
+ if (thread_info_flags & _TIF_NOTIFY_RESUME) {
+ clear_thread_flag(TIF_NOTIFY_RESUME);
+ tracehook_notify_resume(regs);
+ }
}
#include <linux/binfmts.h>
#include <linux/compat.h>
#include <linux/bitops.h>
+#include <linux/tracehook.h>
#include <asm/uaccess.h>
#include <asm/ptrace.h>
* clear the TS_RESTORE_SIGMASK flag.
*/
current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
+
+ tracehook_signal_handler(signr, &info, &ka, regs, 0);
return;
}
if (restart_syscall &&
add %sp, PTREGS_OFF, %o0
call syscall_trace
clr %o1
+ brnz,pn %o0, 3f
+ mov -ENOSYS, %o0
srl %i0, 0, %o0
srl %i4, 0, %o4
srl %i1, 0, %o1
add %sp, PTREGS_OFF, %o0
call syscall_trace
clr %o1
+ brnz,pn %o0, 3f
+ mov -ENOSYS, %o0
mov %i0, %o0
mov %i1, %o1
mov %i2, %o2
+++ /dev/null
-# dummy file to avoid breaking make headers_install
+++ /dev/null
-# dummy file to avoid breaking make headers_install
+++ /dev/null
-#include <asm-sparc/agp.h>
+++ /dev/null
-#include <asm-sparc/apb.h>
+++ /dev/null
-#include <asm-sparc/asi.h>
+++ /dev/null
-#include <asm-sparc/atomic.h>
+++ /dev/null
-#include <asm-sparc/auxio.h>
+++ /dev/null
-#include <asm-sparc/auxvec.h>
+++ /dev/null
-#include <asm-sparc/backoff.h>
+++ /dev/null
-#include <asm-sparc/bbc.h>
+++ /dev/null
-#include <asm-sparc/bitops.h>
+++ /dev/null
-#include <asm-sparc/bpp.h>
+++ /dev/null
-#include <asm-sparc/bug.h>
+++ /dev/null
-#include <asm-sparc/bugs.h>
+++ /dev/null
-#include <asm-sparc/byteorder.h>
+++ /dev/null
-#include <asm-sparc/cache.h>
+++ /dev/null
-#include <asm-sparc/cacheflush.h>
+++ /dev/null
-#include <asm-sparc/chafsr.h>
+++ /dev/null
-#include <asm-sparc/checksum.h>
+++ /dev/null
-#include <asm-sparc/chmctrl.h>
+++ /dev/null
-#include <asm-sparc/cmt.h>
+++ /dev/null
-#include <asm-sparc/compat.h>
+++ /dev/null
-#include <asm-sparc/compat_signal.h>
+++ /dev/null
-#include <asm-sparc/cpudata.h>
+++ /dev/null
-#include <asm-sparc/cputime.h>
+++ /dev/null
-#include <asm-sparc/current.h>
+++ /dev/null
-#include <asm-sparc/dcr.h>
+++ /dev/null
-#include <asm-sparc/dcu.h>
+++ /dev/null
-#include <asm-sparc/delay.h>
+++ /dev/null
-#include <asm-sparc/device.h>
+++ /dev/null
-#include <asm-sparc/display7seg.h>
+++ /dev/null
-#include <asm-sparc/div64.h>
+++ /dev/null
-#include <asm-sparc/dma-mapping.h>
+++ /dev/null
-#include <asm-sparc/dma.h>
+++ /dev/null
-#include <asm-sparc/ebus.h>
+++ /dev/null
-#include <asm-sparc/elf.h>
+++ /dev/null
-#include <asm-sparc/emergency-restart.h>
+++ /dev/null
-#include <asm-sparc/envctrl.h>
+++ /dev/null
-#include <asm-sparc/errno.h>
+++ /dev/null
-#include <asm-sparc/estate.h>
+++ /dev/null
-#include <asm-sparc/fb.h>
+++ /dev/null
-#include <asm-sparc/fbio.h>
+++ /dev/null
-#include <asm-sparc/fcntl.h>
+++ /dev/null
-#include <asm-sparc/fhc.h>
+++ /dev/null
-#include <asm-sparc/floppy.h>
+++ /dev/null
-#include <asm-sparc/fpumacro.h>
+++ /dev/null
-#include <asm-sparc/futex.h>
+++ /dev/null
-#include <asm-sparc/hardirq.h>
+++ /dev/null
-#include <asm-sparc/head.h>
+++ /dev/null
-#include <asm-sparc/hugetlb.h>
+++ /dev/null
-#include <asm-sparc/hvtramp.h>
+++ /dev/null
-#include <asm-sparc/hw_irq.h>
+++ /dev/null
-#include <asm-sparc/hypervisor.h>
+++ /dev/null
-#include <asm-sparc/ide.h>
+++ /dev/null
-#include <asm-sparc/idprom.h>
+++ /dev/null
-#include <asm-sparc/intr_queue.h>
+++ /dev/null
-#include <asm-sparc/io.h>
+++ /dev/null
-#include <asm-sparc/ioctl.h>
+++ /dev/null
-#include <asm-sparc/ioctls.h>
+++ /dev/null
-#include <asm-sparc/iommu.h>
+++ /dev/null
-#include <asm-sparc/ipcbuf.h>
+++ /dev/null
-#include <asm-sparc/irq.h>
+++ /dev/null
-#include <asm-sparc/irq_regs.h>
+++ /dev/null
-#include <asm-sparc/irqflags.h>
+++ /dev/null
-#include <asm-sparc/kdebug.h>
+++ /dev/null
-#include <asm-sparc/kgdb.h>
+++ /dev/null
-#include <asm-sparc/kmap_types.h>
+++ /dev/null
-#include <asm-sparc/kprobes.h>
+++ /dev/null
-#include <asm-sparc/ldc.h>
+++ /dev/null
-#include <asm-sparc/linkage.h>
+++ /dev/null
-#include <asm-sparc/lmb.h>
+++ /dev/null
-#include <asm-generic/local.h>
+++ /dev/null
-#include <asm-sparc/lsu.h>
+++ /dev/null
-#include <asm-sparc/mc146818rtc.h>
+++ /dev/null
-#include <asm-sparc/mdesc.h>
+++ /dev/null
-#include <asm-sparc/mman.h>
+++ /dev/null
-#include <asm-sparc/mmu.h>
+++ /dev/null
-#include <asm-sparc/mmu_context.h>
+++ /dev/null
-#include <asm-sparc/mmzone.h>
+++ /dev/null
-#include <asm-sparc/module.h>
+++ /dev/null
-#include <asm-sparc/mostek.h>
+++ /dev/null
-#include <asm-sparc/msgbuf.h>
+++ /dev/null
-#include <asm-sparc/mutex.h>
+++ /dev/null
-#include <asm-sparc/ns87303.h>
+++ /dev/null
-#include <asm-sparc/of_device.h>
+++ /dev/null
-#include <asm-sparc/of_platform.h>
+++ /dev/null
-#include <asm-sparc/openprom.h>
+++ /dev/null
-#include <asm-sparc/openpromio.h>
+++ /dev/null
-#include <asm-sparc/oplib.h>
+++ /dev/null
-#include <asm-sparc/page.h>
+++ /dev/null
-#include <asm-sparc/param.h>
+++ /dev/null
-#include <asm-sparc/parport.h>
+++ /dev/null
-#include <asm-sparc/pci.h>
+++ /dev/null
-#include <asm-sparc/percpu.h>
+++ /dev/null
-#include <asm-sparc/perfctr.h>
+++ /dev/null
-#include <asm-sparc/pgalloc.h>
+++ /dev/null
-#include <asm-sparc/pgtable.h>
+++ /dev/null
-#include <asm-sparc/pil.h>
+++ /dev/null
-#include <asm-sparc/poll.h>
+++ /dev/null
-#include <asm-sparc/posix_types.h>
+++ /dev/null
-#include <asm-sparc/processor.h>
+++ /dev/null
-#include <asm-sparc/prom.h>
+++ /dev/null
-#include <asm-sparc/psrcompat.h>
+++ /dev/null
-#include <asm-sparc/pstate.h>
+++ /dev/null
-#include <asm-sparc/ptrace.h>
+++ /dev/null
-#include <asm-sparc/reboot.h>
+++ /dev/null
-#include <asm-sparc/reg.h>
+++ /dev/null
-#include <asm-sparc/resource.h>
+++ /dev/null
-#include <asm-sparc/rtc.h>
+++ /dev/null
-#include <asm-sparc/rwsem-const.h>
+++ /dev/null
-#include <asm-sparc/rwsem.h>
+++ /dev/null
-#include <asm-sparc/sbus.h>
+++ /dev/null
-#include <asm-sparc/scatterlist.h>
+++ /dev/null
-#include <asm-sparc/scratchpad.h>
+++ /dev/null
-#include <asm-sparc/seccomp.h>
+++ /dev/null
-#include <asm-sparc/sections.h>
+++ /dev/null
-#include <asm-sparc/sembuf.h>
+++ /dev/null
-#include <asm-sparc/setup.h>
+++ /dev/null
-#include <asm-sparc/sfafsr.h>
+++ /dev/null
-#include <asm-sparc/sfp-machine.h>
+++ /dev/null
-#include <asm-sparc/shmbuf.h>
+++ /dev/null
-#include <asm-sparc/shmparam.h>
+++ /dev/null
-#include <asm-sparc/sigcontext.h>
+++ /dev/null
-#include <asm-sparc/siginfo.h>
+++ /dev/null
-#include <asm-sparc/signal.h>
+++ /dev/null
-#include <asm-sparc/smp.h>
+++ /dev/null
-#include <asm-sparc/socket.h>
+++ /dev/null
-#include <asm-sparc/sockios.h>
+++ /dev/null
-#include <asm-sparc/sparsemem.h>
+++ /dev/null
-#include <asm-sparc/spinlock.h>
+++ /dev/null
-#include <asm-sparc/spinlock_types.h>
+++ /dev/null
-#include <asm-sparc/spitfire.h>
+++ /dev/null
-#include <asm-sparc/sstate.h>
+++ /dev/null
-#include <asm-sparc/stacktrace.h>
+++ /dev/null
-#include <asm-sparc/starfire.h>
+++ /dev/null
-#include <asm-sparc/stat.h>
+++ /dev/null
-#include <asm-sparc/statfs.h>
+++ /dev/null
-#include <asm-sparc/string.h>
+++ /dev/null
-#include <asm-sparc/sunbpp.h>
+++ /dev/null
-#include <asm-sparc/syscalls.h>
+++ /dev/null
-#include <asm-sparc/system.h>
+++ /dev/null
-#include <asm-sparc/termbits.h>
+++ /dev/null
-#include <asm-sparc/termios.h>
+++ /dev/null
-#include <asm-sparc/thread_info.h>
+++ /dev/null
-#include <asm-sparc/timer.h>
+++ /dev/null
-#include <asm-sparc/timex.h>
+++ /dev/null
-#include <asm-sparc/tlb.h>
+++ /dev/null
-#include <asm-sparc/tlbflush.h>
+++ /dev/null
-#include <asm-sparc/topology.h>
+++ /dev/null
-#include <asm-sparc/tsb.h>
+++ /dev/null
-#include <asm-sparc/ttable.h>
+++ /dev/null
-#include <asm-sparc/types.h>
+++ /dev/null
-#include <asm-sparc/uaccess.h>
+++ /dev/null
-#include <asm-sparc/uctx.h>
+++ /dev/null
-#include <asm-sparc/unaligned.h>
+++ /dev/null
-#include <asm-sparc/unistd.h>
+++ /dev/null
-#include <asm-sparc/upa.h>
+++ /dev/null
-#include <asm-sparc/user.h>
+++ /dev/null
-#include <asm-sparc/utrap.h>
+++ /dev/null
-#include <asm-sparc/vga.h>
+++ /dev/null
-#include <asm-sparc/vio.h>
+++ /dev/null
-#include <asm-sparc/visasm.h>
+++ /dev/null
-#include <asm-sparc/watchdog.h>
+++ /dev/null
-#include <asm-sparc/xor.h>