android_kernel_motorola_sm6225/include
Roland McGrath 88ac2921a7 tracehook: add linux/tracehook.h
This patch series introduces the "tracehook" interface layer of inlines in
<linux/tracehook.h>.  There are more details in the log entry for patch
01/23 and in the header file comments inside that patch.  Most of these
changes move code around with little or no change, and they should not
break anything or change any behavior.

This sets a new standard for uniform arch support to enable clean
arch-independent implementations of new debugging and tracing stuff,
denoted by CONFIG_HAVE_ARCH_TRACEHOOK.  Patch 20/23 adds that symbol to
arch/Kconfig, with comments listing everything an arch has to do before
setting "select HAVE_ARCH_TRACEHOOK".  These are elaborted a bit at:

	http://sourceware.org/systemtap/wiki/utrace/arch/HowTo

The new inlines that arch code must define or call have detailed kerneldoc
comments in the generic header files that say what is required.

No arch is obligated to do any work, and no arch's build should be broken
by these changes.  There are several steps that each arch should take so
it can set HAVE_ARCH_TRACEHOOK.  Most of these are simple.  Providing this
support will let new things people add for doing debugging and tracing of
user-level threads "just work" for your arch in the future.  For an arch
that does not provide HAVE_ARCH_TRACEHOOK, some new options for such
features will not be available for config.

I have done some arch work and will submit this to the arch maintainers
after the generic tracehook series settles in.  For now, that work is
available in my GIT repositories, and in patch and mbox-of-patches form at
http://people.redhat.com/roland/utrace/2.6-current/

This paves the way for my "utrace" work, to be submitted later.  But it is
not innately tied to that.  I hope that the tracehook series can go in
soon regardless of what eventually does or doesn't go on top of it.  For
anyone implementing any kind of new tracing/debugging plan, or just
understanding all the context of the existing ptrace implementation,
having tracehook.h makes things much easier to find and understand.

This patch:

This adds the new kernel-internal header file <linux/tracehook.h>.  This
is not yet used at all.  The comments in the header introduce what the
following series of patches is about.

The aim is to formalize and consolidate all the places that the core
kernel code and the arch code now ties into the ptrace implementation.

These patches mostly don't cause any functional change.  They just move
the details of ptrace logic out of core code into tracehook.h inlines,
where they are mostly compiled away to the same as before.  All that
changes is that everything is thoroughly documented and any future
reworking of ptrace, or addition of something new, would not have to touch
core code all over, just change the tracehook.h inlines.

The new linux/ptrace.h inlines are used by the following patches in the
new tracehook_*() inlines.  Using these helpers for the ptrace event stops
makes it simple to change or disable the old ptrace implementation of
these stops conditionally later.

Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-26 12:00:08 -07:00
..
acpi Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2008-07-16 17:25:46 -07:00
asm-alpha dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-arm mm: spinlock tree_lock 2008-07-26 12:00:06 -07:00
asm-avr32 dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-blackfin Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-cris dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-frv dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-generic Better interface for hooking early initcalls 2008-07-26 12:00:04 -07:00
asm-h8300 Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-ia64 dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-m32r Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-m68k dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-m68knommu Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-mips dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-mn10300 dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-parisc mm: spinlock tree_lock 2008-07-26 12:00:06 -07:00
asm-powerpc dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-s390 Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-sh dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-sparc dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
asm-sparc64 remove dummy asm/kvm.h files 2008-07-25 14:35:50 -04:00
asm-um Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
asm-v850 remove the v850 port 2008-07-24 10:47:24 -07:00
asm-x86 x86: lockless get_user_pages_fast() 2008-07-26 12:00:06 -07:00
asm-xtensa dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
crypto crypto: hash - Move ahash functions into crypto/hash.h 2008-07-10 20:35:18 +08:00
drm drm/radeon: fixup issue with radeon and PAT support. 2008-07-15 15:48:05 +10:00
keys
linux tracehook: add linux/tracehook.h 2008-07-26 12:00:08 -07:00
math-emu
media V4L/DVB (8395): saa7134: Fix Kbuild dependency of ir-kbd-i2c 2008-07-20 07:29:03 -03:00
mtd UBI: fix checkpatch.pl errors and warnings 2008-07-24 13:36:09 +03:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-25 17:40:16 -07:00
pcmcia pcmcia: (re)move {pcmcia,pccard}_get_status 2008-06-24 15:33:44 +02:00
rdma dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
rxrpc
scsi driver core: remove KOBJ_NAME_LEN define 2008-07-21 21:54:52 -07:00
sound ALSA: Release v1.0.17 2008-07-14 09:54:43 +02:00
video include/video/atmel_lcdc.h must #include <linux/workqueue.h> 2008-07-26 12:00:01 -07:00
xen xen: implement Xen-specific spinlocks 2008-07-16 11:15:53 +02:00
Kbuild drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00