+++ /dev/null
-<facility name=core>
- <description>The core facility contains the basic tracing related events</description>
-
- <event name=facility_load>
- <description>Facility is loaded</description>
- <struct>
- <field name="name"><string/></field>
- <field name="checksum"><uint size=4/></field>
- <field name="id"><uint size=4/></field>
- <field name="long_size"><uint size=4/></field>
- <field name="pointer_size"><uint size=4/></field>
- <field name="size_t_size"><uint size=4/></field>
- <field name="alignment"><uint size=4/></field>
- </struct>
- </event>
-
- <event name=facility_unload>
- <description>Facility is unloaded</description>
- <struct>
- <field name="id"><uint size=4/></field>
- </struct>
- </event>
-
- <event name=time_heartbeat per_tracefile>
- <description>System time values sent periodically to detect cycle counter
- rollovers. Useful when only the 32 LSB of the TSC are saved in events
- header : we save the full 64 bits in this event.
- </description>
- <typeref name=timestamp/>
- </event>
-
- <event name=state_dump_facility_load per_trace>
- <description>Facility is loaded while in state dump</description>
- <struct>
- <field name="name"><string/></field>
- <field name="checksum"><uint size=4/></field>
- <field name="id"><uint size=4/></field>
- <field name="long_size"><uint size=4/></field>
- <field name="pointer_size"><uint size=4/></field>
- <field name="size_t_size"><uint size=4/></field>
- <field name="alignment"><uint size=4/></field>
- </struct>
- </event>
-
- <type name=timestamp>
- <struct>
- <field name="seconds"><uint size=4/></field>
- <field name="nanoseconds"><uint size=4/></field>
- <field name="cycle_count"><uint size=8/></field>
- </struct>
- </type>
-
-</facility>
+++ /dev/null
-<facility name=fs>
- <description>The fs facility contains events related to file system operation</description>
-
- <event name=buf_wait_start>
- <description>Staring to wait for a buffer</description>
- <struct>
- <field name="address"> <description>Address of the buffer head.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=buf_wait_end>
- <description>Ending to wait for a buffer</description>
- <struct>
- <field name="address"> <description>Address of the buffer head.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=exec>
- <description>Executing a file</description>
- <struct>
- <field name="filename"> <description>File name</description> <string/> </field>
- </struct>
- </event>
-
- <event name=open>
- <description>Opening a file</description>
- <struct>
- <field name="filename"> <description>File name</description> <string/> </field>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=close>
- <description>Closing a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=read>
- <description>Reading from a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- <field name="count"> <description>Number of bytes to read</description> <size_t/> </field>
- </struct>
- </event>
-
- <event name=write>
- <description>Write to a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- <field name="count"> <description>Number of bytes to write</description> <size_t/> </field>
- </struct>
- </event>
-
- <event name=seek>
- <description>Seek a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- <field name="offset"> <description>Number of bytes to write</description> <off_t/> </field>
- <field name="origin"> <description>Number of bytes to write</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=ioctl>
- <description>Do a IOCTL on a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- <field name="cmd"> <description>Command</description> <uint size=4/> </field>
- <field name="arg"> <description>Argument</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=select>
- <description>Do a select on a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- <field name="timeout"> <description>Time out</description> <ulong/> </field>
- </struct>
- </event>
-
- <event name=poll>
- <description>Do a poll on a file descriptor</description>
- <struct>
- <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
- </struct>
- </event>
-
-</facility>
+++ /dev/null
-<facility name=ipc>
- <description>The ipc facility contains events related to Inter Process Communication</description>
-
- <event name=call>
-
- <description>IPC call</description>
- <struct>
- <field name="call_number"> <description>Number of IPC call</description> <uint size=4/> </field>
-
- <field name="first"> <description>First argument</description> <int size=4/> </field>
- </struct>
- </event>
- <event name=msg_create>
- <description>Get an IPC message queue identifier</description>
- <struct>
- <field name="id"> <description>Message queue identifier</description><long/> </field>
- <field name="flags"> <description>Message flags</description> <int size=4/> </field>
- </struct>
- </event>
-
- <event name=sem_create>
- <description>Get an IPC semaphore identifier</description>
- <struct>
- <field name="id"> <description>Semaphore identifier</description> <long/> </field>
- <field name="flags"> <description>Semaphore flags</description> <int size=4/> </field>
- </struct>
- </event>
-
- <event name=shm_create>
- <description>Get an IPC shared memory identifier</description>
- <struct>
- <field name="id"> <description>Shared memory identifier</description> <long/> </field>
- <field name="flags"> <description>Shared memory flags</description> <int size=4/> </field>
- </struct>
- </event>
-
-</facility>
+++ /dev/null
-<facility name=kernel>
- <description>The kernel facility has events related to kernel execution status.</description>
-
- <event name=syscall_entry>
- <description>System call entry</description>
- <struct>
- <field name="syscall_id"> <description>Syscall entry number in entry.S</description> <uint size=1/> </field>
- <field name="address"> <description>Address from which call was made</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=syscall_exit>
- <description>System call exit</description>
- </event>
-
- <event name=trap_entry>
- <description>Entry in a trap</description>
- <struct>
- <field name="trap_id"> <description>Trap number</description> <uint size=2/> </field>
- <field name="address"> <description>Address where trap occured</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=trap_exit>
- <description>Exit from a trap</description>
- </event>
-
- <event name=soft_irq_entry>
- <description>Soft IRQ entry</description>
- <struct>
- <field name="softirq_id"> <description>Soft IRQ number</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=soft_irq_exit>
- <description>Soft IRQ exit</description>
- <struct>
- <field name="softirq_id"> <description>Soft IRQ number</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=tasklet_entry>
- <description>Tasklet entry</description>
- <struct>
- <field name="priority"> <description>Tasklet priority</description> <typeref name=tasklet_priority/> </field>
- <field name="address"> <description>Tasklet function address</description> <pointer/> </field>
- <field name="data"> <description>Tasklet data address</description> <ulong/> </field>
- </struct>
- </event>
-
- <event name=tasklet_exit>
- <description>Tasklet exit</description>
- <struct>
- <field name="priority"> <description>Tasklet priority</description> <typeref name=tasklet_priority/> </field>
- <field name="address"> <description>Tasklet function address</description> <pointer/> </field>
- <field name="data"> <description>Tasklet data address</description> <ulong/> </field>
- </struct>
- </event>
-
- <event name=irq_entry>
- <description>Entry in an irq</description>
- <struct>
- <field name="irq_id"> <description>IRQ number</description> <uint size=4/> </field>
- <field name="mode"> <description>Are we executing kernel code</description> <typeref name=irq_mode/> </field>
- </struct>
- </event>
-
- <event name=irq_exit>
- <description>Exit from an IRQ</description>
- </event>
-
- <type name=tasklet_priority>
- <enum size=1>
- <label name=LOW value=0/> <description>Low priority tasklet</description>
- <label name=HIGH value=1/> <description>High priority tasklet</description>
- </enum>
- </type>
-
- <type name=irq_mode>
- <enum size=1>
- <label name=user value=0/> <description>User context</description>
- <label name=kernel value=1/> <description>Kernel context</description>
- </enum>
- </type>
-
-</facility>
+++ /dev/null
-<facility name=memory>
- <description>The memory facility has memory management events.</description>
-
- <event name=page_alloc>
- <description>Page allocation</description>
- <struct>
- <field name="order"> <description>Order of the page to allocate</description> <uint size=4/> </field>
- <field name="address"> <description>Assigned page address, or 0 if
- failed.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=page_free>
- <description>Page free</description>
- <struct>
- <field name="order"> <description>Order of the page to free</description> <uint size=4/> </field>
- <field name="address"> <description>Address of the page to free.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=swap_in>
- <description>Page swapped into memory</description>
- <struct>
- <field name="address"> <description>Address of the page to swap in.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=swap_out>
- <description>Page swapped to disk</description>
- <struct>
- <field name="address"> <description>Address of the page to swap out.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=page_wait_start>
- <description>Staring to wait for a page</description>
- <struct>
- <field name="address"> <description>Address of the page we wait for.</description> <pointer/> </field>
- </struct>
- </event>
-
- <event name=page_wait_end>
- <description>Ending wait for a page</description>
- <struct>
- <field name="address"> <description>Address of the page we wait for.</description> <pointer/> </field>
- </struct>
- </event>
-
-</facility>
+++ /dev/null
-<facility name=network>
- <description>The network facility contains events related to low level network operations</description>
-
- <event name=packet_in>
- <description>A packet is arriving</description>
- <struct>
- <field name="skbuff"> <description>Socket buffer pointer : identify the socket buffer</description> <pointer/> </field>
- <field name="protocol"> <description>Protocol of the packet</description> <uint size=2/> </field>
- </struct>
- </event>
-
- <event name=packet_out>
- <description>We send a packet</description>
- <struct>
- <field name="skbuff"> <description>Socket buffer pointer : identify the socket buffer</description> <pointer/> </field>
- <field name="protocol"> <description>Protocol of the packet</description> <uint size=2/> </field>
- </struct>
- </event>
-
-</facility>
+++ /dev/null
-<facility name=process>
- <description>The process facility has events related to process handling in
- the kernel.</description>
-
- <event name=fork>
- <description>Process fork</description>
- <struct>
- <field name="parent_pid"> <description>PID of the parent process</description> <uint size=4/> </field>
- <field name="child_pid"> <description>PID of the child process</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=kernel_thread>
- <description>Just created a new kernel thread</description>
- <struct>
- <field name="pid"> <description>PID of the kernel thread</description> <uint size=4/> </field>
- <field name="function"> <description>Function called</description> <pointer/> </field>
- </struct>
- </event>
-
-
- <event name=exit>
- <description>Process exit</description>
- <struct>
- <field name="pid"> <description>PID of the process</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=wait>
- <description>Process wait</description>
- <struct>
- <field name="parent_pid"> <description>PID of the waiting process</description> <uint size=4/> </field>
- <field name="child_pid"> <description>PID of the process waited for</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=free>
- <description>Process kernel data structure free (end of life of a zombie)</description>
- <struct>
- <field name="pid"> <description>PID of the freed process</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=kill>
- <description>Process kill system call</description>
- <struct>
- <field name="pid"> <description>PID of the process</description> <uint size=4/> </field>
- <field name="target_pid"> <description>PID of the process to kill</description> <uint size=4/> </field>
- <field name="signal"> <description>Signal number</description> <typeref name=signal_name/> </field>
- </struct>
- </event>
-
- <event name=signal>
- <description>Process signal reception</description>
- <struct>
- <field name="pid"> <description>PID of the receiving process</description> <uint size=4/> </field>
- <field name="signal"> <description>Signal number</description> <typeref name=signal_name/> </field>
- </struct>
- </event>
-
- <event name=wakeup>
- <description>Process wakeup</description>
- <struct>
- <field name="pid"> <description>PID of the receiving process</description> <uint size=4/> </field>
- <field name="state"> <description>State of the awakened process. -1 unrunnable, 0 runnable, >0 stopped.</description> <int size=4/> </field>
- </struct>
- </event>
-
- <event name=schedchange>
- <description>Scheduling change</description>
- <struct>
- <field name="out"> <description>Outgoing process</description> <uint size=4/> </field>
- <field name="in"> <description>Incoming process</description> <uint size=4/> </field>
- <field name="out_state"> <description>Outgoing process' state. -1 unrunnable, 0 runnable, >0 stopped.</description> <int size=4/> </field>
- </struct>
- </event>
-
- <type name=signal_name>
- <enum size=4>
- <label name=SIGHUP value=1/> <description>Hangup (POSIX).</description>
- <label name=SIGINT value=2/> <description>Interrupt (ANSI).</description>
- <label name=SIGQUIT value=3/> <description>Quit (POSIX).</description>
- <label name=SIGILL value=4/> <description>Illegal instruction (ANSI).</description>
- <label name=SIGTRAP value=5/> <description>Trace trap (POSIX).</description>
- <label name=SIGABRT value=6/> <description>Abort (ANSI).</description>
- <label name=SIGBUS value=7/> <description>BUS error (4.2 BSD).</description>
- <label name=SIGFPE value=8/> <description>Floating-point exception (ANSI).</description>
- <label name=SIGKILL value=9/> <description>Kill, unblockable (POSIX).</description>
- <label name=SIGUSR1 value=10/> <description>User-defined signal 1 (POSIX).</description>
- <label name=SIGSEGV value=11/> <description>Segmentation violation (ANSI).</description>
- <label name=SIGUSR2 value=12/> <description>User-defined signal 2 (POSIX).</description>
- <label name=SIGPIPE value=13/> <description>Broken pipe (POSIX).</description>
- <label name=SIGALRM value=14/> <description>Alarm clock (POSIX).</description>
- <label name=SIGTERM value=15/> <description>Termination (ANSI).</description>
- <label name=SIGSTKFLT value=16/> <description>Stack fault.</description>
-
- <label name=SIGCHLD value=17/> <description>Child status has changed (POSIX).</description>
- <label name=SIGCONT value=18/> <description>Continue (POSIX).</description>
- <label name=SIGSTOP value=19/> <description>Stop, unblockable (POSIX).</description>
- <label name=SIGTSTP value=20/> <description>Keyboard stop (POSIX).</description>
- <label name=SIGTTIN value=21/> <description>Background read from tty (POSIX).</description>
- <label name=SIGTTOU value=22/> <description>Background write to tty (POSIX).</description>
- <label name=SIGURG value=23/> <description>Urgent condition on socket (4.2 BSD).</description>
- <label name=SIGXCPU value=24/> <description>CPU limit exceeded (4.2 BSD).</description>
- <label name=SIGXFSZ value=25/> <description>File size limit exceeded (4.2 BSD).</description>
- <label name=SIGVTALRM value=26/> <description>Virtual alarm clock (4.2 BSD).</description>
- <label name=SIGPROF value=27/> <description>Profiling alarm clock (4.2 BSD).</description>
- <label name=SIGWINCH value=28/> <description>Window size change (4.3 BSD, Sun).</description>
- <label name=SIGIO value=29/> <description>I/O now possible (4.2 BSD). (aka SIGPOLL)</description>
- <label name=SIGPWR value=30/> <description>Power failure restart (System V).</description>
- <label name=SIGSYS value=31/> <description>Bad system call.</description>
- </enum>
- </type>
-
-
-</facility>
+++ /dev/null
-<facility name=s390_kernel>
- <description>The kernel facility has events related to kernel execution status.</description>
-
- <event name=trap_entry>
- <description>Entry in a trap</description>
- <struct>
- <field name="trap_id"> <description>Trap number</description> <uint size=8/> </field>
- <field name="address"> <description>Address where trap occured</description> <pointer/> </field>
- </struct>
- </event>
-
-</facility>
+++ /dev/null
-<facility name=socket>
- <description>The socket facility contains events related to sockets</description>
-
- <event name=call>
- <description>Generic socket call : FIXME : should be more detailed.</description>
- <struct>
- <field name="call_number"> <description>Number of socket call</description> <int size=4/> </field>
- <field name="first_argument"> <description>First argument of socket call</description> <ulong/> </field>
- </struct>
- </event>
-
- <event name=create>
- <description>Create a socket</description>
- <struct>
- <field name="socket"> <description>Socket structure address</description> <pointer/> </field>
- <field name="family"> <description>Socket family</description> <int size=4/> </field>
- <field name="type"> <description>Socket type</description> <int size=4/> </field>
- <field name="protocol"> <description>Socket protocol</description> <int size=4/> </field>
- <field name="fd"> <description>Socket file descriptor</description> <int size=4/> </field>
- </struct>
- </event>
-
- <event name=sendmsg>
- <description>Sending a socket message</description>
- <struct>
- <field name="socket"> <description>Socket structure address</description> <pointer/> </field>
- <field name="family"> <description>Socket family</description> <int size=4/> </field>
- <field name="type"> <description>Socket type</description> <int size=4/> </field>
- <field name="protocol"> <description>Socket protocol</description> <int size=4/> </field>
- <field name="size"> <description>Size of the message</description> <size_t/> </field>
- </struct>
- </event>
-
- <event name=recvmsg>
- <description>Receiving a socket message</description>
- <struct>
- <field name="socket"> <description>Socket structure address</description> <pointer/> </field>
- <field name="family"> <description>Socket family</description> <int size=4/> </field>
- <field name="type"> <description>Socket type</description> <int size=4/> </field>
- <field name="protocol"> <description>Socket protocol</description> <int size=4/> </field>
- <field name="size"> <description>Size of the message</description> <size_t/> </field>
- </struct>
- </event>
-
-
-
-
-
-</facility>
+++ /dev/null
-<facility name=timer>
- <description>The timer facility has events related to timer events in the kernel.</description>
-
- <event name=expired>
- <description>A timer or itimer has expired.</description>
- <struct>
- <field name="pid"> <description>PID of the process to wake up.</description> <uint size=4/> </field>
- </struct>
- </event>
-
- <event name=softirq>
- <description>The timer softirq is currently runned.</description>
- </event>
-
- <event name=set_itimer>
- <description>An interval timer is set.</description>
- <struct>
- <field name="which"> <description>kind of interval timer.</description>
- <typeref name=itimer_kind/></field>
- <field name="interval_seconds"><uint size=4/></field>
- <field name="interval_microseconds"><uint size=4/></field>
- <field name="value_seconds"><uint size=4/></field>
- <field name="value_microseconds"><uint size=4/></field>
- </struct>
- </event>
-
- <type name=itimer_kind>
- <enum size=4>
- <label name=ITIMER_REAL value=0/> <description>decrements in real time,
- and delivers SIGALRM upon expiration.</description>
- <label name=ITIMER_VIRTUAL value=1/> <description>decrements only when the
- process is executing, and delivers SIGVTALRM upon expiration.</description>
- <label name=ITIMER_PROF value=2/> <description>decrements both when the
- process executes and when the system is executing on behalf of the
- process. Coupled with ITIMER_VIRTUAL, this timer is usually used to
- profile the time spent by the application in user and kernel space.
- SIGPROF is delivered upon expiration.</description>
- </enum>
- </type>
-
-</facility>
--- /dev/null
+<facility name=core>
+ <description>The core facility contains the basic tracing related events</description>
+
+ <event name=facility_load>
+ <description>Facility is loaded</description>
+ <struct>
+ <field name="name"><string/></field>
+ <field name="checksum"><uint size=4/></field>
+ <field name="id"><uint size=4/></field>
+ <field name="long_size"><uint size=4/></field>
+ <field name="pointer_size"><uint size=4/></field>
+ <field name="size_t_size"><uint size=4/></field>
+ <field name="alignment"><uint size=4/></field>
+ </struct>
+ </event>
+
+ <event name=facility_unload>
+ <description>Facility is unloaded</description>
+ <struct>
+ <field name="id"><uint size=4/></field>
+ </struct>
+ </event>
+
+ <event name=time_heartbeat per_tracefile>
+ <description>System time values sent periodically to detect cycle counter
+ rollovers. Useful when only the 32 LSB of the TSC are saved in events
+ header : we save the full 64 bits in this event.
+ </description>
+ <typeref name=timestamp/>
+ </event>
+
+ <event name=state_dump_facility_load per_trace>
+ <description>Facility is loaded while in state dump</description>
+ <struct>
+ <field name="name"><string/></field>
+ <field name="checksum"><uint size=4/></field>
+ <field name="id"><uint size=4/></field>
+ <field name="long_size"><uint size=4/></field>
+ <field name="pointer_size"><uint size=4/></field>
+ <field name="size_t_size"><uint size=4/></field>
+ <field name="alignment"><uint size=4/></field>
+ </struct>
+ </event>
+
+ <type name=timestamp>
+ <struct>
+ <field name="seconds"><uint size=4/></field>
+ <field name="nanoseconds"><uint size=4/></field>
+ <field name="cycle_count"><uint size=8/></field>
+ </struct>
+ </type>
+
+</facility>
--- /dev/null
+<facility name=fs>
+ <description>The fs facility contains events related to file system operation</description>
+
+ <event name=buf_wait_start>
+ <description>Staring to wait for a buffer</description>
+ <struct>
+ <field name="address"> <description>Address of the buffer head.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=buf_wait_end>
+ <description>Ending to wait for a buffer</description>
+ <struct>
+ <field name="address"> <description>Address of the buffer head.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=exec>
+ <description>Executing a file</description>
+ <struct>
+ <field name="filename"> <description>File name</description> <string/> </field>
+ </struct>
+ </event>
+
+ <event name=open>
+ <description>Opening a file</description>
+ <struct>
+ <field name="filename"> <description>File name</description> <string/> </field>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=close>
+ <description>Closing a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=read>
+ <description>Reading from a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ <field name="count"> <description>Number of bytes to read</description> <size_t/> </field>
+ </struct>
+ </event>
+
+ <event name=write>
+ <description>Write to a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ <field name="count"> <description>Number of bytes to write</description> <size_t/> </field>
+ </struct>
+ </event>
+
+ <event name=seek>
+ <description>Seek a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ <field name="offset"> <description>Number of bytes to write</description> <off_t/> </field>
+ <field name="origin"> <description>Number of bytes to write</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=ioctl>
+ <description>Do a IOCTL on a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ <field name="cmd"> <description>Command</description> <uint size=4/> </field>
+ <field name="arg"> <description>Argument</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=select>
+ <description>Do a select on a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ <field name="timeout"> <description>Time out</description> <ulong/> </field>
+ </struct>
+ </event>
+
+ <event name=poll>
+ <description>Do a poll on a file descriptor</description>
+ <struct>
+ <field name="fd"> <description>File descriptor</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+</facility>
--- /dev/null
+<facility name=ipc>
+ <description>The ipc facility contains events related to Inter Process Communication</description>
+
+ <event name=call>
+
+ <description>IPC call</description>
+ <struct>
+ <field name="call_number"> <description>Number of IPC call</description> <uint size=4/> </field>
+
+ <field name="first"> <description>First argument</description> <int size=4/> </field>
+ </struct>
+ </event>
+ <event name=msg_create>
+ <description>Get an IPC message queue identifier</description>
+ <struct>
+ <field name="id"> <description>Message queue identifier</description><long/> </field>
+ <field name="flags"> <description>Message flags</description> <int size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=sem_create>
+ <description>Get an IPC semaphore identifier</description>
+ <struct>
+ <field name="id"> <description>Semaphore identifier</description> <long/> </field>
+ <field name="flags"> <description>Semaphore flags</description> <int size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=shm_create>
+ <description>Get an IPC shared memory identifier</description>
+ <struct>
+ <field name="id"> <description>Shared memory identifier</description> <long/> </field>
+ <field name="flags"> <description>Shared memory flags</description> <int size=4/> </field>
+ </struct>
+ </event>
+
+</facility>
--- /dev/null
+<facility name=kernel>
+ <description>The kernel facility has events related to kernel execution status.</description>
+
+ <event name=syscall_entry>
+ <description>System call entry</description>
+ <struct>
+ <field name="syscall_id"> <description>Syscall entry number in entry.S</description> <uint size=1/> </field>
+ <field name="address"> <description>Address from which call was made</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=syscall_exit>
+ <description>System call exit</description>
+ </event>
+
+ <event name=trap_entry>
+ <description>Entry in a trap</description>
+ <struct>
+ <field name="trap_id"> <description>Trap number</description> <uint size=2/> </field>
+ <field name="address"> <description>Address where trap occured</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=trap_exit>
+ <description>Exit from a trap</description>
+ </event>
+
+ <event name=soft_irq_entry>
+ <description>Soft IRQ entry</description>
+ <struct>
+ <field name="softirq_id"> <description>Soft IRQ number</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=soft_irq_exit>
+ <description>Soft IRQ exit</description>
+ <struct>
+ <field name="softirq_id"> <description>Soft IRQ number</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=tasklet_entry>
+ <description>Tasklet entry</description>
+ <struct>
+ <field name="priority"> <description>Tasklet priority</description> <typeref name=tasklet_priority/> </field>
+ <field name="address"> <description>Tasklet function address</description> <pointer/> </field>
+ <field name="data"> <description>Tasklet data address</description> <ulong/> </field>
+ </struct>
+ </event>
+
+ <event name=tasklet_exit>
+ <description>Tasklet exit</description>
+ <struct>
+ <field name="priority"> <description>Tasklet priority</description> <typeref name=tasklet_priority/> </field>
+ <field name="address"> <description>Tasklet function address</description> <pointer/> </field>
+ <field name="data"> <description>Tasklet data address</description> <ulong/> </field>
+ </struct>
+ </event>
+
+ <event name=irq_entry>
+ <description>Entry in an irq</description>
+ <struct>
+ <field name="irq_id"> <description>IRQ number</description> <uint size=4/> </field>
+ <field name="mode"> <description>Are we executing kernel code</description> <typeref name=irq_mode/> </field>
+ </struct>
+ </event>
+
+ <event name=irq_exit>
+ <description>Exit from an IRQ</description>
+ </event>
+
+ <type name=tasklet_priority>
+ <enum size=1>
+ <label name=LOW value=0/> <description>Low priority tasklet</description>
+ <label name=HIGH value=1/> <description>High priority tasklet</description>
+ </enum>
+ </type>
+
+ <type name=irq_mode>
+ <enum size=1>
+ <label name=user value=0/> <description>User context</description>
+ <label name=kernel value=1/> <description>Kernel context</description>
+ </enum>
+ </type>
+
+</facility>
--- /dev/null
+<facility name=memory>
+ <description>The memory facility has memory management events.</description>
+
+ <event name=page_alloc>
+ <description>Page allocation</description>
+ <struct>
+ <field name="order"> <description>Order of the page to allocate</description> <uint size=4/> </field>
+ <field name="address"> <description>Assigned page address, or 0 if
+ failed.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=page_free>
+ <description>Page free</description>
+ <struct>
+ <field name="order"> <description>Order of the page to free</description> <uint size=4/> </field>
+ <field name="address"> <description>Address of the page to free.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=swap_in>
+ <description>Page swapped into memory</description>
+ <struct>
+ <field name="address"> <description>Address of the page to swap in.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=swap_out>
+ <description>Page swapped to disk</description>
+ <struct>
+ <field name="address"> <description>Address of the page to swap out.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=page_wait_start>
+ <description>Staring to wait for a page</description>
+ <struct>
+ <field name="address"> <description>Address of the page we wait for.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+ <event name=page_wait_end>
+ <description>Ending wait for a page</description>
+ <struct>
+ <field name="address"> <description>Address of the page we wait for.</description> <pointer/> </field>
+ </struct>
+ </event>
+
+</facility>
--- /dev/null
+<facility name=network>
+ <description>The network facility contains events related to low level network operations</description>
+
+ <event name=packet_in>
+ <description>A packet is arriving</description>
+ <struct>
+ <field name="skbuff"> <description>Socket buffer pointer : identify the socket buffer</description> <pointer/> </field>
+ <field name="protocol"> <description>Protocol of the packet</description> <uint size=2/> </field>
+ </struct>
+ </event>
+
+ <event name=packet_out>
+ <description>We send a packet</description>
+ <struct>
+ <field name="skbuff"> <description>Socket buffer pointer : identify the socket buffer</description> <pointer/> </field>
+ <field name="protocol"> <description>Protocol of the packet</description> <uint size=2/> </field>
+ </struct>
+ </event>
+
+</facility>
--- /dev/null
+<facility name=process>
+ <description>The process facility has events related to process handling in
+ the kernel.</description>
+
+ <event name=fork>
+ <description>Process fork</description>
+ <struct>
+ <field name="parent_pid"> <description>PID of the parent process</description> <uint size=4/> </field>
+ <field name="child_pid"> <description>PID of the child process</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=kernel_thread>
+ <description>Just created a new kernel thread</description>
+ <struct>
+ <field name="pid"> <description>PID of the kernel thread</description> <uint size=4/> </field>
+ <field name="function"> <description>Function called</description> <pointer/> </field>
+ </struct>
+ </event>
+
+
+ <event name=exit>
+ <description>Process exit</description>
+ <struct>
+ <field name="pid"> <description>PID of the process</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=wait>
+ <description>Process wait</description>
+ <struct>
+ <field name="parent_pid"> <description>PID of the waiting process</description> <uint size=4/> </field>
+ <field name="child_pid"> <description>PID of the process waited for</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=free>
+ <description>Process kernel data structure free (end of life of a zombie)</description>
+ <struct>
+ <field name="pid"> <description>PID of the freed process</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=kill>
+ <description>Process kill system call</description>
+ <struct>
+ <field name="pid"> <description>PID of the process</description> <uint size=4/> </field>
+ <field name="target_pid"> <description>PID of the process to kill</description> <uint size=4/> </field>
+ <field name="signal"> <description>Signal number</description> <typeref name=signal_name/> </field>
+ </struct>
+ </event>
+
+ <event name=signal>
+ <description>Process signal reception</description>
+ <struct>
+ <field name="pid"> <description>PID of the receiving process</description> <uint size=4/> </field>
+ <field name="signal"> <description>Signal number</description> <typeref name=signal_name/> </field>
+ </struct>
+ </event>
+
+ <event name=wakeup>
+ <description>Process wakeup</description>
+ <struct>
+ <field name="pid"> <description>PID of the receiving process</description> <uint size=4/> </field>
+ <field name="state"> <description>State of the awakened process. -1 unrunnable, 0 runnable, >0 stopped.</description> <int size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=schedchange>
+ <description>Scheduling change</description>
+ <struct>
+ <field name="out"> <description>Outgoing process</description> <uint size=4/> </field>
+ <field name="in"> <description>Incoming process</description> <uint size=4/> </field>
+ <field name="out_state"> <description>Outgoing process' state. -1 unrunnable, 0 runnable, >0 stopped.</description> <int size=4/> </field>
+ </struct>
+ </event>
+
+ <type name=signal_name>
+ <enum size=4>
+ <label name=SIGHUP value=1/> <description>Hangup (POSIX).</description>
+ <label name=SIGINT value=2/> <description>Interrupt (ANSI).</description>
+ <label name=SIGQUIT value=3/> <description>Quit (POSIX).</description>
+ <label name=SIGILL value=4/> <description>Illegal instruction (ANSI).</description>
+ <label name=SIGTRAP value=5/> <description>Trace trap (POSIX).</description>
+ <label name=SIGABRT value=6/> <description>Abort (ANSI).</description>
+ <label name=SIGBUS value=7/> <description>BUS error (4.2 BSD).</description>
+ <label name=SIGFPE value=8/> <description>Floating-point exception (ANSI).</description>
+ <label name=SIGKILL value=9/> <description>Kill, unblockable (POSIX).</description>
+ <label name=SIGUSR1 value=10/> <description>User-defined signal 1 (POSIX).</description>
+ <label name=SIGSEGV value=11/> <description>Segmentation violation (ANSI).</description>
+ <label name=SIGUSR2 value=12/> <description>User-defined signal 2 (POSIX).</description>
+ <label name=SIGPIPE value=13/> <description>Broken pipe (POSIX).</description>
+ <label name=SIGALRM value=14/> <description>Alarm clock (POSIX).</description>
+ <label name=SIGTERM value=15/> <description>Termination (ANSI).</description>
+ <label name=SIGSTKFLT value=16/> <description>Stack fault.</description>
+
+ <label name=SIGCHLD value=17/> <description>Child status has changed (POSIX).</description>
+ <label name=SIGCONT value=18/> <description>Continue (POSIX).</description>
+ <label name=SIGSTOP value=19/> <description>Stop, unblockable (POSIX).</description>
+ <label name=SIGTSTP value=20/> <description>Keyboard stop (POSIX).</description>
+ <label name=SIGTTIN value=21/> <description>Background read from tty (POSIX).</description>
+ <label name=SIGTTOU value=22/> <description>Background write to tty (POSIX).</description>
+ <label name=SIGURG value=23/> <description>Urgent condition on socket (4.2 BSD).</description>
+ <label name=SIGXCPU value=24/> <description>CPU limit exceeded (4.2 BSD).</description>
+ <label name=SIGXFSZ value=25/> <description>File size limit exceeded (4.2 BSD).</description>
+ <label name=SIGVTALRM value=26/> <description>Virtual alarm clock (4.2 BSD).</description>
+ <label name=SIGPROF value=27/> <description>Profiling alarm clock (4.2 BSD).</description>
+ <label name=SIGWINCH value=28/> <description>Window size change (4.3 BSD, Sun).</description>
+ <label name=SIGIO value=29/> <description>I/O now possible (4.2 BSD). (aka SIGPOLL)</description>
+ <label name=SIGPWR value=30/> <description>Power failure restart (System V).</description>
+ <label name=SIGSYS value=31/> <description>Bad system call.</description>
+ </enum>
+ </type>
+
+
+</facility>
--- /dev/null
+<facility name=s390_kernel>
+ <description>The kernel facility has events related to kernel execution status.</description>
+
+ <event name=trap_entry>
+ <description>Entry in a trap</description>
+ <struct>
+ <field name="trap_id"> <description>Trap number</description> <uint size=8/> </field>
+ <field name="address"> <description>Address where trap occured</description> <pointer/> </field>
+ </struct>
+ </event>
+
+</facility>
--- /dev/null
+<facility name=socket>
+ <description>The socket facility contains events related to sockets</description>
+
+ <event name=call>
+ <description>Generic socket call : FIXME : should be more detailed.</description>
+ <struct>
+ <field name="call_number"> <description>Number of socket call</description> <int size=4/> </field>
+ <field name="first_argument"> <description>First argument of socket call</description> <ulong/> </field>
+ </struct>
+ </event>
+
+ <event name=create>
+ <description>Create a socket</description>
+ <struct>
+ <field name="socket"> <description>Socket structure address</description> <pointer/> </field>
+ <field name="family"> <description>Socket family</description> <int size=4/> </field>
+ <field name="type"> <description>Socket type</description> <int size=4/> </field>
+ <field name="protocol"> <description>Socket protocol</description> <int size=4/> </field>
+ <field name="fd"> <description>Socket file descriptor</description> <int size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=sendmsg>
+ <description>Sending a socket message</description>
+ <struct>
+ <field name="socket"> <description>Socket structure address</description> <pointer/> </field>
+ <field name="family"> <description>Socket family</description> <int size=4/> </field>
+ <field name="type"> <description>Socket type</description> <int size=4/> </field>
+ <field name="protocol"> <description>Socket protocol</description> <int size=4/> </field>
+ <field name="size"> <description>Size of the message</description> <size_t/> </field>
+ </struct>
+ </event>
+
+ <event name=recvmsg>
+ <description>Receiving a socket message</description>
+ <struct>
+ <field name="socket"> <description>Socket structure address</description> <pointer/> </field>
+ <field name="family"> <description>Socket family</description> <int size=4/> </field>
+ <field name="type"> <description>Socket type</description> <int size=4/> </field>
+ <field name="protocol"> <description>Socket protocol</description> <int size=4/> </field>
+ <field name="size"> <description>Size of the message</description> <size_t/> </field>
+ </struct>
+ </event>
+
+
+
+
+
+</facility>
--- /dev/null
+<facility name=timer>
+ <description>The timer facility has events related to timer events in the kernel.</description>
+
+ <event name=expired>
+ <description>A timer or itimer has expired.</description>
+ <struct>
+ <field name="pid"> <description>PID of the process to wake up.</description> <uint size=4/> </field>
+ </struct>
+ </event>
+
+ <event name=softirq>
+ <description>The timer softirq is currently runned.</description>
+ </event>
+
+ <event name=set_itimer>
+ <description>An interval timer is set.</description>
+ <struct>
+ <field name="which"> <description>kind of interval timer.</description>
+ <typeref name=itimer_kind/></field>
+ <field name="interval_seconds"><uint size=4/></field>
+ <field name="interval_microseconds"><uint size=4/></field>
+ <field name="value_seconds"><uint size=4/></field>
+ <field name="value_microseconds"><uint size=4/></field>
+ </struct>
+ </event>
+
+ <type name=itimer_kind>
+ <enum size=4>
+ <label name=ITIMER_REAL value=0/> <description>decrements in real time,
+ and delivers SIGALRM upon expiration.</description>
+ <label name=ITIMER_VIRTUAL value=1/> <description>decrements only when the
+ process is executing, and delivers SIGVTALRM upon expiration.</description>
+ <label name=ITIMER_PROF value=2/> <description>decrements both when the
+ process executes and when the system is executing on behalf of the
+ process. Coupled with ITIMER_VIRTUAL, this timer is usually used to
+ profile the time spent by the application in user and kernel space.
+ SIGPROF is delivered upon expiration.</description>
+ </enum>
+ </type>
+
+</facility>