Expose agpgart_t (#2655)
This commit is contained in:
@@ -29,7 +29,7 @@
|
|||||||
#include <86box/chipset.h>
|
#include <86box/chipset.h>
|
||||||
#include <86box/spd.h>
|
#include <86box/spd.h>
|
||||||
#include <86box/machine.h>
|
#include <86box/machine.h>
|
||||||
#include <86box/video.h>
|
#include <86box/agpgart.h>
|
||||||
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
@@ -59,7 +59,7 @@ typedef struct
|
|||||||
uint8_t mem_state[256];
|
uint8_t mem_state[256];
|
||||||
int type;
|
int type;
|
||||||
smram_t *smram_low, *smram_high;
|
smram_t *smram_low, *smram_high;
|
||||||
void *agpgart;
|
agpgart_t *agpgart;
|
||||||
void (*write_drbs)(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit);
|
void (*write_drbs)(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit);
|
||||||
} i4x0_t;
|
} i4x0_t;
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
#include <86box/pci.h>
|
#include <86box/pci.h>
|
||||||
#include <86box/chipset.h>
|
#include <86box/chipset.h>
|
||||||
#include <86box/spd.h>
|
#include <86box/spd.h>
|
||||||
#include <86box/video.h>
|
#include <86box/agpgart.h>
|
||||||
|
|
||||||
#define VIA_585 0x05851000
|
#define VIA_585 0x05851000
|
||||||
#define VIA_595 0x05950000
|
#define VIA_595 0x05950000
|
||||||
@@ -51,7 +51,7 @@ typedef struct via_apollo_t
|
|||||||
uint8_t pci_conf[256];
|
uint8_t pci_conf[256];
|
||||||
|
|
||||||
smram_t *smram;
|
smram_t *smram;
|
||||||
void *agpgart;
|
agpgart_t *agpgart;
|
||||||
} via_apollo_t;
|
} via_apollo_t;
|
||||||
|
|
||||||
|
|
||||||
|
35
src/include/86box/agpgart.h
Normal file
35
src/include/86box/agpgart.h
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||||
|
* running old operating systems and software designed for IBM
|
||||||
|
* PC systems and compatibles from 1981 through fairly recent
|
||||||
|
* system designs based on the PCI bus.
|
||||||
|
*
|
||||||
|
* This file is part of the 86Box distribution.
|
||||||
|
*
|
||||||
|
* AGP Graphics Address Remapping Table remapping emulation.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Authors: RichardG, <richardg867@gmail.com>
|
||||||
|
*
|
||||||
|
* Copyright 2021 RichardG.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef EMU_AGPGART_H
|
||||||
|
#define EMU_AGPGART_H
|
||||||
|
|
||||||
|
typedef struct agpgart_s {
|
||||||
|
int aperture_enable;
|
||||||
|
uint32_t aperture_base, aperture_size, aperture_mask, gart_base;
|
||||||
|
mem_mapping_t aperture_mapping;
|
||||||
|
} agpgart_t;
|
||||||
|
|
||||||
|
extern void agpgart_set_aperture(agpgart_t *dev, uint32_t base, uint32_t size, int enable);
|
||||||
|
extern void agpgart_set_gart(agpgart_t *dev, uint32_t base);
|
||||||
|
|
||||||
|
#ifdef EMU_DEVICE_H
|
||||||
|
/* AGP GART */
|
||||||
|
extern const device_t agpgart_device;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*EMU_AGPGART_H*/
|
@@ -258,9 +258,6 @@ extern int get_actual_size_y(void);
|
|||||||
|
|
||||||
extern uint32_t video_color_transform(uint32_t color);
|
extern uint32_t video_color_transform(uint32_t color);
|
||||||
|
|
||||||
extern void agpgart_set_aperture(void *handle, uint32_t base, uint32_t size, int enable);
|
|
||||||
extern void agpgart_set_gart(void *handle, uint32_t base);
|
|
||||||
|
|
||||||
#define video_inform(type, video_timings_ptr) video_inform_monitor(type, video_timings_ptr, monitor_index_global)
|
#define video_inform(type, video_timings_ptr) video_inform_monitor(type, video_timings_ptr, monitor_index_global)
|
||||||
#define video_get_type() video_get_type_monitor(0)
|
#define video_get_type() video_get_type_monitor(0)
|
||||||
#define video_blend(x, y) video_blend_monitor(x, y, monitor_index_global)
|
#define video_blend(x, y) video_blend_monitor(x, y, monitor_index_global)
|
||||||
@@ -532,8 +529,6 @@ extern const device_t velocity_100_agp_device;
|
|||||||
/* Wyse 700 */
|
/* Wyse 700 */
|
||||||
extern const device_t wy700_device;
|
extern const device_t wy700_device;
|
||||||
|
|
||||||
/* AGP GART */
|
|
||||||
extern const device_t agpgart_device;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*EMU_VIDEO_H*/
|
#endif /*EMU_VIDEO_H*/
|
||||||
|
@@ -23,13 +23,7 @@
|
|||||||
#include <86box/86box.h>
|
#include <86box/86box.h>
|
||||||
#include <86box/device.h>
|
#include <86box/device.h>
|
||||||
#include <86box/mem.h>
|
#include <86box/mem.h>
|
||||||
|
#include <86box/agpgart.h>
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int aperture_enable;
|
|
||||||
uint32_t aperture_base, aperture_size, aperture_mask, gart_base;
|
|
||||||
mem_mapping_t aperture_mapping;
|
|
||||||
} agpgart_t;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef ENABLE_AGPGART_LOG
|
#ifdef ENABLE_AGPGART_LOG
|
||||||
@@ -52,10 +46,8 @@ agpgart_log(const char *fmt, ...)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
agpgart_set_aperture(void *handle, uint32_t base, uint32_t size, int enable)
|
agpgart_set_aperture(agpgart_t *dev, uint32_t base, uint32_t size, int enable)
|
||||||
{
|
{
|
||||||
agpgart_t *dev = (agpgart_t *) handle;
|
|
||||||
|
|
||||||
agpgart_log("AGP GART: set_aperture(%08X, %d, %d)\n", base, size, enable);
|
agpgart_log("AGP GART: set_aperture(%08X, %d, %d)\n", base, size, enable);
|
||||||
|
|
||||||
/* Disable old aperture mapping. */
|
/* Disable old aperture mapping. */
|
||||||
@@ -75,10 +67,8 @@ agpgart_set_aperture(void *handle, uint32_t base, uint32_t size, int enable)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
agpgart_set_gart(void *handle, uint32_t base)
|
agpgart_set_gart(agpgart_t *dev, uint32_t base)
|
||||||
{
|
{
|
||||||
agpgart_t *dev = (agpgart_t *) handle;
|
|
||||||
|
|
||||||
agpgart_log("AGP GART: set_gart(%08X)\n", base);
|
agpgart_log("AGP GART: set_gart(%08X)\n", base);
|
||||||
|
|
||||||
/* Set GART base address. */
|
/* Set GART base address. */
|
||||||
|
Reference in New Issue
Block a user