/* * clock_gettime_stub.c * gcc -Wall -c clock_gettime_stub.c * posix realtime functions; MacOS user space glue */ /* @comment * other possible implementation using intel builtin rdtsc * rdtsc-workaround: http://www.mcs.anl.gov/~kazutomo/rdtsc.html * * we could get the ticks by doing this * * __asm __volatile("mov %%ebx, %%esi\n\t" * "cpuid\n\t" * "xchg %%esi, %%ebx\n\t" * "rdtsc" * : "=a" (a), * "=d" (d) * ); * we could even replace our tricky sched_yield call by assembly code to get a better accurency, * anyway the following C stub will satisfy 99% of apps using posix clock_gettime call, * moreover, the setter version (clock_settime) could be easly written using mach primitives: * http://www.opensource.apple.com/source/xnu/xnu-${VERSION}/osfmk/man/ (clock_[set|get]_time) * * hackers don't be crackers, don't you use a flush toilet? * * * @see draft: ./posix-realtime-stub/posix-realtime-stub.c * */