moved arm7 source

This commit is contained in:
Anthony Pesch 2016-10-17 21:05:04 -07:00
parent d356d14569
commit b4bc578505
8 changed files with 72 additions and 72 deletions

View File

@ -150,7 +150,7 @@ set(REDREAM_SOURCES
src/emu/emulator.c
src/emu/tracer.c
src/hw/aica/aica.c
src/hw/arm/arm.c
src/hw/arm7/arm7.c
src/hw/gdrom/disc.c
src/hw/gdrom/gdrom.c
src/hw/holly/holly.c

View File

@ -2,7 +2,7 @@
#include "core/log.h"
#include "core/option.h"
#include "hw/aica/aica_types.h"
#include "hw/arm/arm.h"
#include "hw/arm7/arm7.h"
#include "hw/dreamcast.h"
#include "hw/holly/holly.h"
#include "hw/memory.h"
@ -338,9 +338,9 @@ static void aica_common_reg_write(struct aica *aica, uint32_t addr,
} break;
case 0x400: { /* ARMRST */
if (data) {
arm_suspend(aica->arm);
arm7_suspend(aica->arm);
} else {
arm_resume(aica->arm);
arm7_resume(aica->arm);
}
} break;
}
@ -441,7 +441,7 @@ static bool aica_init(struct device *dev) {
aica_timer_init(aica);
aica_rtc_init(aica);
arm_suspend(aica->arm);
arm7_suspend(aica->arm);
return true;
}

View File

@ -1,44 +0,0 @@
#include "hw/arm/arm.h"
#include "hw/aica/aica.h"
#include "hw/dreamcast.h"
struct arm {
struct device;
};
static bool arm_init(struct device *dev) {
// struct arm *arm = (struct arm *)dev;
return true;
}
static void arm_run(struct device *dev, int64_t ns) {
// struct arm *arm = (struct arm *)dev;
}
void arm_suspend(struct arm *arm) {
arm->execute_if->suspended = true;
}
void arm_resume(struct arm *arm) {
arm->execute_if->suspended = false;
}
struct arm *arm_create(struct dreamcast *dc) {
struct arm *arm = dc_create_device(dc, sizeof(struct arm), "arm", &arm_init);
arm->execute_if = dc_create_execute_interface(&arm_run);
arm->memory_if = dc_create_memory_interface(dc, &arm_data_map);
return arm;
}
void arm_destroy(struct arm *arm) {
dc_destroy_memory_interface(arm->memory_if);
dc_destroy_execute_interface(arm->execute_if);
dc_destroy_device((struct device *)arm);
}
// clang-format off
AM_BEGIN(struct arm, arm_data_map);
AM_RANGE(0x00000000, 0x007fffff) AM_MASK(0x00ffffff) AM_DEVICE("aica", aica_data_map)
AM_RANGE(0x00800000, 0x00810fff) AM_MASK(0x00ffffff) AM_DEVICE("aica", aica_reg_map)
AM_END();
// clang-format on

View File

@ -1,17 +0,0 @@
#ifndef ARM_H
#define ARM_H
#include "hw/memory.h"
struct arm;
struct dreamcast;
void arm_suspend(struct arm *arm);
void arm_resume(struct arm *arm);
struct arm *arm_create(struct dreamcast *dc);
void arm_destroy(struct arm *arm);
AM_DECLARE(arm_data_map);
#endif

44
src/hw/arm7/arm7.c Normal file
View File

@ -0,0 +1,44 @@
#include "hw/arm7/arm7.h"
#include "hw/aica/aica.h"
#include "hw/dreamcast.h"
struct arm7 {
struct device;
};
static bool arm7_init(struct device *dev) {
// struct arm7 *arm7 = (struct arm7 *)dev;
return true;
}
static void arm7_run(struct device *dev, int64_t ns) {
// struct arm *arm7 = (struct arm7 *)dev;
}
void arm7_suspend(struct arm7 *arm) {
arm->execute_if->suspended = true;
}
void arm7_resume(struct arm7 *arm) {
arm->execute_if->suspended = false;
}
struct arm7 *arm7_create(struct dreamcast *dc) {
struct arm7 *arm = dc_create_device(dc, sizeof(struct arm7), "arm7", &arm7_init);
arm->execute_if = dc_create_execute_interface(&arm7_run);
arm->memory_if = dc_create_memory_interface(dc, &arm7_data_map);
return arm;
}
void arm7_destroy(struct arm7 *arm) {
dc_destroy_memory_interface(arm->memory_if);
dc_destroy_execute_interface(arm->execute_if);
dc_destroy_device((struct device *)arm);
}
// clang-format off
AM_BEGIN(struct arm7, arm7_data_map);
AM_RANGE(0x00000000, 0x007fffff) AM_MASK(0x00ffffff) AM_DEVICE("aica", aica_data_map)
AM_RANGE(0x00800000, 0x00810fff) AM_MASK(0x00ffffff) AM_DEVICE("aica", aica_reg_map)
AM_END();
// clang-format on

17
src/hw/arm7/arm7.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef ARM7_H
#define ARM7_H
#include "hw/memory.h"
struct arm7;
struct dreamcast;
void arm7_suspend(struct arm7 *arm);
void arm7_resume(struct arm7 *arm);
struct arm7 *arm7_create(struct dreamcast *dc);
void arm7_destroy(struct arm7 *arm);
AM_DECLARE(arm7_data_map);
#endif

View File

@ -2,7 +2,7 @@
#include "core/option.h"
#include "core/string.h"
#include "hw/aica/aica.h"
#include "hw/arm/arm.h"
#include "hw/arm7/arm7.h"
#include "hw/debugger.h"
#include "hw/gdrom/gdrom.h"
#include "hw/holly/holly.h"
@ -174,7 +174,7 @@ struct dreamcast *dc_create(struct video_backend *video) {
dc->memory = memory_create(dc);
dc->scheduler = scheduler_create(dc);
dc->sh4 = sh4_create(dc);
dc->arm = arm_create(dc);
dc->arm = arm7_create(dc);
dc->aica = aica_create(dc);
dc->boot = boot_create(dc);
dc->flash = flash_create(dc);
@ -201,7 +201,7 @@ void dc_destroy(struct dreamcast *dc) {
flash_destroy(dc->flash);
boot_destroy(dc->boot);
aica_destroy(dc->aica);
arm_destroy(dc->arm);
arm7_destroy(dc->arm);
sh4_destroy(dc->sh4);
scheduler_destroy(dc->scheduler);
memory_destroy(dc->memory);

View File

@ -9,7 +9,7 @@
#include "ui/keycode.h"
struct aica;
struct arm;
struct arm7;
struct boot;
struct debugger;
struct device;
@ -116,7 +116,7 @@ struct device {
struct memory *memory;
struct scheduler *scheduler;
struct sh4 *sh4;
struct arm *arm;
struct arm7 *arm;
struct aica *aica;
struct boot *boot;
struct flash *flash;
@ -137,7 +137,7 @@ struct dreamcast {
struct memory *memory;
struct scheduler *scheduler;
struct sh4 *sh4;
struct arm *arm;
struct arm7 *arm;
struct aica *aica;
struct boot *boot;
struct flash *flash;