projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pull bugzilla-7897 into release branch
[powerpc.git]
/
arch
/
um
/
os-Linux
/
time.c
diff --git
a/arch/um/os-Linux/time.c
b/arch/um/os-Linux/time.c
index
4ae73c0
..
2115b8b
100644
(file)
--- a/
arch/um/os-Linux/time.c
+++ b/
arch/um/os-Linux/time.c
@@
-16,21
+16,27
@@
#include "process.h"
#include "kern_constants.h"
#include "os.h"
#include "process.h"
#include "kern_constants.h"
#include "os.h"
+#include "uml-config.h"
-
static void set_interval(int timer_type
)
+
int set_interval(int is_virtual
)
{
int usec = 1000000/hz();
{
int usec = 1000000/hz();
+ int timer_type = is_virtual ? ITIMER_VIRTUAL : ITIMER_REAL;
struct itimerval interval = ((struct itimerval) { { 0, usec },
{ 0, usec } });
if(setitimer(timer_type, &interval, NULL) == -1)
struct itimerval interval = ((struct itimerval) { { 0, usec },
{ 0, usec } });
if(setitimer(timer_type, &interval, NULL) == -1)
- panic("setitimer failed - errno = %d\n", errno);
+ return -errno;
+
+ return 0;
}
}
+#ifdef UML_CONFIG_MODE_TT
void enable_timer(void)
{
void enable_timer(void)
{
- set_interval(
ITIMER_VIRTUAL
);
+ set_interval(
1
);
}
}
+#endif
void disable_timer(void)
{
void disable_timer(void)
{
@@
-40,8
+46,8
@@
void disable_timer(void)
printk("disnable_timer - setitimer failed, errno = %d\n",
errno);
/* If there are signals already queued, after unblocking ignore them */
printk("disnable_timer - setitimer failed, errno = %d\n",
errno);
/* If there are signals already queued, after unblocking ignore them */
- s
et_handler(SIGALRM, SIG_IGN, 0, -1
);
- s
et_handler(SIGVTALRM, SIG_IGN, 0, -1
);
+ s
ignal(SIGALRM, SIG_IGN
);
+ s
ignal(SIGVTALRM, SIG_IGN
);
}
void switch_timers(int to_real)
}
void switch_timers(int to_real)
@@
-74,7
+80,7
@@
void uml_idle_timer(void)
set_handler(SIGALRM, (__sighandler_t) alarm_handler,
SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGALRM, (__sighandler_t) alarm_handler,
SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, SIGVTALRM, -1);
- set_interval(
ITIMER_REAL
);
+ set_interval(
0
);
}
#endif
}
#endif
@@
-94,8
+100,3
@@
void idle_sleep(int secs)
ts.tv_nsec = 0;
nanosleep(&ts, NULL);
}
ts.tv_nsec = 0;
nanosleep(&ts, NULL);
}
-
-void user_time_init(void)
-{
- set_interval(ITIMER_VIRTUAL);
-}