1*7f2d47d8SEvgeniy Ivanov /* $NetBSD: pio.h,v 1.9 2011/05/22 16:01:43 christos Exp $ */ 2*7f2d47d8SEvgeniy Ivanov 3*7f2d47d8SEvgeniy Ivanov /*- 4*7f2d47d8SEvgeniy Ivanov * Copyright (c) 1998 The NetBSD Foundation, Inc. 5*7f2d47d8SEvgeniy Ivanov * All rights reserved. 6*7f2d47d8SEvgeniy Ivanov * 7*7f2d47d8SEvgeniy Ivanov * This code is derived from software contributed to The NetBSD Foundation 8*7f2d47d8SEvgeniy Ivanov * by Charles M. Hannum. 9*7f2d47d8SEvgeniy Ivanov * 10*7f2d47d8SEvgeniy Ivanov * Redistribution and use in source and binary forms, with or without 11*7f2d47d8SEvgeniy Ivanov * modification, are permitted provided that the following conditions 12*7f2d47d8SEvgeniy Ivanov * are met: 13*7f2d47d8SEvgeniy Ivanov * 1. Redistributions of source code must retain the above copyright 14*7f2d47d8SEvgeniy Ivanov * notice, this list of conditions and the following disclaimer. 15*7f2d47d8SEvgeniy Ivanov * 2. Redistributions in binary form must reproduce the above copyright 16*7f2d47d8SEvgeniy Ivanov * notice, this list of conditions and the following disclaimer in the 17*7f2d47d8SEvgeniy Ivanov * documentation and/or other materials provided with the distribution. 18*7f2d47d8SEvgeniy Ivanov * 19*7f2d47d8SEvgeniy Ivanov * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20*7f2d47d8SEvgeniy Ivanov * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21*7f2d47d8SEvgeniy Ivanov * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22*7f2d47d8SEvgeniy Ivanov * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23*7f2d47d8SEvgeniy Ivanov * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24*7f2d47d8SEvgeniy Ivanov * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25*7f2d47d8SEvgeniy Ivanov * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26*7f2d47d8SEvgeniy Ivanov * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27*7f2d47d8SEvgeniy Ivanov * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28*7f2d47d8SEvgeniy Ivanov * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29*7f2d47d8SEvgeniy Ivanov * POSSIBILITY OF SUCH DAMAGE. 30*7f2d47d8SEvgeniy Ivanov */ 31*7f2d47d8SEvgeniy Ivanov 32*7f2d47d8SEvgeniy Ivanov #ifndef _X86_PIO_H_ 33*7f2d47d8SEvgeniy Ivanov #define _X86_PIO_H_ 34*7f2d47d8SEvgeniy Ivanov 35*7f2d47d8SEvgeniy Ivanov /* 36*7f2d47d8SEvgeniy Ivanov * Functions to provide access to x86 programmed I/O instructions. 37*7f2d47d8SEvgeniy Ivanov */ 38*7f2d47d8SEvgeniy Ivanov 39*7f2d47d8SEvgeniy Ivanov uint8_t inb(unsigned); 40*7f2d47d8SEvgeniy Ivanov void insb(unsigned, void *, int); 41*7f2d47d8SEvgeniy Ivanov uint16_t inw(unsigned); 42*7f2d47d8SEvgeniy Ivanov void insw(unsigned, void *, int); 43*7f2d47d8SEvgeniy Ivanov uint32_t inl(unsigned); 44*7f2d47d8SEvgeniy Ivanov void insl(unsigned, void *, int); 45*7f2d47d8SEvgeniy Ivanov 46*7f2d47d8SEvgeniy Ivanov void outb(unsigned, uint8_t); 47*7f2d47d8SEvgeniy Ivanov void outsb(unsigned, void *, int); 48*7f2d47d8SEvgeniy Ivanov void outw(unsigned, uint16_t); 49*7f2d47d8SEvgeniy Ivanov void outsw(unsigned, void *, int); 50*7f2d47d8SEvgeniy Ivanov void outl(unsigned, uint32_t); 51*7f2d47d8SEvgeniy Ivanov void outsl(unsigned, void *, int); 52*7f2d47d8SEvgeniy Ivanov 53*7f2d47d8SEvgeniy Ivanov #endif /* _X86_PIO_H_ */ 54