blob: 1731d90e68507e1316cfa4a3c6c3d15f510f316b [file] [log] [blame]
Jeff Dikee32dacb2005-09-03 15:57:42 -07001/*
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
10struct {
11 int syscall;
12 int pid;
13 long result;
14 unsigned long long start;
15 unsigned long long end;
16} syscall_record[1024];
17
18int 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 Sharapovcff65c42006-01-18 17:42:42 -080028 syscall_record[index].start = os_nsecs();
Jeff Dikee32dacb2005-09-03 15:57:42 -070029 return(index);
30}
31
32void record_syscall_end(int index, long result)
33{
34 syscall_record[index].result = result;
Gennady Sharapovcff65c42006-01-18 17:42:42 -080035 syscall_record[index].end = os_nsecs();
Jeff Dikee32dacb2005-09-03 15:57:42 -070036}