syscall.c 745 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
  3. * Licensed under the GPL
  4. */
  5. #include "kern_util.h"
  6. #include "syscall.h"
  7. #include "os.h"
  8. struct {
  9. int syscall;
  10. int pid;
  11. long result;
  12. unsigned long long start;
  13. unsigned long long end;
  14. } syscall_record[1024];
  15. int record_syscall_start(int syscall)
  16. {
  17. int max, index;
  18. max = sizeof(syscall_record)/sizeof(syscall_record[0]);
  19. index = next_syscall_index(max);
  20. syscall_record[index].syscall = syscall;
  21. syscall_record[index].pid = current_pid();
  22. syscall_record[index].result = 0xdeadbeef;
  23. syscall_record[index].start = os_usecs();
  24. return(index);
  25. }
  26. void record_syscall_end(int index, long result)
  27. {
  28. syscall_record[index].result = result;
  29. syscall_record[index].end = os_usecs();
  30. }