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
 |