1*91e9d17cSIngo Weinhold /*
2*91e9d17cSIngo Weinhold * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
3*91e9d17cSIngo Weinhold * Distributed under the terms of the MIT License.
4*91e9d17cSIngo Weinhold */
5*91e9d17cSIngo Weinhold
6*91e9d17cSIngo Weinhold #include <stdio.h>
7*91e9d17cSIngo Weinhold #include <sys/stat.h>
8*91e9d17cSIngo Weinhold
9*91e9d17cSIngo Weinhold #include <OS.h>
10*91e9d17cSIngo Weinhold
11*91e9d17cSIngo Weinhold
12*91e9d17cSIngo Weinhold static void
time_lstat(const char * path)13*91e9d17cSIngo Weinhold time_lstat(const char* path)
14*91e9d17cSIngo Weinhold {
15*91e9d17cSIngo Weinhold printf("%-60s ...", path);
16*91e9d17cSIngo Weinhold fflush(stdout);
17*91e9d17cSIngo Weinhold bigtime_t startTime = system_time();
18*91e9d17cSIngo Weinhold
19*91e9d17cSIngo Weinhold static const int32 iterations = 10000;
20*91e9d17cSIngo Weinhold for (int32 i = 0; i < iterations; i++) {
21*91e9d17cSIngo Weinhold struct stat st;
22*91e9d17cSIngo Weinhold lstat(path, &st);
23*91e9d17cSIngo Weinhold }
24*91e9d17cSIngo Weinhold
25*91e9d17cSIngo Weinhold bigtime_t totalTime = system_time() - startTime;
26*91e9d17cSIngo Weinhold printf(" %5.3f us/call\n", (double)totalTime / iterations);
27*91e9d17cSIngo Weinhold }
28*91e9d17cSIngo Weinhold
29*91e9d17cSIngo Weinhold
30*91e9d17cSIngo Weinhold int
main()31*91e9d17cSIngo Weinhold main()
32*91e9d17cSIngo Weinhold {
33*91e9d17cSIngo Weinhold const char* const paths[] = {
34*91e9d17cSIngo Weinhold "/",
35*91e9d17cSIngo Weinhold "/boot",
36*91e9d17cSIngo Weinhold "/boot/develop",
37*91e9d17cSIngo Weinhold "/boot/develop/headers",
38*91e9d17cSIngo Weinhold "/boot/develop/headers/posix",
39*91e9d17cSIngo Weinhold "/boot/develop/headers/posix/sys",
40*91e9d17cSIngo Weinhold "/boot/develop/headers/posix/sys/stat.h",
41*91e9d17cSIngo Weinhold NULL
42*91e9d17cSIngo Weinhold };
43*91e9d17cSIngo Weinhold
44*91e9d17cSIngo Weinhold for (int32 i = 0; paths[i] != NULL; i++)
45*91e9d17cSIngo Weinhold time_lstat(paths[i]);
46*91e9d17cSIngo Weinhold
47*91e9d17cSIngo Weinhold return 0;
48*91e9d17cSIngo Weinhold }
49