125 lines
3.0 KiB
ArmAsm
125 lines
3.0 KiB
ArmAsm
/ $XFree86: xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_inout.s,v 1.1 2001/05/28 02:42:31 tsi Exp $
|
|
/
|
|
/ Copyright 1994-2001 The XFree86 Project, Inc. All Rights Reserved.
|
|
/
|
|
/ Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
/ of this software and associated documentation files (the "Software"), to deal
|
|
/ in the Software without restriction, including without limitation the rights
|
|
/ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
/ copies of the Software, and to permit persons to whom the Software is
|
|
/ furnished to do so, subject to the following conditions:
|
|
/
|
|
/ The above copyright notice and this permission notice shall be included in
|
|
/ all copies or substantial portions of the Software.
|
|
/
|
|
/ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
/ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
/ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
/ XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
/ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
/ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
/
|
|
/ Except as contained in this notice, the name of the XFree86 Project shall not
|
|
/ be used in advertising or otherwise to promote the sale, use or other
|
|
/ dealings in this Software without prior written authorization from the
|
|
/ XFree86 Project.
|
|
/
|
|
/
|
|
/ File: sun_inout.s
|
|
/
|
|
/ Purpose: Provide inb(), inw(), inl(), outb(), outw(), outl() functions
|
|
/ for Solaris x86 using the ProWorks compiler by SunPro
|
|
/
|
|
/ Author: Installed into XFree86 SuperProbe by Doug Anson (danson@lgc.com)
|
|
/ Portions donated to XFree86 by Steve Dever (Steve.Dever@Eng.Sun.Com)
|
|
/
|
|
/ Synopsis: (c callable external declarations)
|
|
/ extern unsigned char inb(int port);
|
|
/ extern unsigned short inw(int port);
|
|
/ extern unsigned long inl(int port);
|
|
/ extern void outb(int port, unsigned char value);
|
|
/ extern void outw(int port, unsigned short value);
|
|
/ extern void outl(int port, unsigned long value);
|
|
/
|
|
|
|
.file "sunos_inout.s"
|
|
.text
|
|
|
|
.globl inb
|
|
.globl inw
|
|
.globl inl
|
|
.globl outb
|
|
.globl outw
|
|
.globl outl
|
|
|
|
/
|
|
/ unsigned char inb(int port);
|
|
/
|
|
.align 4
|
|
inb:
|
|
movl 4(%esp),%edx
|
|
subl %eax,%eax
|
|
inb (%dx)
|
|
ret
|
|
.type inb,@function
|
|
.size inb,.-inb
|
|
|
|
/
|
|
/ unsigned short inw(int port);
|
|
/
|
|
.align 4
|
|
inw:
|
|
movl 4(%esp),%edx
|
|
subl %eax,%eax
|
|
inw (%dx)
|
|
ret
|
|
.type inw,@function
|
|
.size inw,.-inw
|
|
|
|
/
|
|
/ unsigned long inl(int port);
|
|
/
|
|
.align 4
|
|
inl:
|
|
movl 4(%esp),%edx
|
|
inl (%dx)
|
|
ret
|
|
.type inl,@function
|
|
.size inl,.-inl
|
|
|
|
/
|
|
/ void outb(int port, unsigned char value);
|
|
/
|
|
.align 4
|
|
outb:
|
|
movl 4(%esp),%edx
|
|
movl 8(%esp),%eax
|
|
outb (%dx)
|
|
ret
|
|
.type outb,@function
|
|
.size outb,.-outb
|
|
|
|
/
|
|
/ void outw(int port, unsigned short value);
|
|
/
|
|
.align 4
|
|
outw:
|
|
movl 4(%esp),%edx
|
|
movl 8(%esp),%eax
|
|
outw (%dx)
|
|
ret
|
|
.type outw,@function
|
|
.size outw,.-outw
|
|
|
|
/
|
|
/ void outl(int port, unsigned long value);
|
|
/
|
|
.align 4
|
|
outl:
|
|
movl 4(%esp),%edx
|
|
movl 8(%esp),%eax
|
|
outl (%dx)
|
|
ret
|
|
.type outl,@function
|
|
.size outl,.-outl
|