4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * defines ioport related functions
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * Copyright (c) 2003 Fabrice Bellard
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * This library is free software; you can redistribute it and/or
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * modify it under the terms of the GNU Lesser General Public
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * License as published by the Free Software Foundation; either
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * version 2 of the License, or (at your option) any later version.
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * This library is distributed in the hope that it will be useful,
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * Lesser General Public License for more details.
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * You should have received a copy of the GNU Lesser General Public
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * License along with this library; if not, see <http://www.gnu.org/licenses/>.
f8db050073c46a20de538fb22c33e22952ee7223vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
f8db050073c46a20de538fb22c33e22952ee7223vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
f8db050073c46a20de538fb22c33e22952ee7223vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
f8db050073c46a20de538fb22c33e22952ee7223vboxsync * a choice of LGPL license versions is made available with the language indicating
f8db050073c46a20de538fb22c33e22952ee7223vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
f8db050073c46a20de538fb22c33e22952ee7223vboxsync * of the LGPL is applied is otherwise unspecified.
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync/**************************************************************************
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync * IO ports API
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync/* These should really be in isa.h, but are here to make pc.h happy. */
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsynctypedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsynctypedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsyncint register_ioport_read(pio_addr_t start, int length, int size,
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsyncint register_ioport_write(pio_addr_t start, int length, int size,
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsyncvoid isa_unassign_ioport(pio_addr_t start, int length);
cec22f4b94382f5ebee9d2f6b6df672689681e07vboxsyncvoid cpu_outb(CPUX86State *env, pio_addr_t addr, uint8_t val);
cec22f4b94382f5ebee9d2f6b6df672689681e07vboxsyncvoid cpu_outw(CPUX86State *env, pio_addr_t addr, uint16_t val);
cec22f4b94382f5ebee9d2f6b6df672689681e07vboxsyncvoid cpu_outl(CPUX86State *env, pio_addr_t addr, uint32_t val);
cec22f4b94382f5ebee9d2f6b6df672689681e07vboxsyncuint16_t cpu_inw(CPUX86State *env, pio_addr_t addr);
cec22f4b94382f5ebee9d2f6b6df672689681e07vboxsyncuint32_t cpu_inl(CPUX86State *env, pio_addr_t addr);
4c37c32b924cb13b821f9d2e01f42cabbd3d9cf9vboxsync#endif /* IOPORT_H */