Commit 897b4c6c4e63afebdd41de0f1a19e17ab1f4c2b8
1 parent
64330148
Give an opaque to the m48t59 direct access routines to make it easier
to use another NVRAM with the same API. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3474 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
13 additions
and
7 deletions
hw/m48t59.c
| @@ -199,8 +199,9 @@ static void set_up_watchdog (m48t59_t *NVRAM, uint8_t value) | @@ -199,8 +199,9 @@ static void set_up_watchdog (m48t59_t *NVRAM, uint8_t value) | ||
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | /* Direct access to NVRAM */ | 201 | /* Direct access to NVRAM */ |
| 202 | -void m48t59_write (m48t59_t *NVRAM, uint32_t addr, uint32_t val) | 202 | +void m48t59_write (void *opaque, uint32_t addr, uint32_t val) |
| 203 | { | 203 | { |
| 204 | + m48t59_t *NVRAM = opaque; | ||
| 204 | struct tm tm; | 205 | struct tm tm; |
| 205 | int tmp; | 206 | int tmp; |
| 206 | 207 | ||
| @@ -357,8 +358,9 @@ void m48t59_write (m48t59_t *NVRAM, uint32_t addr, uint32_t val) | @@ -357,8 +358,9 @@ void m48t59_write (m48t59_t *NVRAM, uint32_t addr, uint32_t val) | ||
| 357 | } | 358 | } |
| 358 | } | 359 | } |
| 359 | 360 | ||
| 360 | -uint32_t m48t59_read (m48t59_t *NVRAM, uint32_t addr) | 361 | +uint32_t m48t59_read (void *opaque, uint32_t addr) |
| 361 | { | 362 | { |
| 363 | + m48t59_t *NVRAM = opaque; | ||
| 362 | struct tm tm; | 364 | struct tm tm; |
| 363 | uint32_t retval = 0xFF; | 365 | uint32_t retval = 0xFF; |
| 364 | 366 | ||
| @@ -451,13 +453,17 @@ uint32_t m48t59_read (m48t59_t *NVRAM, uint32_t addr) | @@ -451,13 +453,17 @@ uint32_t m48t59_read (m48t59_t *NVRAM, uint32_t addr) | ||
| 451 | return retval; | 453 | return retval; |
| 452 | } | 454 | } |
| 453 | 455 | ||
| 454 | -void m48t59_set_addr (m48t59_t *NVRAM, uint32_t addr) | 456 | +void m48t59_set_addr (void *opaque, uint32_t addr) |
| 455 | { | 457 | { |
| 458 | + m48t59_t *NVRAM = opaque; | ||
| 459 | + | ||
| 456 | NVRAM->addr = addr; | 460 | NVRAM->addr = addr; |
| 457 | } | 461 | } |
| 458 | 462 | ||
| 459 | -void m48t59_toggle_lock (m48t59_t *NVRAM, int lock) | 463 | +void m48t59_toggle_lock (void *opaque, int lock) |
| 460 | { | 464 | { |
| 465 | + m48t59_t *NVRAM = opaque; | ||
| 466 | + | ||
| 461 | NVRAM->lock ^= 1 << lock; | 467 | NVRAM->lock ^= 1 << lock; |
| 462 | } | 468 | } |
| 463 | 469 |
hw/m48t59.h
| @@ -3,9 +3,9 @@ | @@ -3,9 +3,9 @@ | ||
| 3 | 3 | ||
| 4 | typedef struct m48t59_t m48t59_t; | 4 | typedef struct m48t59_t m48t59_t; |
| 5 | 5 | ||
| 6 | -void m48t59_write (m48t59_t *NVRAM, uint32_t addr, uint32_t val); | ||
| 7 | -uint32_t m48t59_read (m48t59_t *NVRAM, uint32_t addr); | ||
| 8 | -void m48t59_toggle_lock (m48t59_t *NVRAM, int lock); | 6 | +void m48t59_write (void *private, uint32_t addr, uint32_t val); |
| 7 | +uint32_t m48t59_read (void *private, uint32_t addr); | ||
| 8 | +void m48t59_toggle_lock (void *private, int lock); | ||
| 9 | m48t59_t *m48t59_init (qemu_irq IRQ, target_phys_addr_t mem_base, | 9 | m48t59_t *m48t59_init (qemu_irq IRQ, target_phys_addr_t mem_base, |
| 10 | uint32_t io_base, uint16_t size, | 10 | uint32_t io_base, uint16_t size, |
| 11 | int type); | 11 | int type); |