diff -Naur -X linux-2.6.13/Documentation/dontdiff linux-2.6.13/arch/i386/Makefile linux-2.6.13-ssc/arch/i386/Makefile --- linux-2.6.13/arch/i386/Makefile 2005-08-28 16:41:01.000000000 -0700 +++ linux-2.6.13-ssc/arch/i386/Makefile 2005-10-03 16:49:29.000000000 -0700 @@ -111,7 +111,7 @@ # default subarch .h files mflags-y += -Iinclude/asm-i386/mach-default -head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o +head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o arch/i386/ssclib_i386.o libs-y += arch/i386/lib/ core-y += arch/i386/kernel/ \ diff -Naur -X linux-2.6.13/Documentation/dontdiff linux-2.6.13/include/asm-i386/spinlock.h linux-2.6.13-ssc/include/asm-i386/spinlock.h --- linux-2.6.13/include/asm-i386/spinlock.h 2005-08-28 16:41:01.000000000 -0700 +++ linux-2.6.13-ssc/include/asm-i386/spinlock.h 2005-10-05 10:30:46.000000000 -0700 @@ -7,6 +7,8 @@ #include #include +extern void SscSimulAppMark(uint64_t val); + asmlinkage int printk(const char * fmt, ...) __attribute__ ((format (printf, 1, 2))); diff -Naur -X linux-2.6.13/Documentation/dontdiff linux-2.6.13/include/linux/prc_mark_events.h linux-2.6.13-ssc/include/linux/prc_mark_events.h --- linux-2.6.13/include/linux/prc_mark_events.h 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.13-ssc/include/linux/prc_mark_events.h 2005-10-12 11:10:27.000000000 -0700 @@ -0,0 +1,79 @@ +/* +* +* Copyright (c) 1998 - 2002 Intel Corporation, all rights reserved. +* THIS PROGRAM IS AN UNPUBLISHED WORK FULLY PROTECTED BY +* COPYRIGHT LAWS AND IS CONSIDERED A TRADE SECRET BELONGING +* TO THE INTEL CORPORATION. +* +* ============================================================================ +* $Id: prc_mark_events.h,v 1.1 2002/12/15 10:56:43 sreinst Exp $ +* ============================================================================ +*/ + +#ifndef PRC_MARK_EVENTS_H_ +#define PRC_MARK_EVENTS_H_ + +typedef enum { + // Debug API events + pm_create_thread_mark = 0x12345678, + pm_create_process_mark = 0x23456789, + pm_exit_thread_mark = 0x34567890, + pm_exit_process_mark = 0x45678901, + pm_load_dll_mark = 0x56789012, + pm_unload_dll_mark = 0x67890123, + pm_output_string_mark = 0x78901234, + pm_rip_event = 0x89012345, + pm_exception_mark = 0xabcdef00, + // Debug API - Execption events + pm_exception_access_violation_mark = 0xabcdef01, + pm_exception_array_bounds_exceeded_mark = 0xabcdef02, + pm_exception_breakpoint_mark = 0xabcdef03, + pm_exception_datatype_misalignment_mark = 0xabcdef04, + pm_exception_flt_denormal_operand_mark = 0xabcdef05, + pm_exception_flt_divide_by_zero_mark = 0xabcdef06, + pm_exception_flt_inexact_result_mark = 0xabcdef07, + pm_exception_flt_invalid_operation_mark = 0xabcdef08, + pm_exception_flt_overflow_mark = 0xabcdef09, + pm_exception_flt_stack_check_mark = 0xabcdef10, + pm_exception_flt_underflow_mark = 0xabcdef11, + pm_exception_illegal_instruction_mark = 0xabcdef12, + pm_exception_in_page_error_mark = 0xabcdef13, + pm_exception_int_divide_by_zero_mark = 0xabcdef14, + pm_exception_int_overflow_mark = 0xabcdef15, + pm_exception_invalid_disposition_mark = 0xabcdef16, + pm_exception_noncontinuable_exception_mark = 0xabcdef17, + pm_exception_priv_instruction_mark = 0xabcdef18, + pm_exception_single_step_mark = 0xabcdef19, + pm_exception_stack_overflow_mark = 0xabcdef20, + // General events + pm_prc_mark_start = 0xaabbccdd, + pm_prc_mark_end = 0xffeeddcc +} pm_prc_marks_t; + +#endif //PRC_MARK_EVENTS_H_ + +/* + * Latest Revision + * --------------- + * + * $Author: sreinst $ + * $Date: 2002/12/15 10:56:43 $ + * $Revision: 1.1 $ + * + * + * Revision History + * ---------------- + * $Log: prc_mark_events.h,v $ + * Revision 1.1 2002/12/15 10:56:43 sreinst + * Added a page for using ssc to generate marks + * + * Revision 1.2 2002/05/29 13:49:11 ayasin + * first version of prc_mark_events + * + * Revision 1.1.1.1 2002/05/29 13:29:43 ayasin + * first prc_mark_events version + * + * + */ + + diff -Naur -X linux-2.6.13/Documentation/dontdiff linux-2.6.13/kernel/spinlock.c linux-2.6.13-ssc/kernel/spinlock.c --- linux-2.6.13/kernel/spinlock.c 2005-08-28 16:41:01.000000000 -0700 +++ linux-2.6.13-ssc/kernel/spinlock.c 2005-10-12 11:11:30.000000000 -0700 @@ -12,6 +12,7 @@ #include #include #include +#include /* * Generic declaration of the raw read_trylock() function, @@ -73,6 +74,7 @@ local_irq_save(flags); preempt_disable(); _raw_spin_lock_flags(lock, flags); + SscSimulAppMark(pm_prc_mark_start); return flags; } EXPORT_SYMBOL(_spin_lock_irqsave); @@ -82,6 +84,7 @@ local_irq_disable(); preempt_disable(); _raw_spin_lock(lock); + SscSimulAppMark(pm_prc_mark_start); } EXPORT_SYMBOL(_spin_lock_irq); @@ -151,6 +154,7 @@ { preempt_disable(); _raw_spin_lock(lock); + SscSimulAppMark(pm_prc_mark_start); } EXPORT_SYMBOL(_spin_lock); @@ -256,6 +260,7 @@ void __lockfunc _spin_unlock(spinlock_t *lock) { + SscSimulAppMark(pm_prc_mark_end); _raw_spin_unlock(lock); preempt_enable(); } @@ -277,6 +282,7 @@ void __lockfunc _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) { + SscSimulAppMark(pm_prc_mark_end); _raw_spin_unlock(lock); local_irq_restore(flags); preempt_enable(); @@ -285,6 +291,7 @@ void __lockfunc _spin_unlock_irq(spinlock_t *lock) { + SscSimulAppMark(pm_prc_mark_end); _raw_spin_unlock(lock); local_irq_enable(); preempt_enable();