87 |
#define CUDA_TIMER_FREQ (4700000 / 6) |
#define CUDA_TIMER_FREQ (4700000 / 6) |
88 |
#define CUDA_ADB_POLL_FREQ 50 |
#define CUDA_ADB_POLL_FREQ 50 |
89 |
|
|
90 |
|
/* CUDA returns time_t's offset from Jan 1, 1904, not 1970 */ |
91 |
|
#define RTC_OFFSET 2082844800 |
92 |
|
|
93 |
typedef struct CUDATimer { |
typedef struct CUDATimer { |
94 |
unsigned int latch; |
unsigned int latch; |
95 |
uint16_t counter_value; /* counter value at load time */ |
uint16_t counter_value; /* counter value at load time */ |
506 |
break; |
break; |
507 |
case CUDA_GET_TIME: |
case CUDA_GET_TIME: |
508 |
/* XXX: add time support ? */ |
/* XXX: add time support ? */ |
509 |
ti = time(NULL); |
ti = time(NULL) + RTC_OFFSET; |
510 |
obuf[0] = CUDA_PACKET; |
obuf[0] = CUDA_PACKET; |
511 |
obuf[1] = 0; |
obuf[1] = 0; |
512 |
obuf[2] = 0; |
obuf[2] = 0; |
525 |
obuf[1] = 0; |
obuf[1] = 0; |
526 |
cuda_send_packet_to_host(s, obuf, 2); |
cuda_send_packet_to_host(s, obuf, 2); |
527 |
break; |
break; |
528 |
|
case CUDA_POWERDOWN: |
529 |
|
obuf[0] = CUDA_PACKET; |
530 |
|
obuf[1] = 0; |
531 |
|
cuda_send_packet_to_host(s, obuf, 2); |
532 |
|
qemu_system_shutdown_request(); |
533 |
|
break; |
534 |
default: |
default: |
535 |
break; |
break; |
536 |
} |
} |