mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 19:49:43 +00:00
61f3c91a67
There is no "version 2" of the "Lesser" General Public License. It is either "GPL version 2.0" or "Lesser GPL version 2.1". This patch replaces all occurrences of "Lesser GPL version 2" with "Lesser GPL version 2.1" in comment section. This patch contains all the files, whose maintainer I could not get from ‘get_maintainer.pl’ script. Signed-off-by: Chetan Pant <chetan4windows@gmail.com> Message-Id: <20201023124424.20177-1-chetan4windows@gmail.com> Reviewed-by: Thomas Huth <thuth@redhat.com> [thuth: Adapted exec.c and qdev-monitor.c to new location] Signed-off-by: Thomas Huth <thuth@redhat.com>
76 lines
2.3 KiB
C
76 lines
2.3 KiB
C
/*
|
|
* defines ioport related functions
|
|
*
|
|
* Copyright (c) 2003 Fabrice Bellard
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/**************************************************************************
|
|
* IO ports API
|
|
*/
|
|
|
|
#ifndef IOPORT_H
|
|
#define IOPORT_H
|
|
|
|
#include "exec/memory.h"
|
|
|
|
#define MAX_IOPORTS (64 * 1024)
|
|
#define IOPORTS_MASK (MAX_IOPORTS - 1)
|
|
|
|
typedef struct MemoryRegionPortio {
|
|
uint32_t offset;
|
|
uint32_t len;
|
|
unsigned size;
|
|
uint32_t (*read)(void *opaque, uint32_t address);
|
|
void (*write)(void *opaque, uint32_t address, uint32_t data);
|
|
uint32_t base; /* private field */
|
|
} MemoryRegionPortio;
|
|
|
|
#define PORTIO_END_OF_LIST() { }
|
|
|
|
#ifndef CONFIG_USER_ONLY
|
|
extern const MemoryRegionOps unassigned_io_ops;
|
|
#endif
|
|
|
|
void cpu_outb(uint32_t addr, uint8_t val);
|
|
void cpu_outw(uint32_t addr, uint16_t val);
|
|
void cpu_outl(uint32_t addr, uint32_t val);
|
|
uint8_t cpu_inb(uint32_t addr);
|
|
uint16_t cpu_inw(uint32_t addr);
|
|
uint32_t cpu_inl(uint32_t addr);
|
|
|
|
typedef struct PortioList {
|
|
const struct MemoryRegionPortio *ports;
|
|
Object *owner;
|
|
struct MemoryRegion *address_space;
|
|
unsigned nr;
|
|
struct MemoryRegion **regions;
|
|
void *opaque;
|
|
const char *name;
|
|
bool flush_coalesced_mmio;
|
|
} PortioList;
|
|
|
|
void portio_list_init(PortioList *piolist, Object *owner,
|
|
const struct MemoryRegionPortio *callbacks,
|
|
void *opaque, const char *name);
|
|
void portio_list_set_flush_coalesced(PortioList *piolist);
|
|
void portio_list_destroy(PortioList *piolist);
|
|
void portio_list_add(PortioList *piolist,
|
|
struct MemoryRegion *address_space,
|
|
uint32_t addr);
|
|
void portio_list_del(PortioList *piolist);
|
|
|
|
#endif /* IOPORT_H */
|