Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 * @file op_x86_model.h
 | 
						|
 * interface to x86 model-specific MSR operations
 | 
						|
 *
 | 
						|
 * @remark Copyright 2002 OProfile authors
 | 
						|
 * @remark Read the file COPYING
 | 
						|
 *
 | 
						|
 * @author Graydon Hoare
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef OP_X86_MODEL_H
 | 
						|
#define OP_X86_MODEL_H
 | 
						|
 | 
						|
struct op_saved_msr {
 | 
						|
	unsigned int high;
 | 
						|
	unsigned int low;
 | 
						|
};
 | 
						|
 | 
						|
struct op_msr {
 | 
						|
	unsigned long addr;
 | 
						|
	struct op_saved_msr saved;
 | 
						|
};
 | 
						|
 | 
						|
struct op_msrs {
 | 
						|
	struct op_msr * counters;
 | 
						|
	struct op_msr * controls;
 | 
						|
};
 | 
						|
 | 
						|
struct pt_regs;
 | 
						|
 | 
						|
/* The model vtable abstracts the differences between
 | 
						|
 * various x86 CPU model's perfctr support.
 | 
						|
 */
 | 
						|
struct op_x86_model_spec {
 | 
						|
	unsigned int const num_counters;
 | 
						|
	unsigned int const num_controls;
 | 
						|
	void (*fill_in_addresses)(struct op_msrs * const msrs);
 | 
						|
	void (*setup_ctrs)(struct op_msrs const * const msrs);
 | 
						|
	int (*check_ctrs)(struct pt_regs * const regs,
 | 
						|
		struct op_msrs const * const msrs);
 | 
						|
	void (*start)(struct op_msrs const * const msrs);
 | 
						|
	void (*stop)(struct op_msrs const * const msrs);
 | 
						|
};
 | 
						|
 | 
						|
extern struct op_x86_model_spec const op_ppro_spec;
 | 
						|
extern struct op_x86_model_spec const op_p4_spec;
 | 
						|
extern struct op_x86_model_spec const op_p4_ht2_spec;
 | 
						|
extern struct op_x86_model_spec const op_athlon_spec;
 | 
						|
 | 
						|
#endif /* OP_X86_MODEL_H */
 |