| Jeff Dike | e32dacb | 2005-09-03 15:57:42 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | 
 | 3 |  * Licensed under the GPL | 
 | 4 |  */ | 
 | 5 |  | 
 | 6 | #include "kern_util.h" | 
 | 7 | #include "syscall.h" | 
 | 8 | #include "os.h" | 
 | 9 |  | 
 | 10 | struct { | 
 | 11 | 	int syscall; | 
 | 12 | 	int pid; | 
 | 13 | 	long result; | 
 | 14 | 	unsigned long long start; | 
 | 15 | 	unsigned long long end; | 
 | 16 | } syscall_record[1024]; | 
 | 17 |  | 
 | 18 | int record_syscall_start(int syscall) | 
 | 19 | { | 
 | 20 | 	int max, index; | 
 | 21 |  | 
 | 22 | 	max = sizeof(syscall_record)/sizeof(syscall_record[0]); | 
 | 23 | 	index = next_syscall_index(max); | 
 | 24 |  | 
 | 25 | 	syscall_record[index].syscall = syscall; | 
 | 26 | 	syscall_record[index].pid = current_pid(); | 
 | 27 | 	syscall_record[index].result = 0xdeadbeef; | 
| Gennady Sharapov | cff65c4 | 2006-01-18 17:42:42 -0800 | [diff] [blame] | 28 | 	syscall_record[index].start = os_nsecs(); | 
| Jeff Dike | e32dacb | 2005-09-03 15:57:42 -0700 | [diff] [blame] | 29 | 	return(index); | 
 | 30 | } | 
 | 31 |  | 
 | 32 | void record_syscall_end(int index, long result) | 
 | 33 | { | 
 | 34 | 	syscall_record[index].result = result; | 
| Gennady Sharapov | cff65c4 | 2006-01-18 17:42:42 -0800 | [diff] [blame] | 35 | 	syscall_record[index].end = os_nsecs(); | 
| Jeff Dike | e32dacb | 2005-09-03 15:57:42 -0700 | [diff] [blame] | 36 | } |