#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include "cpu.h"#include "devices.h"#include "machine.h"#include "memory.h"#include "misc.h"#include "timer.h"#include "thirdparty/mc146818reg.h"Go to the source code of this file.
Classes | |
| struct | mc_data |
Macros | |
| #define | to_bcd(x) ( ((x)/10) * 16 + ((x)%10) ) |
| #define | from_bcd(x) ( ((x)>>4) * 10 + ((x)&15) ) |
| #define | MC146818_TICK_SHIFT 14 |
| #define | N_REGISTERS 1024 |
| #define | NETBSD_HACK_INIT 0 |
| #define | NETBSD_HACK_FIRST_1 1 |
| #define | NETBSD_HACK_FIRST_2 2 |
| #define | NETBSD_HACK_SECOND_1 3 |
| #define | NETBSD_HACK_SECOND_2 4 |
| #define | NETBSD_HACK_DONE 5 |
Functions | |
| DEVICE_TICK (mc146818) | |
| DEVICE_ACCESS (mc146818_jazz) | |
| DEVICE_ACCESS (mc146818) | |
| void | dev_mc146818_init (struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int access_style, int addrdiv) |
| #define from_bcd | ( | x | ) | ( ((x)>>4) * 10 + ((x)&15) ) |
Definition at line 56 of file dev_mc146818.cc.
| #define MC146818_TICK_SHIFT 14 |
Definition at line 60 of file dev_mc146818.cc.
| #define N_REGISTERS 1024 |
Definition at line 64 of file dev_mc146818.cc.
| #define NETBSD_HACK_DONE 5 |
Definition at line 100 of file dev_mc146818.cc.
| #define NETBSD_HACK_FIRST_1 1 |
Definition at line 96 of file dev_mc146818.cc.
| #define NETBSD_HACK_FIRST_2 2 |
Definition at line 97 of file dev_mc146818.cc.
| #define NETBSD_HACK_INIT 0 |
Definition at line 95 of file dev_mc146818.cc.
| #define NETBSD_HACK_SECOND_1 3 |
Definition at line 98 of file dev_mc146818.cc.
| #define NETBSD_HACK_SECOND_2 4 |
Definition at line 99 of file dev_mc146818.cc.
| #define to_bcd | ( | x | ) | ( ((x)/10) * 16 + ((x)%10) ) |
Definition at line 55 of file dev_mc146818.cc.
| void dev_mc146818_init | ( | struct machine * | machine, |
| struct memory * | mem, | ||
| uint64_t | baseaddr, | ||
| char * | irq_path, | ||
| int | access_style, | ||
| int | addrdiv | ||
| ) |
Definition at line 587 of file dev_mc146818.cc.
References mc_data::access_style, mc_data::addrdiv, CHECK_ALLOCATION, dev_mc146818_access(), DEV_MC146818_LENGTH, DM_DEFAULT, INTERRUPT_CONNECT, mc_data::irq, MACHINE_PREP, machine::machine_type, MC146818_ARC_JAZZ, MC146818_CATS, MC146818_DEC, MC146818_PC_CMOS, MC146818_PMPPC, MC146818_SGI, memory_device_register(), NETBSD_HACK_DONE, mc_data::reg, mc_data::ugly_netbsd_prep_hack_done, mc_data::uip_threshold, and mc_data::use_bcd.
Referenced by DEVINIT(), and MACHINE_SETUP().
| DEVICE_ACCESS | ( | mc146818 | ) |
Definition at line 277 of file dev_mc146818.cc.
References mc_data::access_style, mc_data::addrdiv, data, debug, fatal(), if(), mc_data::interrupt_hz, mc_data::last_addr, MC146818_ALGOR, MC146818_ARC_JAZZ, MC146818_ARC_NEC, MC146818_CATS, MC146818_DEC, MC146818_PC_CMOS, MC146818_PMPPC, MC146818_SGI, MC_BASE_1_MHz, MC_BASE_32_KHz, MC_BASE_4_MHz, MC_RATE_1, MC_RATE_1024_Hz, MC_RATE_128_Hz, MC_RATE_16_Hz, MC_RATE_2, MC_RATE_2048_Hz, MC_RATE_256_Hz, MC_RATE_2_Hz, MC_RATE_32_Hz, MC_RATE_4096_Hz, MC_RATE_4_Hz, MC_RATE_512_Hz, MC_RATE_64_Hz, MC_RATE_8192_Hz, MC_RATE_8_Hz, MC_RATE_NONE, MC_REGA, MC_REGA_DVMASK, MC_REGA_RSMASK, MC_REGA_UIP, MC_REGB, MC_REGC, MC_REGC_IRQF, MC_REGC_PF, MC_REGC_UF, MC_REGD, MC_REGD_VRT, MEM_WRITE, mc_data::n_seconds_elapsed, mc_data::old_interrupt_hz, mc_data::previous_second, mc_data::reg, mc_data::timebase_hz, mc_data::timer, timer_add(), mc_data::uip_threshold, and mc_data::use_bcd.
| DEVICE_ACCESS | ( | mc146818_jazz | ) |
Definition at line 152 of file dev_mc146818.cc.
References data, fatal(), mc_data::last_addr, and MEM_WRITE.
| DEVICE_TICK | ( | mc146818 | ) |
Definition at line 115 of file dev_mc146818.cc.
References INTERRUPT_ASSERT, mc_data::irq, MC_REGB, MC_REGB_PIE, MC_REGC, MC_REGC_AF, MC_REGC_IRQF, MC_REGC_PF, MC_REGC_UF, mc_data::pending_timer_interrupts, and mc_data::reg.
1.8.17