2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. 2N/A * implements int gettimeofday(struct timeval *tp, void *tzp) 2N/A * note that tzp is always ignored 2N/A * gettimeofday is implemented as an alternate capability symbol 2N/A * on x86 systems which support the rdtscp instruction. 2N/A * use long long gethrestime() 2N/A * gethrestime trap returns seconds in %eax, nsecs in %edx 2N/A * need to convert nsecs to usecs & store into area pointed 2N/A * to by struct timeval * argument. 2N/A jrcxz 1f /* bail if we get a null pointer */ 2N/A movl $
274877907, %
eax /* divide by 1000 as impl. by gcc */ 2N/A sarl $
6, %
edx /* simplified by 0 <= nsec <= 1e9 */