source: rtems/c/src/lib/libbsp/i386/shared/comm/i386_io.h @ cba119c9

4.104.114.84.95
Last change on this file since cba119c9 was cba119c9, checked in by Ralf Corsepius <ralf.corsepius@…>, on 10/17/05 at 10:34:02

Remove CVS Log

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*
2/////////////////////////////////////////////////////////////////////////////
3// $Header$
4//
5// Copyright (c) 2000 - Rosimildo da Silva.  All Rights Reserved.
6//
7// MODULE DESCRIPTION:
8//
9// IO Functions for the PC platform equivalent to DOS/Linux. They make
10// eaiser the porting of code from these platforms.
11//
12//  by: Rosimildo da Silva:  rdasilva@connecttel.com
13//
14/////////////////////////////////////////////////////////////////////////////
15*/
16
17#ifndef i386_io_h__
18#define i386_io_h__
19
20#define rtems_inb(port)                                                 \
21({                                                                      \
22        register int _inb_result;                                       \
23                                                        \
24        asm volatile ("xorl %%eax,%%eax; inb %%dx,%%al" :               \
25            "=a" (_inb_result) : "d" (port));                           \
26        _inb_result;                                                    \
27})
28
29#define rtems_inw(port)                                                 \
30({                                                                      \
31        register int _inbw_result;                                      \
32                                                                        \
33        asm volatile ("xorl %%eax,%%eax; inw %%dx,%%ax" :               \
34            "=a" (_inbw_result) : "d" (port));                          \
35        _inbw_result;                                                   \
36})
37
38#define rtems_outb(port, data)                                          \
39        asm volatile ("outb %%al,%%dx" : : "a" (data), "d" (port))
40
41#define rtems_outw(port, data)                                          \
42        asm volatile ("outw %%ax,%%dx" : : "a" (data), "d" (port))
43
44#define outp(port, val) rtems_outb(port,val)
45#define inp(port)             rtems_inb(port)
46
47#define outb(val, port) rtems_outb(port,val)
48#define inb(port)             rtems_inb(port)
49
50#define outb_p(val, port)       rtems_outb(port,val)
51#define inb_p(port)           rtems_inb(port)
52
53#define outportb(port,val)      rtems_outb(port,val)
54#define inportb(port)   rtems_inb(port)
55
56#define outw(val, port) rtems_outw(port,val)
57#define inw(port)             rtems_inw(port)
58
59#define cli()   __asm__ __volatile__("cli")
60#define sti()   __asm__ __volatile__("sti");
61
62#endif /* i386_io_h__ */
Note: See TracBrowser for help on using the repository browser.