Version:
~ [ 0.6-2.3.46 ] ~
Architecture:
~ [ um ] ~
** Warning: Cannot open xref database.
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/time.h>
4 #include <signal.h>
5 #include <errno.h>
6 #include "user_util.h"
7 #include "kern_util.h"
8 #include "proc_arch.h"
9 #include "user.h"
10
11 extern void timer_handler(int signal);
12
13 static struct itimerval profile_interval;
14
15 void get_profile_timer(void)
16 {
17 getitimer(ITIMER_PROF, &profile_interval);
18 }
19
20 static void set_interval(void)
21 {
22 struct itimerval interval;
23
24 interval.it_interval.tv_sec = 0;
25 interval.it_interval.tv_usec = 100000;
26 interval.it_value.tv_sec = 0;
27 interval.it_value.tv_usec = 100000;
28 if(setitimer(ITIMER_VIRTUAL, &interval, NULL) == -1)
29 panic("setitimer ITIMER_VIRTUAL failed - errno = %d\n", errno);
30 }
31
32 void time_init(void)
33 {
34 if(signal(SIGVTALRM, timer_handler) == SIG_ERR)
35 panic("Couldn't set SIGVTALRM handler");
36 set_interval();
37 }
38
39 void set_timers(void)
40 {
41 __sighandler_t handler;
42 struct sigaction action;
43
44 set_interval();
45 handler = signal(SIGPROF, SIG_DFL);
46 action.sa_handler = handler;
47 sigemptyset(&action.sa_mask);
48 action.sa_flags = SA_RESTART;
49 action.sa_restorer = NULL;
50 if(sigaction(SIGPROF, &action, NULL) < 0)
51 panic("sigaction failed");
52 if(setitimer(ITIMER_PROF, &profile_interval, NULL) == -1)
53 panic("setitimer ITIMER_PROF failed - errno = %d\n", errno);
54 }
55
56 extern unsigned long loops_per_sec;
57
58 void __delay(unsigned long time)
59 {
60 int i;
61
62 for(i=0;i<loops_per_sec;i++) ;
63 }
64
65 extern void __udelay(unsigned long usecs)
66 {
67 int i, n;
68
69 n = loops_per_sec/1000000;
70 for(i=0;i<n;i++) ;
71 }
72
73 extern void __const_udelay(unsigned long usecs)
74 {
75 int i, n;
76
77 n = loops_per_sec/1000000;
78 for(i=0;i<n;i++) ;
79 }
80
81 void do_gettimeofday(struct timeval *tv)
82 {
83 gettimeofday(tv, NULL);
84 }
85
86 void do_settimeofday(struct timeval *tv)
87 {
88 UNDEFINED_BODY("do_settimeofday");
89 }
90
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.