|
|
1.1.1.2 ! root 1: /* 1.1 root 2: * Mach Operating System 3: * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University 4: * All Rights Reserved. 1.1.1.2 ! root 5: * 1.1 root 6: * Permission to use, copy, modify and distribute this software and its 7: * documentation is hereby granted, provided that both the copyright 8: * notice and this permission notice appear in all copies of the 9: * software, derivative works or modified versions, and any portions 10: * thereof, and that both notices appear in supporting documentation. 1.1.1.2 ! root 11: * 1.1 root 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 1.1.1.2 ! root 15: * 1.1 root 16: * Carnegie Mellon requests users of this software to return to 1.1.1.2 ! root 17: * 1.1 root 18: * Software Distribution Coordinator or [email protected] 19: * School of Computer Science 20: * Carnegie Mellon University 21: * Pittsburgh PA 15213-3890 1.1.1.2 ! root 22: * 1.1 root 23: * any improvements or extensions that they make and grant Carnegie Mellon 24: * the rights to redistribute these changes. 25: */ 26: 27: #include <mach/std_types.h> 28: #include <sys/time.h> 29: #include <kern/time_stamp.h> 30: 31: /* 32: * ts.c - kern_timestamp system call. 33: */ 34: #ifdef multimax 35: #include <mmax/timer.h> 1.1.1.2 ! root 36: #endif /* multimax */ 1.1 root 37: 38: 39: 40: kern_return_t 41: kern_timestamp(tsp) 42: struct tsval *tsp; 43: { 44: #ifdef multimax 45: struct tsval temp; 46: temp.low_val = FRcounter; 47: temp.high_val = 0; 1.1.1.2 ! root 48: #else /* multimax */ 1.1 root 49: /* 50: temp.low_val = 0; 51: temp.high_val = ts_tick_count; 52: */ 53: time_value_t temp; 54: temp = time; 1.1.1.2 ! root 55: #endif /* multimax */ 1.1 root 56: 57: if (copyout((char *)&temp, 58: (char *)tsp, 59: sizeof(struct tsval)) != KERN_SUCCESS) 60: return(KERN_INVALID_ADDRESS); 61: return(KERN_SUCCESS); 62: } 63: 64: /* 65: * Initialization procedure. 66: */ 67: 68: void timestamp_init() 69: { 70: #ifdef multimax 1.1.1.2 ! root 71: #else /* multimax */ 1.1 root 72: ts_tick_count = 0; 1.1.1.2 ! root 73: #endif /* multimax */ 1.1 root 74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.