Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
4aeed7ad
Commit
4aeed7ad
authored
Oct 28, 2016
by
Ulrich Sibiller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove hw/xfree86 altogether
This is part one of ArcticaProject/nx-libs#246
parent
6c7f9cda
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
0 additions
and
2942 deletions
+0
-2942
compiler.h
nx-X11/programs/Xserver/hw/xfree86/common/compiler.h
+0
-1862
xf86_ansic.h
nx-X11/programs/Xserver/hw/xfree86/os-support/xf86_ansic.h
+0
-353
xf86_libc.h
nx-X11/programs/Xserver/hw/xfree86/os-support/xf86_libc.h
+0
-724
Imakefile
nx-X11/programs/Xserver/include/Imakefile
+0
-3
No files found.
nx-X11/programs/Xserver/hw/xfree86/common/compiler.h
deleted
100644 → 0
View file @
6c7f9cda
/*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Thomas Roell not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Thomas Roell makes no representations
* about the suitability of this software for any purpose. It is provided
* "as is" without express or implied warranty.
*
* THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*
*/
/*
* Copyright (c) 1994-2003 by The XFree86 Project, Inc.
*
* 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 copyright holder(s)
* and author(s) 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 copyright holder(s) and author(s).
*/
/* $XConsortium: compiler.h /main/16 1996/10/25 15:38:34 kaleb $ */
#ifndef _COMPILER_H
# if !defined(_XF86_ANSIC_H) && defined(XFree86Module)
# error missing #include "xf86_ansic.h" before #include "compiler.h"
# endif
# define _COMPILER_H
#if defined(__SUNPRO_C)
# define DO_PROTOTYPES
#endif
/* Allow drivers to use the GCC-supported __inline__ and/or __inline. */
# ifndef __inline__
# if defined(__GNUC__)
/* gcc has __inline__ */
# elif defined(__HIGHC__)
# define __inline__ _Inline
# else
# define __inline__
/**/
# endif
# endif
/* __inline__ */
# ifndef __inline
# if defined(__GNUC__)
/* gcc has __inline */
# elif defined(__HIGHC__)
# define __inline _Inline
# else
# define __inline
/**/
# endif
# endif
/* __inline */
# if defined(IODEBUG) && defined(__GNUC__)
# define outb RealOutb
# define outw RealOutw
# define outl RealOutl
# define inb RealInb
# define inw RealInw
# define inl RealInl
# endif
# if defined(QNX4)
/* Do this for now to keep Watcom happy */
# define outb outp
# define outw outpw
# define outl outpd
# define inb inp
# define inw inpw
# define inl inpd
/* Define the ffs function for inlining */
extern
int
ffs
(
unsigned
long
);
# pragma aux ffs_ = \
"bsf edx, eax" \
"jnz bits_set" \
"xor eax, eax" \
"jmp exit1" \
"bits_set:" \
"mov eax, edx" \
"inc eax" \
"exit1:" \
__parm [eax] \
__modify [eax edx] \
__value [eax] \
;
# endif
# if defined(__SUNPRO_C)
# define DO_PROTOTYPES
# endif
# if defined(NO_INLINE) || defined(DO_PROTOTYPES)
# if !defined(__arm__)
# if !defined(__sparc__) && !defined(__arm32__) \
&& !(defined(__alpha__) && defined(linux)) \
&& !(defined(__ia64__) && defined(linux)) \
extern
void
outb
(
unsigned
short
,
unsigned
char
);
extern
void
outw
(
unsigned
short
,
unsigned
short
);
extern
void
outl
(
unsigned
short
,
unsigned
int
);
extern
unsigned
int
inb
(
unsigned
short
);
extern
unsigned
int
inw
(
unsigned
short
);
extern
unsigned
int
inl
(
unsigned
short
);
# else
/* __sparc__, __arm32__, __alpha__*/
extern
void
outb
(
unsigned
long
,
unsigned
char
);
extern
void
outw
(
unsigned
long
,
unsigned
short
);
extern
void
outl
(
unsigned
long
,
unsigned
int
);
extern
unsigned
int
inb
(
unsigned
long
);
extern
unsigned
int
inw
(
unsigned
long
);
extern
unsigned
int
inl
(
unsigned
long
);
# endif
/* __sparc__, __arm32__, __alpha__ */
# endif
/* __arm__ */
extern
unsigned
long
ldq_u
(
unsigned
long
*
);
extern
unsigned
long
ldl_u
(
unsigned
int
*
);
extern
unsigned
long
ldw_u
(
unsigned
short
*
);
extern
void
stq_u
(
unsigned
long
,
unsigned
long
*
);
extern
void
stl_u
(
unsigned
long
,
unsigned
int
*
);
extern
void
stw_u
(
unsigned
long
,
unsigned
short
*
);
extern
void
mem_barrier
(
void
);
extern
void
write_mem_barrier
(
void
);
extern
void
stl_brx
(
unsigned
long
,
volatile
unsigned
char
*
,
int
);
extern
void
stw_brx
(
unsigned
short
,
volatile
unsigned
char
*
,
int
);
extern
unsigned
long
ldl_brx
(
volatile
unsigned
char
*
,
int
);
extern
unsigned
short
ldw_brx
(
volatile
unsigned
char
*
,
int
);
# endif
# ifndef NO_INLINE
# ifdef __GNUC__
# if (defined(linux) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)) && (defined(__alpha__))
# ifdef linux
/* for Linux on Alpha, we use the LIBC _inx/_outx routines */
/* note that the appropriate setup via "ioperm" needs to be done */
/* *before* any inx/outx is done. */
extern
void
(
*
_alpha_outb
)(
char
val
,
unsigned
long
port
);
static
__inline__
void
outb
(
unsigned
long
port
,
unsigned
char
val
)
{
_alpha_outb
(
val
,
port
);
}
extern
void
(
*
_alpha_outw
)(
short
val
,
unsigned
long
port
);
static
__inline__
void
outw
(
unsigned
long
port
,
unsigned
short
val
)
{
_alpha_outw
(
val
,
port
);
}
extern
void
(
*
_alpha_outl
)(
int
val
,
unsigned
long
port
);
static
__inline__
void
outl
(
unsigned
long
port
,
unsigned
int
val
)
{
_alpha_outl
(
val
,
port
);
}
extern
unsigned
int
(
*
_alpha_inb
)(
unsigned
long
port
);
static
__inline__
unsigned
int
inb
(
unsigned
long
port
)
{
return
_alpha_inb
(
port
);
}
extern
unsigned
int
(
*
_alpha_inw
)(
unsigned
long
port
);
static
__inline__
unsigned
int
inw
(
unsigned
long
port
)
{
return
_alpha_inw
(
port
);
}
extern
unsigned
int
(
*
_alpha_inl
)(
unsigned
long
port
);
static
__inline__
unsigned
int
inl
(
unsigned
long
port
)
{
return
_alpha_inl
(
port
);
}
# endif
/* linux */
# if (defined(__FreeBSD__) || defined(__OpenBSD__)) \
&& !defined(DO_PROTOTYPES)
/* for FreeBSD and OpenBSD on Alpha, we use the libio (resp. libalpha) */
/* inx/outx routines */
/* note that the appropriate setup via "ioperm" needs to be done */
/* *before* any inx/outx is done. */
extern
void
outb
(
unsigned
int
port
,
unsigned
char
val
);
extern
void
outw
(
unsigned
int
port
,
unsigned
short
val
);
extern
void
outl
(
unsigned
int
port
,
unsigned
int
val
);
extern
unsigned
char
inb
(
unsigned
int
port
);
extern
unsigned
short
inw
(
unsigned
int
port
);
extern
unsigned
int
inl
(
unsigned
int
port
);
# endif
/* (__FreeBSD__ || __OpenBSD__ ) && !DO_PROTOTYPES */
#if defined(__NetBSD__)
#include <machine/pio.h>
#endif
/* __NetBSD__ */
/*
* inline functions to do unaligned accesses
* from linux/include/asm-alpha/unaligned.h
*/
/*
* EGCS 1.1 knows about arbitrary unaligned loads. Define some
* packed structures to talk about such things with.
*/
struct
__una_u64
{
unsigned
long
x
__attribute__
((
packed
));
};
struct
__una_u32
{
unsigned
int
x
__attribute__
((
packed
));
};
struct
__una_u16
{
unsigned
short
x
__attribute__
((
packed
));
};
/*
* Elemental unaligned loads
*/
/* let's try making these things static */
static
__inline__
unsigned
long
ldq_u
(
unsigned
long
*
r11
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
const
struct
__una_u64
*
ptr
=
(
const
struct
__una_u64
*
)
r11
;
return
ptr
->
x
;
# else
unsigned
long
r1
,
r2
;
__asm__
(
"ldq_u %0,%3
\n\t
"
"ldq_u %1,%4
\n\t
"
"extql %0,%2,%0
\n\t
"
"extqh %1,%2,%1"
:
"=&r"
(
r1
),
"=&r"
(
r2
)
:
"r"
(
r11
),
"m"
(
*
r11
),
"m"
(
*
(
const
unsigned
long
*
)(
7
+
(
char
*
)
r11
)));
return
r1
|
r2
;
# endif
}
static
__inline__
unsigned
long
ldl_u
(
unsigned
int
*
r11
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
const
struct
__una_u32
*
ptr
=
(
const
struct
__una_u32
*
)
r11
;
return
ptr
->
x
;
# else
unsigned
long
r1
,
r2
;
__asm__
(
"ldq_u %0,%3
\n\t
"
"ldq_u %1,%4
\n\t
"
"extll %0,%2,%0
\n\t
"
"extlh %1,%2,%1"
:
"=&r"
(
r1
),
"=&r"
(
r2
)
:
"r"
(
r11
),
"m"
(
*
r11
),
"m"
(
*
(
const
unsigned
long
*
)(
3
+
(
char
*
)
r11
)));
return
r1
|
r2
;
# endif
}
static
__inline__
unsigned
long
ldw_u
(
unsigned
short
*
r11
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
const
struct
__una_u16
*
ptr
=
(
const
struct
__una_u16
*
)
r11
;
return
ptr
->
x
;
# else
unsigned
long
r1
,
r2
;
__asm__
(
"ldq_u %0,%3
\n\t
"
"ldq_u %1,%4
\n\t
"
"extwl %0,%2,%0
\n\t
"
"extwh %1,%2,%1"
:
"=&r"
(
r1
),
"=&r"
(
r2
)
:
"r"
(
r11
),
"m"
(
*
r11
),
"m"
(
*
(
const
unsigned
long
*
)(
1
+
(
char
*
)
r11
)));
return
r1
|
r2
;
# endif
}
/*
* Elemental unaligned stores
*/
static
__inline__
void
stq_u
(
unsigned
long
r5
,
unsigned
long
*
r11
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
struct
__una_u64
*
ptr
=
(
struct
__una_u64
*
)
r11
;
ptr
->
x
=
r5
;
# else
unsigned
long
r1
,
r2
,
r3
,
r4
;
__asm__
(
"ldq_u %3,%1
\n\t
"
"ldq_u %2,%0
\n\t
"
"insqh %6,%7,%5
\n\t
"
"insql %6,%7,%4
\n\t
"
"mskqh %3,%7,%3
\n\t
"
"mskql %2,%7,%2
\n\t
"
"bis %3,%5,%3
\n\t
"
"bis %2,%4,%2
\n\t
"
"stq_u %3,%1
\n\t
"
"stq_u %2,%0"
:
"=m"
(
*
r11
),
"=m"
(
*
(
unsigned
long
*
)(
7
+
(
char
*
)
r11
)),
"=&r"
(
r1
),
"=&r"
(
r2
),
"=&r"
(
r3
),
"=&r"
(
r4
)
:
"r"
(
r5
),
"r"
(
r11
));
# endif
}
static
__inline__
void
stl_u
(
unsigned
long
r5
,
unsigned
int
*
r11
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
struct
__una_u32
*
ptr
=
(
struct
__una_u32
*
)
r11
;
ptr
->
x
=
r5
;
# else
unsigned
long
r1
,
r2
,
r3
,
r4
;
__asm__
(
"ldq_u %3,%1
\n\t
"
"ldq_u %2,%0
\n\t
"
"inslh %6,%7,%5
\n\t
"
"insll %6,%7,%4
\n\t
"
"msklh %3,%7,%3
\n\t
"
"mskll %2,%7,%2
\n\t
"
"bis %3,%5,%3
\n\t
"
"bis %2,%4,%2
\n\t
"
"stq_u %3,%1
\n\t
"
"stq_u %2,%0"
:
"=m"
(
*
r11
),
"=m"
(
*
(
unsigned
long
*
)(
3
+
(
char
*
)
r11
)),
"=&r"
(
r1
),
"=&r"
(
r2
),
"=&r"
(
r3
),
"=&r"
(
r4
)
:
"r"
(
r5
),
"r"
(
r11
));
# endif
}
static
__inline__
void
stw_u
(
unsigned
long
r5
,
unsigned
short
*
r11
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
struct
__una_u16
*
ptr
=
(
struct
__una_u16
*
)
r11
;
ptr
->
x
=
r5
;
# else
unsigned
long
r1
,
r2
,
r3
,
r4
;
__asm__
(
"ldq_u %3,%1
\n\t
"
"ldq_u %2,%0
\n\t
"
"inswh %6,%7,%5
\n\t
"
"inswl %6,%7,%4
\n\t
"
"mskwh %3,%7,%3
\n\t
"
"mskwl %2,%7,%2
\n\t
"
"bis %3,%5,%3
\n\t
"
"bis %2,%4,%2
\n\t
"
"stq_u %3,%1
\n\t
"
"stq_u %2,%0"
:
"=m"
(
*
r11
),
"=m"
(
*
(
unsigned
long
*
)(
1
+
(
char
*
)
r11
)),
"=&r"
(
r1
),
"=&r"
(
r2
),
"=&r"
(
r3
),
"=&r"
(
r4
)
:
"r"
(
r5
),
"r"
(
r11
));
# endif
}
/* to flush the I-cache before jumping to code which just got loaded */
# define PAL_imb 134
# define istream_mem_barrier() \
__asm__ __volatile__("call_pal %0 #imb" : : "i" (PAL_imb) : "memory")
# define mem_barrier() __asm__ __volatile__("mb" : : : "memory")
# ifdef __ELF__
# define write_mem_barrier() __asm__ __volatile__("wmb" : : : "memory")
# else
/* ECOFF gas 2.6 doesn't know "wmb" :-( */
# define write_mem_barrier() mem_barrier()
# endif
# elif defined(linux) && defined(__ia64__)
# include <inttypes.h>
# include <sys/io.h>
struct
__una_u64
{
uint64_t
x
__attribute__
((
packed
));
};
struct
__una_u32
{
uint32_t
x
__attribute__
((
packed
));
};
struct
__una_u16
{
uint16_t
x
__attribute__
((
packed
));
};
static
__inline__
unsigned
long
__uldq
(
const
unsigned
long
*
r11
)
{
const
struct
__una_u64
*
ptr
=
(
const
struct
__una_u64
*
)
r11
;
return
ptr
->
x
;
}
static
__inline__
unsigned
long
__uldl
(
const
unsigned
int
*
r11
)
{
const
struct
__una_u32
*
ptr
=
(
const
struct
__una_u32
*
)
r11
;
return
ptr
->
x
;
}
static
__inline__
unsigned
long
__uldw
(
const
unsigned
short
*
r11
)
{
const
struct
__una_u16
*
ptr
=
(
const
struct
__una_u16
*
)
r11
;
return
ptr
->
x
;
}
static
__inline__
void
__ustq
(
unsigned
long
r5
,
unsigned
long
*
r11
)
{
struct
__una_u64
*
ptr
=
(
struct
__una_u64
*
)
r11
;
ptr
->
x
=
r5
;
}
static
__inline__
void
__ustl
(
unsigned
long
r5
,
unsigned
int
*
r11
)
{
struct
__una_u32
*
ptr
=
(
struct
__una_u32
*
)
r11
;
ptr
->
x
=
r5
;
}
static
__inline__
void
__ustw
(
unsigned
long
r5
,
unsigned
short
*
r11
)
{
struct
__una_u16
*
ptr
=
(
struct
__una_u16
*
)
r11
;
ptr
->
x
=
r5
;
}
# define ldq_u(p) __uldq(p)
# define ldl_u(p) __uldl(p)
# define ldw_u(p) __uldw(p)
# define stq_u(v,p) __ustq(v,p)
# define stl_u(v,p) __ustl(v,p)
# define stw_u(v,p) __ustw(v,p)
# ifndef __INTEL_COMPILER
# define mem_barrier() __asm__ __volatile__ ("mf" ::: "memory")
# define write_mem_barrier() __asm__ __volatile__ ("mf" ::: "memory")
# else
# include "ia64intrin.h"
# define mem_barrier() __mf()
# define write_mem_barrier() __mf()
# endif
/*
* This is overkill, but for different reasons depending on where it is used.
* This is thus general enough to be used everywhere cache flushes are needed.
* It doesn't handle memory access serialisation by other processors, though.
*/
# ifndef __INTEL_COMPILER
# define ia64_flush_cache(Addr) \
__asm__ __volatile__ ( \
"fc.i %0;;;" \
"sync.i;;;" \
"mf;;;" \
"srlz.i;;;" \
:: "r"(Addr) : "memory")
# else
# define ia64_flush_cache(Addr) { \
__fc(Addr);\
__synci();\
__mf();\
__isrlz();\
}
# endif
# undef outb
# undef outw
# undef outl
# undef inb
# undef inw
# undef inl
extern
void
outb
(
unsigned
long
port
,
unsigned
char
val
);
extern
void
outw
(
unsigned
long
port
,
unsigned
short
val
);
extern
void
outl
(
unsigned
long
port
,
unsigned
int
val
);
extern
unsigned
int
inb
(
unsigned
long
port
);
extern
unsigned
int
inw
(
unsigned
long
port
);
extern
unsigned
int
inl
(
unsigned
long
port
);
# elif defined(linux) && defined(__amd64__)
# include <inttypes.h>
# define ldq_u(p) (*((unsigned long *)(p)))
# define ldl_u(p) (*((unsigned int *)(p)))
# define ldw_u(p) (*((unsigned short *)(p)))
# define stq_u(v,p) (*(unsigned long *)(p)) = (v)
# define stl_u(v,p) (*(unsigned int *)(p)) = (v)
# define stw_u(v,p) (*(unsigned short *)(p)) = (v)
# define mem_barrier() \
__asm__ __volatile__ ("lock; addl $0,0(%%rsp)": : :"memory")
# define write_mem_barrier() \
__asm__ __volatile__ ("": : :"memory")
static
__inline__
void
outb
(
unsigned
short
port
,
unsigned
char
val
)
{
__asm__
__volatile__
(
"outb %0,%1"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
void
outw
(
unsigned
short
port
,
unsigned
short
val
)
{
__asm__
__volatile__
(
"outw %0,%1"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
void
outl
(
unsigned
short
port
,
unsigned
int
val
)
{
__asm__
__volatile__
(
"outl %0,%1"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
unsigned
int
inb
(
unsigned
short
port
)
{
unsigned
char
ret
;
__asm__
__volatile__
(
"inb %1,%0"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
static
__inline__
unsigned
int
inw
(
unsigned
short
port
)
{
unsigned
short
ret
;
__asm__
__volatile__
(
"inw %1,%0"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
static
__inline__
unsigned
int
inl
(
unsigned
short
port
)
{
unsigned
int
ret
;
__asm__
__volatile__
(
"inl %1,%0"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
# elif (defined(linux) || defined(Lynx) || defined(sun) || defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__sparc__)
# if !defined(Lynx)
# ifndef ASI_PL
# define ASI_PL 0x88
# endif
# define barrier() __asm__ __volatile__(".word 0x8143e00a": : :"memory")
static
__inline__
void
outb
(
unsigned
long
port
,
unsigned
char
val
)
{
__asm__
__volatile__
(
"stba %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
port
),
"i"
(
ASI_PL
));
barrier
();
}
static
__inline__
void
outw
(
unsigned
long
port
,
unsigned
short
val
)
{
__asm__
__volatile__
(
"stha %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
port
),
"i"
(
ASI_PL
));
barrier
();
}
static
__inline__
void
outl
(
unsigned
long
port
,
unsigned
int
val
)
{
__asm__
__volatile__
(
"sta %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
port
),
"i"
(
ASI_PL
));
barrier
();
}
static
__inline__
unsigned
int
inb
(
unsigned
long
port
)
{
unsigned
int
ret
;
__asm__
__volatile__
(
"lduba [%1] %2, %0"
:
"=r"
(
ret
)
:
"r"
(
port
),
"i"
(
ASI_PL
));
return
ret
;
}
static
__inline__
unsigned
int
inw
(
unsigned
long
port
)
{
unsigned
int
ret
;
__asm__
__volatile__
(
"lduha [%1] %2, %0"
:
"=r"
(
ret
)
:
"r"
(
port
),
"i"
(
ASI_PL
));
return
ret
;
}
static
__inline__
unsigned
int
inl
(
unsigned
long
port
)
{
unsigned
int
ret
;
__asm__
__volatile__
(
"lda [%1] %2, %0"
:
"=r"
(
ret
)
:
"r"
(
port
),
"i"
(
ASI_PL
));
return
ret
;
}
static
__inline__
unsigned
char
xf86ReadMmio8
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
unsigned
char
ret
;
__asm__
__volatile__
(
"lduba [%1] %2, %0"
:
"=r"
(
ret
)
:
"r"
(
addr
),
"i"
(
ASI_PL
));
return
ret
;
}
static
__inline__
unsigned
short
xf86ReadMmio16Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
unsigned
short
ret
;
__asm__
__volatile__
(
"lduh [%1], %0"
:
"=r"
(
ret
)
:
"r"
(
addr
));
return
ret
;
}
static
__inline__
unsigned
short
xf86ReadMmio16Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
unsigned
short
ret
;
__asm__
__volatile__
(
"lduha [%1] %2, %0"
:
"=r"
(
ret
)
:
"r"
(
addr
),
"i"
(
ASI_PL
));
return
ret
;
}
static
__inline__
unsigned
int
xf86ReadMmio32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
unsigned
int
ret
;
__asm__
__volatile__
(
"ld [%1], %0"
:
"=r"
(
ret
)
:
"r"
(
addr
));
return
ret
;
}
static
__inline__
unsigned
int
xf86ReadMmio32Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
unsigned
int
ret
;
__asm__
__volatile__
(
"lda [%1] %2, %0"
:
"=r"
(
ret
)
:
"r"
(
addr
),
"i"
(
ASI_PL
));
return
ret
;
}
static
__inline__
void
xf86WriteMmio8
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"stba %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
),
"i"
(
ASI_PL
));
barrier
();
}
static
__inline__
void
xf86WriteMmio16Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"sth %0, [%1]"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
));
barrier
();
}
static
__inline__
void
xf86WriteMmio16Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"stha %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
),
"i"
(
ASI_PL
));
barrier
();
}
static
__inline__
void
xf86WriteMmio32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"st %0, [%1]"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
));
barrier
();
}
static
__inline__
void
xf86WriteMmio32Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"sta %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
),
"i"
(
ASI_PL
));
barrier
();
}
static
__inline__
void
xf86WriteMmio8NB
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"stba %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
),
"i"
(
ASI_PL
));
}
static
__inline__
void
xf86WriteMmio16BeNB
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"sth %0, [%1]"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
));
}
static
__inline__
void
xf86WriteMmio16LeNB
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"stha %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
),
"i"
(
ASI_PL
));
}
static
__inline__
void
xf86WriteMmio32BeNB
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"st %0, [%1]"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
));
}
static
__inline__
void
xf86WriteMmio32LeNB
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"sta %0, [%1] %2"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
),
"i"
(
ASI_PL
));
}
# endif
/* !Lynx */
/*
* EGCS 1.1 knows about arbitrary unaligned loads. Define some
* packed structures to talk about such things with.
*/
# if defined(__arch64__) || defined(__sparcv9)
struct
__una_u64
{
unsigned
long
x
__attribute__
((
packed
));
};
# endif
struct
__una_u32
{
unsigned
int
x
__attribute__
((
packed
));
};
struct
__una_u16
{
unsigned
short
x
__attribute__
((
packed
));
};
static
__inline__
unsigned
long
ldq_u
(
unsigned
long
*
p
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
# if defined(__arch64__) || defined(__sparcv9)
const
struct
__una_u64
*
ptr
=
(
const
struct
__una_u64
*
)
p
;
# else
const
struct
__una_u32
*
ptr
=
(
const
struct
__una_u32
*
)
p
;
# endif
return
ptr
->
x
;
# else
unsigned
long
ret
;
memmove
(
&
ret
,
p
,
sizeof
(
*
p
));
return
ret
;
# endif
}
static
__inline__
unsigned
long
ldl_u
(
unsigned
int
*
p
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
const
struct
__una_u32
*
ptr
=
(
const
struct
__una_u32
*
)
p
;
return
ptr
->
x
;
# else
unsigned
int
ret
;
memmove
(
&
ret
,
p
,
sizeof
(
*
p
));
return
ret
;
# endif
}
static
__inline__
unsigned
long
ldw_u
(
unsigned
short
*
p
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
const
struct
__una_u16
*
ptr
=
(
const
struct
__una_u16
*
)
p
;
return
ptr
->
x
;
# else
unsigned
short
ret
;
memmove
(
&
ret
,
p
,
sizeof
(
*
p
));
return
ret
;
# endif
}
static
__inline__
void
stq_u
(
unsigned
long
val
,
unsigned
long
*
p
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
# if defined(__arch64__) || defined(__sparcv9)
struct
__una_u64
*
ptr
=
(
struct
__una_u64
*
)
p
;
# else
struct
__una_u32
*
ptr
=
(
struct
__una_u32
*
)
p
;
# endif
ptr
->
x
=
val
;
# else
unsigned
long
tmp
=
val
;
memmove
(
p
,
&
tmp
,
sizeof
(
*
p
));
# endif
}
static
__inline__
void
stl_u
(
unsigned
long
val
,
unsigned
int
*
p
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
struct
__una_u32
*
ptr
=
(
struct
__una_u32
*
)
p
;
ptr
->
x
=
val
;
# else
unsigned
int
tmp
=
val
;
memmove
(
p
,
&
tmp
,
sizeof
(
*
p
));
# endif
}
static
__inline__
void
stw_u
(
unsigned
long
val
,
unsigned
short
*
p
)
{
# if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
struct
__una_u16
*
ptr
=
(
struct
__una_u16
*
)
p
;
ptr
->
x
=
val
;
# else
unsigned
short
tmp
=
val
;
memmove
(
p
,
&
tmp
,
sizeof
(
*
p
));
# endif
}
# define mem_barrier()
/* XXX: nop for now */
# define write_mem_barrier()
/* XXX: nop for now */
# elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
# ifdef __arm32__
# define PORT_SIZE long
# else
# define PORT_SIZE short
# endif
unsigned
int
IOPortBase
;
/* Memory mapped I/O port area */
static
__inline__
void
outb
(
unsigned
PORT_SIZE
port
,
unsigned
char
val
)
{
*
(
volatile
unsigned
char
*
)(((
unsigned
PORT_SIZE
)(
port
))
+
IOPortBase
)
=
val
;
}
static
__inline__
void
outw
(
unsigned
PORT_SIZE
port
,
unsigned
short
val
)
{
*
(
volatile
unsigned
short
*
)(((
unsigned
PORT_SIZE
)(
port
))
+
IOPortBase
)
=
val
;
}
static
__inline__
void
outl
(
unsigned
PORT_SIZE
port
,
unsigned
int
val
)
{
*
(
volatile
unsigned
int
*
)(((
unsigned
PORT_SIZE
)(
port
))
+
IOPortBase
)
=
val
;
}
static
__inline__
unsigned
int
inb
(
unsigned
PORT_SIZE
port
)
{
return
*
(
volatile
unsigned
char
*
)(((
unsigned
PORT_SIZE
)(
port
))
+
IOPortBase
);
}
static
__inline__
unsigned
int
inw
(
unsigned
PORT_SIZE
port
)
{
return
*
(
volatile
unsigned
short
*
)(((
unsigned
PORT_SIZE
)(
port
))
+
IOPortBase
);
}
static
__inline__
unsigned
int
inl
(
unsigned
PORT_SIZE
port
)
{
return
*
(
volatile
unsigned
int
*
)(((
unsigned
PORT_SIZE
)(
port
))
+
IOPortBase
);
}
# if defined(__mips__)
static
__inline__
unsigned
long
ldq_u
(
unsigned
long
*
r11
)
{
unsigned
long
r1
;
__asm__
(
"lwr %0,%2
\n\t
"
"lwl %0,%3
\n\t
"
:
"=&r"
(
r1
)
:
"r"
(
r11
),
"m"
(
*
r11
),
"m"
(
*
(
unsigned
long
*
)(
3
+
(
char
*
)
r11
)));
return
r1
;
}
static
__inline__
unsigned
long
ldl_u
(
unsigned
int
*
r11
)
{
unsigned
long
r1
;
__asm__
(
"lwr %0,%2
\n\t
"
"lwl %0,%3
\n\t
"
:
"=&r"
(
r1
)
:
"r"
(
r11
),
"m"
(
*
r11
),
"m"
(
*
(
unsigned
long
*
)(
3
+
(
char
*
)
r11
)));
return
r1
;
}
static
__inline__
unsigned
long
ldw_u
(
unsigned
short
*
r11
)
{
unsigned
long
r1
;
__asm__
(
"lwr %0,%2
\n\t
"
"lwl %0,%3
\n\t
"
:
"=&r"
(
r1
)
:
"r"
(
r11
),
"m"
(
*
r11
),
"m"
(
*
(
unsigned
long
*
)(
1
+
(
char
*
)
r11
)));
return
r1
;
}
# ifdef linux
/* don't mess with other OSs */
/*
* EGCS 1.1 knows about arbitrary unaligned loads (and we don't support older
* versions anyway. Define some packed structures to talk about such things
* with.
*/
struct
__una_u32
{
unsigned
int
x
__attribute__
((
packed
));
};
struct
__una_u16
{
unsigned
short
x
__attribute__
((
packed
));
};
static
__inline__
void
stw_u
(
unsigned
long
val
,
unsigned
short
*
p
)
{
struct
__una_u16
*
ptr
=
(
struct
__una_u16
*
)
p
;
ptr
->
x
=
val
;
}
static
__inline__
void
stl_u
(
unsigned
long
val
,
unsigned
int
*
p
)
{
struct
__una_u32
*
ptr
=
(
struct
__una_u32
*
)
p
;
ptr
->
x
=
val
;
}
# if X_BYTE_ORDER == X_BIG_ENDIAN
static
__inline__
unsigned
int
xf86ReadMmio32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
unsigned
int
ret
;
__asm__
__volatile__
(
"lw %0, 0(%1)"
:
"=r"
(
ret
)
:
"r"
(
addr
));
return
ret
;
}
static
__inline__
void
xf86WriteMmio32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
unsigned
long
addr
=
((
unsigned
long
)
base
)
+
offset
;
__asm__
__volatile__
(
"sw %0, 0(%1)"
:
/* No outputs */
:
"r"
(
val
),
"r"
(
addr
));
}
# endif
# define mem_barrier() \
__asm__ __volatile__( \
"# prevent instructions being moved around\n\t" \
".set\tnoreorder\n\t" \
"# 8 nops to fool the R4400 pipeline\n\t" \
"nop;nop;nop;nop;nop;nop;nop;nop\n\t" \
".set\treorder" \
:
/* no output */
\
:
/* no input */
\
: "memory")
# define write_mem_barrier() mem_barrier()
# else
/* !linux */
# define stq_u(v,p) stl_u(v,p)
# define stl_u(v,p) (*(unsigned char *)(p)) = (v); \
(*(unsigned char *)(p)+1) = ((v) >> 8); \
(*(unsigned char *)(p)+2) = ((v) >> 16); \
(*(unsigned char *)(p)+3) = ((v) >> 24)
# define stw_u(v,p) (*(unsigned char *)(p)) = (v); \
(*(unsigned char *)(p)+1) = ((v) >> 8)
# define mem_barrier()
/* NOP */
# endif
/* !linux */
# endif
/* __mips__ */
# if defined(__arm32__)
# define ldq_u(p) (*((unsigned long *)(p)))
# define ldl_u(p) (*((unsigned int *)(p)))
# define ldw_u(p) (*((unsigned short *)(p)))
# define stq_u(v,p) (*(unsigned long *)(p)) = (v)
# define stl_u(v,p) (*(unsigned int *)(p)) = (v)
# define stw_u(v,p) (*(unsigned short *)(p)) = (v)
# define mem_barrier()
/* NOP */
# define write_mem_barrier()
/* NOP */
# endif
/* __arm32__ */
# elif (defined(Lynx) || defined(linux) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__)) && defined(__powerpc__)
# ifndef MAP_FAILED
# define MAP_FAILED ((void *)-1)
# endif
extern
volatile
unsigned
char
*
ioBase
;
#if defined(linux) && defined(__powerpc64__)
# include <asm/memory.h>
#endif
/* defined(linux) && defined(__powerpc64__) */
#ifndef eieio
/* We deal with arch-specific eieio() routines above... */
# define eieio() __asm__ __volatile__ ("eieio" ::: "memory")
#endif
/* eieio */
static
__inline__
unsigned
char
xf86ReadMmio8
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
register
unsigned
char
val
;
__asm__
__volatile__
(
"lbzx %0,%1,%2
\n\t
"
"eieio"
:
"=r"
(
val
)
:
"b"
(
base
),
"r"
(
offset
),
"m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
)));
return
val
;
}
static
__inline__
unsigned
short
xf86ReadMmio16Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
register
unsigned
short
val
;
__asm__
__volatile__
(
"lhzx %0,%1,%2
\n\t
"
"eieio"
:
"=r"
(
val
)
:
"b"
(
base
),
"r"
(
offset
),
"m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
)));
return
val
;
}
static
__inline__
unsigned
short
xf86ReadMmio16Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
register
unsigned
short
val
;
__asm__
__volatile__
(
"lhbrx %0,%1,%2
\n\t
"
"eieio"
:
"=r"
(
val
)
:
"b"
(
base
),
"r"
(
offset
),
"m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
)));
return
val
;
}
static
__inline__
unsigned
int
xf86ReadMmio32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
register
unsigned
int
val
;
__asm__
__volatile__
(
"lwzx %0,%1,%2
\n\t
"
"eieio"
:
"=r"
(
val
)
:
"b"
(
base
),
"r"
(
offset
),
"m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
)));
return
val
;
}
static
__inline__
unsigned
int
xf86ReadMmio32Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
)
{
register
unsigned
int
val
;
__asm__
__volatile__
(
"lwbrx %0,%1,%2
\n\t
"
"eieio"
:
"=r"
(
val
)
:
"b"
(
base
),
"r"
(
offset
),
"m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
)));
return
val
;
}
static
__inline__
void
xf86WriteMmioNB8
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
char
val
)
{
__asm__
__volatile__
(
"stbx %1,%2,%3
\n\t
"
:
"=m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
))
:
"r"
(
val
),
"b"
(
base
),
"r"
(
offset
));
}
static
__inline__
void
xf86WriteMmioNB16Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
short
val
)
{
__asm__
__volatile__
(
"sthbrx %1,%2,%3
\n\t
"
:
"=m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
))
:
"r"
(
val
),
"b"
(
base
),
"r"
(
offset
));
}
static
__inline__
void
xf86WriteMmioNB16Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
short
val
)
{
__asm__
__volatile__
(
"sthx %1,%2,%3
\n\t
"
:
"=m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
))
:
"r"
(
val
),
"b"
(
base
),
"r"
(
offset
));
}
static
__inline__
void
xf86WriteMmioNB32Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
__asm__
__volatile__
(
"stwbrx %1,%2,%3
\n\t
"
:
"=m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
))
:
"r"
(
val
),
"b"
(
base
),
"r"
(
offset
));
}
static
__inline__
void
xf86WriteMmioNB32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
__asm__
__volatile__
(
"stwx %1,%2,%3
\n\t
"
:
"=m"
(
*
((
volatile
unsigned
char
*
)
base
+
offset
))
:
"r"
(
val
),
"b"
(
base
),
"r"
(
offset
));
}
static
__inline__
void
xf86WriteMmio8
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
char
val
)
{
xf86WriteMmioNB8
(
base
,
offset
,
val
);
eieio
();
}
static
__inline__
void
xf86WriteMmio16Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
short
val
)
{
xf86WriteMmioNB16Le
(
base
,
offset
,
val
);
eieio
();
}
static
__inline__
void
xf86WriteMmio16Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
short
val
)
{
xf86WriteMmioNB16Be
(
base
,
offset
,
val
);
eieio
();
}
static
__inline__
void
xf86WriteMmio32Le
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
xf86WriteMmioNB32Le
(
base
,
offset
,
val
);
eieio
();
}
static
__inline__
void
xf86WriteMmio32Be
(
__volatile__
void
*
base
,
const
unsigned
long
offset
,
const
unsigned
int
val
)
{
xf86WriteMmioNB32Be
(
base
,
offset
,
val
);
eieio
();
}
static
__inline__
void
outb
(
unsigned
short
port
,
unsigned
char
value
)
{
if
(
ioBase
==
MAP_FAILED
)
return
;
xf86WriteMmio8
((
void
*
)
ioBase
,
port
,
value
);
}
static
__inline__
void
outw
(
unsigned
short
port
,
unsigned
short
value
)
{
if
(
ioBase
==
MAP_FAILED
)
return
;
xf86WriteMmio16Le
((
void
*
)
ioBase
,
port
,
value
);
}
static
__inline__
void
outl
(
unsigned
short
port
,
unsigned
int
value
)
{
if
(
ioBase
==
MAP_FAILED
)
return
;
xf86WriteMmio32Le
((
void
*
)
ioBase
,
port
,
value
);
}
static
__inline__
unsigned
int
inb
(
unsigned
short
port
)
{
if
(
ioBase
==
MAP_FAILED
)
return
0
;
return
xf86ReadMmio8
((
void
*
)
ioBase
,
port
);
}
static
__inline__
unsigned
int
inw
(
unsigned
short
port
)
{
if
(
ioBase
==
MAP_FAILED
)
return
0
;
return
xf86ReadMmio16Le
((
void
*
)
ioBase
,
port
);
}
static
__inline__
unsigned
int
inl
(
unsigned
short
port
)
{
if
(
ioBase
==
MAP_FAILED
)
return
0
;
return
xf86ReadMmio32Le
((
void
*
)
ioBase
,
port
);
}
# define ldq_u(p) ldl_u(p)
# define ldl_u(p) ((*(unsigned char *)(p)) | \
(*((unsigned char *)(p)+1)<<8) | \
(*((unsigned char *)(p)+2)<<16) | \
(*((unsigned char *)(p)+3)<<24))
# define ldw_u(p) ((*(unsigned char *)(p)) | \
(*((unsigned char *)(p)+1)<<8))
# define stq_u(v,p) stl_u(v,p)
# define stl_u(v,p) (*(unsigned char *)(p)) = (v); \
(*((unsigned char *)(p)+1)) = ((v) >> 8); \
(*((unsigned char *)(p)+2)) = ((v) >> 16); \
(*((unsigned char *)(p)+3)) = ((v) >> 24)
# define stw_u(v,p) (*(unsigned char *)(p)) = (v); \
(*((unsigned char *)(p)+1)) = ((v) >> 8)
# define mem_barrier() eieio()
# define write_mem_barrier() eieio()
#elif defined(__arm__) && defined(__linux__)
#define ldq_u(p) (*((unsigned long *)(p)))
#define ldl_u(p) (*((unsigned int *)(p)))
#define ldw_u(p) (*((unsigned short *)(p)))
#define stq_u(v,p) (*(unsigned long *)(p)) = (v)
#define stl_u(v,p) (*(unsigned int *)(p)) = (v)
#define stw_u(v,p) (*(unsigned short *)(p)) = (v)
#define mem_barrier()
/* NOP */
#define write_mem_barrier()
/* NOP */
/* for Linux on ARM, we use the LIBC inx/outx routines */
/* note that the appropriate setup via "ioperm" needs to be done */
/* *before* any inx/outx is done. */
#include <sys/io.h>
static
__inline__
void
xf_outb
(
unsigned
short
port
,
unsigned
char
val
)
{
outb
(
val
,
port
);
}
static
__inline__
void
xf_outw
(
unsigned
short
port
,
unsigned
short
val
)
{
outw
(
val
,
port
);
}
static
__inline__
void
xf_outl
(
unsigned
short
port
,
unsigned
int
val
)
{
outl
(
val
,
port
);
}
#define outb xf_outb
#define outw xf_outw
#define outl xf_outl
#define arm_flush_cache(addr) \
do { \
register unsigned long _beg __asm ("a1") = (unsigned long) (addr); \
register unsigned long _end __asm ("a2") = (unsigned long) (addr) + 4;\
register unsigned long _flg __asm ("a3") = 0; \
__asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \
: "=r" (_beg) \
: "0" (_beg), "r" (_end), "r" (_flg)); \
} while (0)
# else
/* ix86 */
# define ldq_u(p) (*((unsigned long *)(p)))
# define ldl_u(p) (*((unsigned int *)(p)))
# define ldw_u(p) (*((unsigned short *)(p)))
# define stq_u(v,p) (*(unsigned long *)(p)) = (v)
# define stl_u(v,p) (*(unsigned int *)(p)) = (v)
# define stw_u(v,p) (*(unsigned short *)(p)) = (v)
# define mem_barrier()
/* NOP */
# define write_mem_barrier()
/* NOP */
# if !defined(__SUNPRO_C)
# if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__)
# ifdef GCCUSESGAS
/*
* If gcc uses gas rather than the native assembler, the syntax of these
* inlines has to be different. DHD
*/
static
__inline__
void
outb
(
unsigned
short
port
,
unsigned
char
val
)
{
__asm__
__volatile__
(
"outb %0,%1"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
void
outw
(
unsigned
short
port
,
unsigned
short
val
)
{
__asm__
__volatile__
(
"outw %0,%1"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
void
outl
(
unsigned
short
port
,
unsigned
int
val
)
{
__asm__
__volatile__
(
"outl %0,%1"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
unsigned
int
inb
(
unsigned
short
port
)
{
unsigned
char
ret
;
__asm__
__volatile__
(
"inb %1,%0"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
static
__inline__
unsigned
int
inw
(
unsigned
short
port
)
{
unsigned
short
ret
;
__asm__
__volatile__
(
"inw %1,%0"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
static
__inline__
unsigned
int
inl
(
unsigned
short
port
)
{
unsigned
int
ret
;
__asm__
__volatile__
(
"inl %1,%0"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
# else
/* GCCUSESGAS */
static
__inline__
void
outb
(
unsigned
short
port
,
unsigned
char
val
)
{
__asm__
__volatile__
(
"out%B0 (%1)"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
void
outw
(
unsigned
short
port
,
unsigned
short
val
)
{
__asm__
__volatile__
(
"out%W0 (%1)"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
void
outl
(
unsigned
short
port
,
unsigned
int
val
)
{
__asm__
__volatile__
(
"out%L0 (%1)"
:
:
"a"
(
val
),
"d"
(
port
));
}
static
__inline__
unsigned
int
inb
(
unsigned
short
port
)
{
unsigned
char
ret
;
__asm__
__volatile__
(
"in%B0 (%1)"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
static
__inline__
unsigned
int
inw
(
unsigned
short
port
)
{
unsigned
short
ret
;
__asm__
__volatile__
(
"in%W0 (%1)"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
static
__inline__
unsigned
int
inl
(
unsigned
short
port
)
{
unsigned
int
ret
;
__asm__
__volatile__
(
"in%L0 (%1)"
:
"=a"
(
ret
)
:
"d"
(
port
));
return
ret
;
}
# endif
/* GCCUSESGAS */
# else
/* !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__)*/
static
__inline__
void
outb
(
unsigned
short
port
,
unsigned
char
val
)
{
}
static
__inline__
void
outw
(
unsigned
short
port
,
unsigned
short
val
)
{
}
static
__inline__
void
outl
(
unsigned
short
port
,
unsigned
int
val
)
{
}
static
__inline__
unsigned
int
inb
(
unsigned
short
port
)
{
return
0
;
}
static
__inline__
unsigned
int
inw
(
unsigned
short
port
)
{
return
0
;
}
static
__inline__
unsigned
int
inl
(
unsigned
short
port
)
{
return
0
;
}
# endif
/* FAKEIT */
# endif
/* __SUNPRO_C */
# endif
/* ix86 */
# elif defined(__powerpc__)
/* && !__GNUC__ */
/*
* NON-GCC PowerPC - Presumed to be PowerMAX OS for now
*/
# ifndef PowerMAX_OS
# error - Non-gcc PowerPC and !PowerMAXOS ???
# endif
# define PPCIO_DEBUG 0
# define PPCIO_INLINE 1
# define USE_ABS_MACRO 1
/*
* Use compiler intrinsics to access certain PPC machine instructions
*/
# define eieio() __inst_eieio()
# define stw_brx(val,base,ndx) __inst_sthbrx(val,base,ndx)
# define stl_brx(val,base,ndx) __inst_stwbrx(val,base,ndx)
# define ldw_brx(base,ndx) __inst_lhbrx(base,ndx)
# define ldl_brx(base,ndx) __inst_lwbrx(base,ndx)
# define ldq_u(p) (*((unsigned long long *)(p)))
# define ldl_u(p) (*((unsigned long *)(p)))
# define ldw_u(p) (*((unsigned short *)(p)))
# define stq_u(v,p) (*(unsigned long long *)(p)) = (v)
# define stl_u(v,p) (*(unsigned long *)(p)) = (v)
# define stw_u(v,p) (*(unsigned short *)(p)) = (v)
# define mem_barrier() eieio()
# define write_mem_barrier() eieio()
extern
volatile
unsigned
char
*
ioBase
;
# if !defined(abs) && defined(USE_ABS_MACRO)
# define abs(x) ((x) >= 0 ? (x) : -(x))
# endif
# undef inb
# undef inw
# undef inl
# undef outb
# undef outw
# undef outl
# if PPCIO_DEBUG
extern
void
debug_outb
(
unsigned
int
a
,
unsigned
char
b
,
int
line
,
char
*
file
);
extern
void
debug_outw
(
unsigned
int
a
,
unsigned
short
w
,
int
line
,
char
*
file
);
extern
void
debug_outl
(
unsigned
int
a
,
unsigned
int
l
,
int
line
,
char
*
file
);
extern
unsigned
char
debug_inb
(
unsigned
int
a
,
int
line
,
char
*
file
);
extern
unsigned
short
debug_inw
(
unsigned
int
a
,
int
line
,
char
*
file
);
extern
unsigned
int
debug_inl
(
unsigned
int
a
,
int
line
,
char
*
file
);
# define outb(a,b) debug_outb(a,b, __LINE__, __FILE__)
# define outw(a,w) debug_outw(a,w, __LINE__, __FILE__)
# define outl(a,l) debug_outl(a,l, __LINE__, __FILE__)
# define inb(a) debug_inb(a, __LINE__, __FILE__)
# define inw(a) debug_inw(a, __LINE__, __FILE__)
# define inl(a) debug_inl(a, __LINE__, __FILE__)
# else
/* !PPCIO_DEBUG */
extern
unsigned
char
inb
(
unsigned
int
a
);
extern
unsigned
short
inw
(
unsigned
int
a
);
extern
unsigned
int
inl
(
unsigned
int
a
);
# if PPCIO_INLINE
# define outb(a,b) \
(*((volatile unsigned char *)(ioBase + (a))) = (b), eieio())
# define outw(a,w) (stw_brx((w),ioBase,(a)), eieio())
# define outl(a,l) (stl_brx((l),ioBase,(a)), eieio())
# else
/* !PPCIO_INLINE */
extern
void
outb
(
unsigned
int
a
,
unsigned
char
b
);
extern
void
outw
(
unsigned
int
a
,
unsigned
short
w
);
extern
void
outl
(
unsigned
int
a
,
unsigned
int
l
);
# endif
/* PPCIO_INLINE */
# endif
/* !PPCIO_DEBUG */
# else
/* !GNUC && !PPC */
# if !defined(QNX4)
# if defined(__STDC__) && (__STDC__ == 1)
# ifndef asm
# define asm __asm
# endif
# endif
# ifndef SCO325
# if defined(__UNIXWARE__)
# if defined(IN_MODULE)
#
/* avoid including <sys/types.h> for <sys/inline.h> on UnixWare */
# define ushort unsigned short
# define ushort_t unsigned short
# define ulong unsigned long
# define ulong_t unsigned long
# define uint_t unsigned int
# define uchar_t unsigned char
# else
# include <sys/types.h>
# endif
/* IN_MODULE */
# endif
/* __UNIXWARE__ */
# if !defined(sgi) && !defined(__SUNPRO_C)
# include <sys/inline.h>
# endif
# else
# include "scoasm.h"
# endif
# if (!defined(__HIGHC__) && !defined(sgi) && !defined(__SUNPRO_C)) || \
defined(__USLC__)
# pragma asm partial_optimization outl
# pragma asm partial_optimization outw
# pragma asm partial_optimization outb
# pragma asm partial_optimization inl
# pragma asm partial_optimization inw
# pragma asm partial_optimization inb
# endif
# endif
# define ldq_u(p) (*((unsigned long *)(p)))
# define ldl_u(p) (*((unsigned int *)(p)))
# define ldw_u(p) (*((unsigned short *)(p)))
# define stq_u(v,p) (*(unsigned long *)(p)) = (v)
# define stl_u(v,p) (*(unsigned int *)(p)) = (v)
# define stw_u(v,p) (*(unsigned short *)(p)) = (v)
# define mem_barrier()
/* NOP */
# define write_mem_barrier()
/* NOP */
# endif
/* __GNUC__ */
# if defined(QNX4)
# include <sys/types.h>
extern
unsigned
inb
(
unsigned
port
);
extern
unsigned
inw
(
unsigned
port
);
extern
unsigned
inl
(
unsigned
port
);
extern
void
outb
(
unsigned
port
,
unsigned
val
);
extern
void
outw
(
unsigned
port
,
unsigned
val
);
extern
void
outl
(
unsigned
port
,
unsigned
val
);
# endif
/* QNX4 */
# if defined(IODEBUG) && defined(__GNUC__)
# undef inb
# undef inw
# undef inl
# undef outb
# undef outw
# undef outl
# define inb(a) __extension__ ({unsigned char __c=RealInb(a); ErrorF("inb(0x%03x) = 0x%02x\t@ line %4d, file %s\n", a, __c, __LINE__, __FILE__);__c;})
# define inw(a) __extension__ ({unsigned short __c=RealInw(a); ErrorF("inw(0x%03x) = 0x%04x\t@ line %4d, file %s\n", a, __c, __LINE__, __FILE__);__c;})
# define inl(a) __extension__ ({unsigned int __c=RealInl(a); ErrorF("inl(0x%03x) = 0x%08x\t@ line %4d, file %s\n", a, __c, __LINE__, __FILE__);__c;})
# define outb(a,b) (ErrorF("outb(0x%03x, 0x%02x)\t@ line %4d, file %s\n", a, b, __LINE__, __FILE__),RealOutb(a,b))
# define outw(a,b) (ErrorF("outw(0x%03x, 0x%04x)\t@ line %4d, file %s\n", a, b, __LINE__, __FILE__),RealOutw(a,b))
# define outl(a,b) (ErrorF("outl(0x%03x, 0x%08x)\t@ line %4d, file %s\n", a, b, __LINE__, __FILE__),RealOutl(a,b))
# endif
# endif
/* NO_INLINE */
# ifdef __alpha__
/* entry points for Mmio memory access routines */
extern
int
(
*
xf86ReadMmio8
)(
void
*
,
unsigned
long
);
extern
int
(
*
xf86ReadMmio16
)(
void
*
,
unsigned
long
);
# ifndef STANDALONE_MMIO
extern
int
(
*
xf86ReadMmio32
)(
void
*
,
unsigned
long
);
# else
/* Some DRI 3D drivers need MMIO_IN32. */
static
__inline__
int
xf86ReadMmio32
(
void
*
Base
,
unsigned
long
Offset
)
{
__asm__
__volatile__
(
"mb"
:
:
:
"memory"
);
return
*
(
volatile
unsigned
int
*
)((
unsigned
long
)
Base
+
(
Offset
));
}
# endif
extern
void
(
*
xf86WriteMmio8
)(
int
,
void
*
,
unsigned
long
);
extern
void
(
*
xf86WriteMmio16
)(
int
,
void
*
,
unsigned
long
);
extern
void
(
*
xf86WriteMmio32
)(
int
,
void
*
,
unsigned
long
);
extern
void
(
*
xf86WriteMmioNB8
)(
int
,
void
*
,
unsigned
long
);
extern
void
(
*
xf86WriteMmioNB16
)(
int
,
void
*
,
unsigned
long
);
extern
void
(
*
xf86WriteMmioNB32
)(
int
,
void
*
,
unsigned
long
);
extern
void
xf86JensenMemToBus
(
char
*
,
long
,
long
,
int
);
extern
void
xf86JensenBusToMem
(
char
*
,
char
*
,
unsigned
long
,
int
);
extern
void
xf86SlowBCopyFromBus
(
unsigned
char
*
,
unsigned
char
*
,
int
);
extern
void
xf86SlowBCopyToBus
(
unsigned
char
*
,
unsigned
char
*
,
int
);
/* Some macros to hide the system dependencies for MMIO accesses */
/* Changed to kill noise generated by gcc's -Wcast-align */
# define MMIO_IN8(base, offset) (*xf86ReadMmio8)(base, offset)
# define MMIO_IN16(base, offset) (*xf86ReadMmio16)(base, offset)
# ifndef STANDALONE_MMIO
# define MMIO_IN32(base, offset) (*xf86ReadMmio32)(base, offset)
# else
# define MMIO_IN32(base, offset) xf86ReadMmio32(base, offset)
# endif
# if defined (JENSEN_SUPPORT)
# define MMIO_OUT32(base, offset, val) \
(*xf86WriteMmio32)((CARD32)(val), base, offset)
# define MMIO_ONB32(base, offset, val) \
(*xf86WriteMmioNB32)((CARD32)(val), base, offset)
# else
# define MMIO_OUT32(base, offset, val) \
do { \
write_mem_barrier(); \
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val); \
} while (0)
# define MMIO_ONB32(base, offset, val) \
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val)
# endif
# define MMIO_OUT8(base, offset, val) \
(*xf86WriteMmio8)((CARD8)(val), base, offset)
# define MMIO_OUT16(base, offset, val) \
(*xf86WriteMmio16)((CARD16)(val), base, offset)
# define MMIO_ONB8(base, offset, val) \
(*xf86WriteMmioNB8)((CARD8)(val), base, offset)
# define MMIO_ONB16(base, offset, val) \
(*xf86WriteMmioNB16)((CARD16)(val), base, offset)
# define MMIO_MOVE32(base, offset, val) \
MMIO_OUT32(base, offset, val)
# elif defined(__powerpc__)
/*
* we provide byteswapping and no byteswapping functions here
* with byteswapping as default,
* drivers that don't need byteswapping should define PPC_MMIO_IS_BE
*/
# define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
# define MMIO_OUT8(base, offset, val) \
xf86WriteMmio8(base, offset, (CARD8)(val))
# define MMIO_ONB8(base, offset, val) \
xf86WriteMmioNB8(base, offset, (CARD8)(val))
# if defined(PPC_MMIO_IS_BE)
/* No byteswapping */
# define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset)
# define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset)
# define MMIO_OUT16(base, offset, val) \
xf86WriteMmio16Be(base, offset, (CARD16)(val))
# define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Be(base, offset, (CARD32)(val))
# define MMIO_ONB16(base, offset, val) \
xf86WriteMmioNB16Be(base, offset, (CARD16)(val))
# define MMIO_ONB32(base, offset, val) \
xf86WriteMmioNB32Be(base, offset, (CARD32)(val))
# else
/* byteswapping is the default */
# define MMIO_IN16(base, offset) xf86ReadMmio16Le(base, offset)
# define MMIO_IN32(base, offset) xf86ReadMmio32Le(base, offset)
# define MMIO_OUT16(base, offset, val) \
xf86WriteMmio16Le(base, offset, (CARD16)(val))
# define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Le(base, offset, (CARD32)(val))
# define MMIO_ONB16(base, offset, val) \
xf86WriteMmioNB16Le(base, offset, (CARD16)(val))
# define MMIO_ONB32(base, offset, val) \
xf86WriteMmioNB32Le(base, offset, (CARD32)(val))
# endif
# define MMIO_MOVE32(base, offset, val) \
xf86WriteMmio32Be(base, offset, (CARD32)(val))
static
__inline__
void
ppc_flush_icache
(
char
*
addr
)
{
__asm__
volatile
(
"dcbf 0,%0;"
"sync;"
"icbi 0,%0;"
"sync;"
"isync;"
:
:
"r"
(
addr
)
:
"memory"
);
}
# elif defined(__sparc__) || defined(sparc)
/*
* Like powerpc, we provide byteswapping and no byteswapping functions
* here with byteswapping as default, drivers that don't need byteswapping
* should define SPARC_MMIO_IS_BE (perhaps create a generic macro so that we
* do not need to use PPC_MMIO_IS_BE and the sparc one in all the same places
* of drivers?).
*/
# define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
# define MMIO_OUT8(base, offset, val) \
xf86WriteMmio8(base, offset, (CARD8)(val))
# define MMIO_ONB8(base, offset, val) \
xf86WriteMmio8NB(base, offset, (CARD8)(val))
# if defined(SPARC_MMIO_IS_BE)
/* No byteswapping */
# define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset)
# define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset)
# define MMIO_OUT16(base, offset, val) \
xf86WriteMmio16Be(base, offset, (CARD16)(val))
# define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Be(base, offset, (CARD32)(val))
# define MMIO_ONB16(base, offset, val) \
xf86WriteMmio16BeNB(base, offset, (CARD16)(val))
# define MMIO_ONB32(base, offset, val) \
xf86WriteMmio32BeNB(base, offset, (CARD32)(val))
# else
/* byteswapping is the default */
# define MMIO_IN16(base, offset) xf86ReadMmio16Le(base, offset)
# define MMIO_IN32(base, offset) xf86ReadMmio32Le(base, offset)
# define MMIO_OUT16(base, offset, val) \
xf86WriteMmio16Le(base, offset, (CARD16)(val))
# define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Le(base, offset, (CARD32)(val))
# define MMIO_ONB16(base, offset, val) \
xf86WriteMmio16LeNB(base, offset, (CARD16)(val))
# define MMIO_ONB32(base, offset, val) \
xf86WriteMmio32LeNB(base, offset, (CARD32)(val))
# endif
# define MMIO_MOVE32(base, offset, val) \
xf86WriteMmio32Be(base, offset, (CARD32)(val))
# else
/* !__alpha__ && !__powerpc__ && !__sparc__ */
# define MMIO_IN8(base, offset) \
*(volatile CARD8 *)(((CARD8*)(base)) + (offset))
# define MMIO_IN16(base, offset) \
*(volatile CARD16 *)(void *)(((CARD8*)(base)) + (offset))
# define MMIO_IN32(base, offset) \
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset))
# define MMIO_OUT8(base, offset, val) \
*(volatile CARD8 *)(((CARD8*)(base)) + (offset)) = (val)
# define MMIO_OUT16(base, offset, val) \
*(volatile CARD16 *)(void *)(((CARD8*)(base)) + (offset)) = (val)
# define MMIO_OUT32(base, offset, val) \
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val)
# define MMIO_ONB8(base, offset, val) MMIO_OUT8(base, offset, val)
# define MMIO_ONB16(base, offset, val) MMIO_OUT16(base, offset, val)
# define MMIO_ONB32(base, offset, val) MMIO_OUT32(base, offset, val)
# define MMIO_MOVE32(base, offset, val) MMIO_OUT32(base, offset, val)
# endif
/* __alpha__ */
/*
* With Intel, the version in os-support/misc/SlowBcopy.s is used.
* This avoids port I/O during the copy (which causes problems with
* some hardware).
*/
# ifdef __alpha__
# define slowbcopy_tobus(src,dst,count) xf86SlowBCopyToBus(src,dst,count)
# define slowbcopy_frombus(src,dst,count) xf86SlowBCopyFromBus(src,dst,count)
# else
/* __alpha__ */
# define slowbcopy_tobus(src,dst,count) xf86SlowBcopy(src,dst,count)
# define slowbcopy_frombus(src,dst,count) xf86SlowBcopy(src,dst,count)
# endif
/* __alpha__ */
#endif
/* _COMPILER_H */
nx-X11/programs/Xserver/hw/xfree86/os-support/xf86_ansic.h
deleted
100644 → 0
View file @
6c7f9cda
/*
* Copyright 1997-2003 by The XFree86 Project, Inc
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the names of the above listed copyright holders
* not be used in advertising or publicity pertaining to distribution of
* the software without specific, written prior permission. The above listed
* copyright holders make no representations about the suitability of this
* software for any purpose. It is provided "as is" without express or
* implied warranty.
*
* THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD
* TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE
* LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
* DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#ifndef _XF86_ANSIC_H
#define _XF86_ANSIC_H
/* Handle <stdarg.h> */
#ifndef IN_MODULE
# include <stdarg.h>
#else
/* !IN_MODULE */
# ifndef __OS2ELF__
# include <stdarg.h>
# else
/* __OS2ELF__ */
/* EMX/gcc_elf under OS/2 does not have native header files */
# if !defined (_VA_LIST)
# define _VA_LIST
typedef
char
*
va_list
;
# endif
# define _VA_ROUND(t) ((sizeof (t) + 3) & -4)
# if !defined (va_start)
# define va_start(ap,v) ap = (va_list)&v + ((sizeof (v) + 3) & -4)
# define va_end(ap) (ap = 0, (void)0)
# define va_arg(ap,t) (ap += _VA_ROUND (t), *(t *)(ap - _VA_ROUND (t)))
# endif
# endif
/* __OS2ELF__ */
#endif
/* IN_MODULE */
/*
* The first set of definitions are required both for modules and
* libc_wrapper.c.
*/
#if defined(XFree86LOADER) || defined(NEED_XF86_TYPES)
#if !defined(SYSV) && !defined(SVR4) && !defined(Lynx) || \
defined(__SCO__) || defined(__UNIXWARE__)
#define HAVE_VSSCANF
#define HAVE_VFSCANF
#endif
#ifndef NULL
#if (defined(SVR4) || defined(SYSV)) && !defined(__GNUC__)
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
#ifndef EOF
#define EOF (-1)
#endif
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
/* <limits.h> stuff */
#define x_BITSPERBYTE 8
#define x_BITS(type) (x_BITSPERBYTE * (int)sizeof(type))
#define x_SHORTBITS x_BITS(short)
#define x_INTBITS x_BITS(int)
#define x_LONGBITS x_BITS(long)
#ifndef SHRT_MIN
#define SHRT_MIN ((short)(1 << (x_SHORTBITS - 1)))
#endif
#ifndef FONTMODULE
#include "misc.h"
#endif
#include "xf86_libc.h"
#ifndef SHRT_MAX
#define SHRT_MAX ((short)~SHRT_MIN)
#endif
#ifndef USHRT_MAX
#define USHRT_MAX ((unsigned short)~0)
#endif
#ifndef MINSHORT
#define MINSHORT SHRT_MIN
#endif
#ifndef MAXSHORT
#define MAXSHORT SHRT_MAX
#endif
#ifndef INT_MIN
#define INT_MIN (1 << (x_INTBITS - 1))
#endif
#ifndef INT_MAX
#define INT_MAX (~INT_MIN)
#endif
#ifndef UINT_MAX
#define UINT_MAX (~0)
#endif
#ifndef MININT
#define MININT INT_MIN
#endif
#ifndef MAXINT
#define MAXINT INT_MAX
#endif
#ifndef LONG_MIN
#define LONG_MIN ((long)(1 << (x_LONGBITS - 1)))
#endif
#ifndef LONG_MAX
#define LONG_MAX ((long)~LONG_MIN)
#endif
#ifndef ULONG_MAX
#define ULONG_MAX ((unsigned long)~0UL)
#endif
#ifndef MINLONG
#define MINLONG LONG_MIN
#endif
#ifndef MAXLONG
#define MAXLONG LONG_MAX
#endif
#endif
/* XFree86LOADER || NEED_XF86_TYPES */
#if defined(XFree86LOADER) || defined(NEED_XF86_PROTOTYPES)
/*
* ANSI C compilers only.
*/
/* ANSI C emulation library */
extern
void
xf86abort
(
void
);
extern
int
xf86abs
(
int
);
extern
double
xf86acos
(
double
);
extern
double
xf86asin
(
double
);
extern
double
xf86atan
(
double
);
extern
double
xf86atan2
(
double
,
double
);
extern
double
xf86atof
(
const
char
*
);
extern
int
xf86atoi
(
const
char
*
);
extern
long
xf86atol
(
const
char
*
);
extern
void
*
xf86bsearch
(
const
void
*
,
const
void
*
,
xf86size_t
,
xf86size_t
,
int
(
*
)(
const
void
*
,
const
void
*
));
extern
double
xf86ceil
(
double
);
extern
void
*
xf86calloc
(
xf86size_t
,
xf86size_t
);
extern
void
xf86clearerr
(
XF86FILE
*
);
extern
double
xf86cos
(
double
);
extern
void
xf86exit
(
int
);
extern
double
xf86exp
(
double
);
extern
double
xf86fabs
(
double
);
extern
int
xf86fclose
(
XF86FILE
*
);
extern
int
xf86feof
(
XF86FILE
*
);
extern
int
xf86ferror
(
XF86FILE
*
);
extern
int
xf86fflush
(
XF86FILE
*
);
extern
int
xf86fgetc
(
XF86FILE
*
);
extern
int
xf86getc
(
XF86FILE
*
);
extern
int
xf86fgetpos
(
XF86FILE
*
,
XF86fpos_t
*
);
extern
char
*
xf86fgets
(
char
*
,
INT32
,
XF86FILE
*
);
extern
int
xf86finite
(
double
);
extern
double
xf86floor
(
double
);
extern
double
xf86fmod
(
double
,
double
);
extern
XF86FILE
*
xf86fopen
(
const
char
*
,
const
char
*
);
extern
double
xf86frexp
(
double
,
int
*
);
extern
int
xf86printf
(
const
char
*
,...);
extern
int
xf86fprintf
(
XF86FILE
*
,
const
char
*
,...);
extern
int
xf86fputc
(
int
,
XF86FILE
*
);
extern
int
xf86fputs
(
const
char
*
,
XF86FILE
*
);
extern
xf86size_t
xf86fread
(
void
*
,
xf86size_t
,
xf86size_t
,
XF86FILE
*
);
extern
void
xf86free
(
void
*
);
extern
XF86FILE
*
xf86freopen
(
const
char
*
,
const
char
*
,
XF86FILE
*
);
#if defined(HAVE_VFSCANF) || !defined(NEED_XF86_PROTOTYPES)
extern
int
xf86fscanf
(
XF86FILE
*
,
const
char
*
,...);
#else
extern
int
xf86fscanf
(
/*XF86FILE*,const char*,char *,char *,char *,char *,
char *,char *,char *,char *,char *,char * */
);
#endif
extern
int
xf86fseek
(
XF86FILE
*
,
long
,
int
);
extern
int
xf86fsetpos
(
XF86FILE
*
,
const
XF86fpos_t
*
);
extern
long
xf86ftell
(
XF86FILE
*
);
extern
xf86size_t
xf86fwrite
(
const
void
*
,
xf86size_t
,
xf86size_t
,
XF86FILE
*
);
extern
char
*
xf86getenv
(
const
char
*
);
extern
int
xf86isalnum
(
int
);
extern
int
xf86isalpha
(
int
);
extern
int
xf86iscntrl
(
int
);
extern
int
xf86isdigit
(
int
);
extern
int
xf86isgraph
(
int
);
extern
int
xf86islower
(
int
);
extern
int
xf86isprint
(
int
);
extern
int
xf86ispunct
(
int
);
extern
int
xf86isspace
(
int
);
extern
int
xf86isupper
(
int
);
extern
int
xf86isxdigit
(
int
);
extern
long
xf86labs
(
long
);
extern
double
xf86ldexp
(
double
,
int
);
extern
double
xf86log
(
double
);
extern
double
xf86log10
(
double
);
extern
void
*
xf86malloc
(
xf86size_t
);
extern
void
*
xf86memchr
(
const
void
*
,
int
,
xf86size_t
);
extern
int
xf86memcmp
(
const
void
*
,
const
void
*
,
xf86size_t
);
extern
void
*
xf86memcpy
(
void
*
,
const
void
*
,
xf86size_t
);
extern
void
*
xf86memmove
(
void
*
,
const
void
*
,
xf86size_t
);
extern
void
*
xf86memset
(
void
*
,
int
,
xf86size_t
);
extern
double
xf86modf
(
double
,
double
*
);
extern
void
xf86perror
(
const
char
*
);
extern
double
xf86pow
(
double
,
double
);
extern
void
xf86qsort
(
void
*
,
xf86size_t
,
xf86size_t
,
int
(
*
)(
const
void
*
,
const
void
*
));
extern
void
*
xf86realloc
(
void
*
,
xf86size_t
);
extern
int
xf86remove
(
const
char
*
);
extern
int
xf86rename
(
const
char
*
,
const
char
*
);
extern
void
xf86rewind
(
XF86FILE
*
);
extern
int
xf86setbuf
(
XF86FILE
*
,
char
*
);
extern
int
xf86setvbuf
(
XF86FILE
*
,
char
*
,
int
,
xf86size_t
);
extern
double
xf86sin
(
double
);
extern
int
xf86sprintf
(
char
*
,
const
char
*
,...);
extern
int
xf86snprintf
(
char
*
,
xf86size_t
,
const
char
*
,...);
extern
double
xf86sqrt
(
double
);
#if defined(HAVE_VSSCANF) || !defined(NEED_XF86_PROTOTYPES)
extern
int
xf86sscanf
(
char
*
,
const
char
*
,...);
#else
extern
int
xf86sscanf
(
/*char*,const char*,char *,char *,char *,char *,
char *,char *,char *,char *,char *,char * */
);
#endif
extern
char
*
xf86strcat
(
char
*
,
const
char
*
);
extern
char
*
xf86strchr
(
const
char
*
,
int
c
);
extern
int
xf86strcmp
(
const
char
*
,
const
char
*
);
extern
int
xf86strcasecmp
(
const
char
*
,
const
char
*
);
extern
char
*
xf86strcpy
(
char
*
,
const
char
*
);
extern
xf86size_t
xf86strcspn
(
const
char
*
,
const
char
*
);
extern
char
*
xf86strerror
(
int
);
extern
xf86size_t
xf86strlcat
(
char
*
,
const
char
*
,
xf86size_t
);
extern
xf86size_t
xf86strlcpy
(
char
*
,
const
char
*
,
xf86size_t
);
extern
xf86size_t
xf86strlen
(
const
char
*
);
extern
char
*
xf86strncat
(
char
*
,
const
char
*
,
xf86size_t
);
extern
int
xf86strncmp
(
const
char
*
,
const
char
*
,
xf86size_t
);
extern
int
xf86strncasecmp
(
const
char
*
,
const
char
*
,
xf86size_t
);
extern
char
*
xf86strncpy
(
char
*
,
const
char
*
,
xf86size_t
);
extern
char
*
xf86strpbrk
(
const
char
*
,
const
char
*
);
extern
char
*
xf86strrchr
(
const
char
*
,
int
);
extern
xf86size_t
xf86strspn
(
const
char
*
,
const
char
*
);
extern
char
*
xf86strstr
(
const
char
*
,
const
char
*
);
extern
double
xf86strtod
(
const
char
*
,
char
**
);
extern
char
*
xf86strtok
(
char
*
,
const
char
*
);
extern
long
xf86strtol
(
const
char
*
,
char
**
,
int
);
extern
unsigned
long
xf86strtoul
(
const
char
*
,
char
**
,
int
);
extern
double
xf86tan
(
double
);
extern
XF86FILE
*
xf86tmpfile
(
void
);
extern
char
*
xf86tmpnam
(
char
*
);
extern
int
xf86tolower
(
int
);
extern
int
xf86toupper
(
int
);
extern
int
xf86ungetc
(
int
,
XF86FILE
*
);
extern
int
xf86vfprintf
(
XF86FILE
*
,
const
char
*
,
va_list
);
extern
int
xf86vsprintf
(
char
*
,
const
char
*
,
va_list
);
extern
int
xf86vsnprintf
(
char
*
,
xf86size_t
,
const
char
*
,
va_list
);
extern
int
xf86open
(
const
char
*
,
int
,...);
extern
int
xf86close
(
int
);
extern
long
xf86lseek
(
int
,
long
,
int
);
extern
int
xf86ioctl
(
int
,
unsigned
long
,
void
*
);
extern
xf86ssize_t
xf86read
(
int
,
void
*
,
xf86size_t
);
extern
xf86ssize_t
xf86write
(
int
,
const
void
*
,
xf86size_t
);
extern
void
*
xf86mmap
(
void
*
,
xf86size_t
,
int
,
int
,
int
,
xf86size_t
/* off_t */
);
extern
int
xf86munmap
(
void
*
,
xf86size_t
);
extern
int
xf86stat
(
const
char
*
,
struct
xf86stat
*
);
extern
int
xf86fstat
(
int
,
struct
xf86stat
*
);
extern
int
xf86access
(
const
char
*
,
int
);
extern
int
xf86errno
;
extern
int
xf86GetErrno
(
void
);
extern
double
xf86HUGE_VAL
;
extern
double
xf86hypot
(
double
,
double
);
/* non-ANSI C functions */
extern
XF86DIR
*
xf86opendir
(
const
char
*
);
extern
int
xf86closedir
(
XF86DIR
*
);
extern
XF86DIRENT
*
xf86readdir
(
XF86DIR
*
);
extern
void
xf86rewinddir
(
XF86DIR
*
);
extern
void
xf86bcopy
(
const
void
*
,
void
*
,
xf86size_t
);
extern
int
xf86ffs
(
int
);
extern
char
*
xf86strdup
(
const
char
*
);
extern
void
xf86bzero
(
void
*
,
unsigned
int
);
extern
int
xf86execl
(
const
char
*
,
const
char
*
,
...);
extern
long
xf86fpossize
(
void
);
extern
int
xf86chmod
(
const
char
*
,
xf86mode_t
);
extern
int
xf86chown
(
const
char
*
,
xf86uid_t
,
xf86gid_t
);
extern
xf86uid_t
xf86geteuid
(
void
);
extern
xf86gid_t
xf86getegid
(
void
);
extern
int
xf86getpid
(
void
);
extern
int
xf86mknod
(
const
char
*
,
xf86mode_t
,
xf86dev_t
);
extern
int
xf86mkdir
(
const
char
*
,
xf86mode_t
);
unsigned
int
xf86sleep
(
unsigned
int
seconds
);
/* sysv IPC */
extern
int
xf86shmget
(
xf86key_t
key
,
int
size
,
int
xf86shmflg
);
extern
char
*
xf86shmat
(
int
id
,
char
*
addr
,
int
xf86shmflg
);
extern
int
xf86shmdt
(
char
*
addr
);
extern
int
xf86shmctl
(
int
id
,
int
xf86cmd
,
void
*
buf
);
extern
int
xf86setjmp
(
xf86jmp_buf
env
);
extern
int
xf86setjmp0
(
xf86jmp_buf
env
);
extern
int
xf86setjmp1
(
xf86jmp_buf
env
,
int
);
extern
int
xf86setjmp1_arg2
(
void
);
extern
int
xf86setjmperror
(
xf86jmp_buf
env
);
extern
int
xf86getjmptype
(
void
);
extern
void
xf86longjmp
(
xf86jmp_buf
env
,
int
val
);
#define xf86setjmp_macro(env) \
(xf86getjmptype() == 0 ? xf86setjmp0((env)) : \
(xf86getjmptype() == 1 ? xf86setjmp1((env), xf86setjmp1_arg2()) : \
xf86setjmperror((env))))
#else
/* XFree86LOADER || NEED_XF86_PROTOTYPES */
#include <unistd.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
#ifdef HAVE_SYSV_IPC
#include <sys/ipc.h>
#include <sys/shm.h>
#endif
#include <sys/stat.h>
#define stat_t struct stat
#endif
/* XFree86LOADER || NEED_XF86_PROTOTYPES */
/*
* These things are always required by drivers (but not by libc_wrapper.c),
* even for a static server because some OSs don't provide them.
*/
extern
int
xf86getpagesize
(
void
);
extern
void
xf86usleep
(
unsigned
long
);
extern
void
xf86getsecs
(
long
*
,
long
*
);
#ifndef DONT_DEFINE_WRAPPERS
#undef getpagesize
#define getpagesize() xf86getpagesize()
#undef usleep
#define usleep(ul) xf86usleep(ul)
#undef getsecs
#define getsecs(a, b) xf86getsecs(a, b)
#endif
#endif
/* _XF86_ANSIC_H */
nx-X11/programs/Xserver/hw/xfree86/os-support/xf86_libc.h
deleted
100644 → 0
View file @
6c7f9cda
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
*
* 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 copyright holder(s)
* and author(s) 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 copyright holder(s) and author(s).
*/
/*
* This file is an attempt to make developing code for the new loadable module
* architecure simpler. It tries to use macros to hide all libc wrappers so
* that all that is needed to "port" a module to this architecture is to
* include this one header file
*
* Revision history:
*
*
* 0.4 Apr 12 1997 add the ANSI defines
* 0.3 Feb 24 1997 handle getenv
* 0.2 Feb 24 1997 hide few FILE functions
* 0.1 Feb 24 1997 hide the trivial functions mem* str*
*/
#ifndef XF86_LIBC_H
#define XF86_LIBC_H 1
#include <nx-X11/Xfuncs.h>
#include <stddef.h>
/*
* The first set of definitions are required both for modules and
* libc_wrapper.c.
*/
#if defined(XFree86LOADER) || defined(NEED_XF86_TYPES)
/*
* First, the new data types
*
* note: if some pointer is declared "opaque" here, pass it between
* xf86* functions only, and don't rely on it having a whatever internal
* structure, even if some source file might reveal the existence of
* such a structure.
*/
typedef
void
XF86FILE
;
/* opaque FILE replacement */
extern
XF86FILE
*
xf86stdin
;
extern
XF86FILE
*
xf86stdout
;
extern
XF86FILE
*
xf86stderr
;
typedef
void
XF86fpos_t
;
/* opaque fpos_t replacement */
#define _XF86NAMELEN 263
/* enough for a larger filename */
/* (divisble by 8) */
typedef
void
XF86DIR
;
/* opaque DIR replacement */
/* Note: the following is POSIX! POSIX only requires the d_name member.
* Normal Unix has often a number of other members, but don't rely on that
*/
struct
_xf86dirent
{
/* types in struct dirent/direct: */
char
d_name
[
_XF86NAMELEN
+
1
];
/* char [MAXNAMLEN]; might be smaller or unaligned */
};
typedef
struct
_xf86dirent
XF86DIRENT
;
typedef
unsigned
long
xf86size_t
;
typedef
signed
long
xf86ssize_t
;
typedef
unsigned
long
xf86dev_t
;
typedef
unsigned
int
xf86mode_t
;
typedef
unsigned
int
xf86uid_t
;
typedef
unsigned
int
xf86gid_t
;
struct
xf86stat
{
xf86dev_t
st_rdev
;
/* This is incomplete, and makes assumptions */
};
/* sysv IPC */
typedef
int
xf86key_t
;
/* setjmp/longjmp */
#if defined(__ia64__)
typedef
int
xf86jmp_buf
[
1024
]
__attribute__
((
aligned
(
16
)));
/* guarantees 128-bit alignment! */
#else
typedef
int
xf86jmp_buf
[
1024
];
#endif
/* for setvbuf */
#define XF86_IONBF 1
#define XF86_IOFBF 2
#define XF86_IOLBF 3
/* for open (XXX not complete) */
#define XF86_O_RDONLY 0x0000
#define XF86_O_WRONLY 0x0001
#define XF86_O_RDWR 0x0002
#define XF86_O_CREAT 0x0200
/* for mmap */
#define XF86_PROT_EXEC 0x0001
#define XF86_PROT_READ 0x0002
#define XF86_PROT_WRITE 0x0004
#define XF86_PROT_NONE 0x0008
#define XF86_MAP_FIXED 0x0001
#define XF86_MAP_SHARED 0x0002
#define XF86_MAP_PRIVATE 0x0004
#define XF86_MAP_32BIT 0x0040
#define XF86_MAP_FAILED ((void *)-1)
/* for fseek */
#define XF86_SEEK_SET 0
#define XF86_SEEK_CUR 1
#define XF86_SEEK_END 2
/* for access */
#define XF86_R_OK 0
#define XF86_W_OK 1
#define XF86_X_OK 2
#define XF86_F_OK 3
/* for chmod */
#define XF86_S_ISUID 04000
/* set user ID on execution */
#define XF86_S_ISGID 02000
/* set group ID on execution */
#define XF86_S_ISVTX 01000
/* sticky bit */
#define XF86_S_IRUSR 00400
/* read by owner */
#define XF86_S_IWUSR 00200
/* write by owner */
#define XF86_S_IXUSR 00100
/* execute/search by owner */
#define XF86_S_IRGRP 00040
/* read by group */
#define XF86_S_IWGRP 00020
/* write by group */
#define XF86_S_IXGRP 00010
/* execute/search by group */
#define XF86_S_IROTH 00004
/* read by others */
#define XF86_S_IWOTH 00002
/* write by others */
#define XF86_S_IXOTH 00001
/* execute/search by others */
/* for mknod */
#define XF86_S_IFREG 0010000
#define XF86_S_IFCHR 0020000
#define XF86_S_IFBLK 0040000
#define XF86_S_IFIFO 0100000
/*
* errno values
* They start at 1000 just so they don't match real errnos at all
*/
#define xf86_UNKNOWN 1000
#define xf86_EACCES 1001
#define xf86_EAGAIN 1002
#define xf86_EBADF 1003
#define xf86_EEXIST 1004
#define xf86_EFAULT 1005
#define xf86_EINTR 1006
#define xf86_EINVAL 1007
#define xf86_EISDIR 1008
#define xf86_ELOOP 1009
#define xf86_EMFILE 1010
#define xf86_ENAMETOOLONG 1011
#define xf86_ENFILE 1012
#define xf86_ENOENT 1013
#define xf86_ENOMEM 1014
#define xf86_ENOSPC 1015
#define xf86_ENOTDIR 1016
#define xf86_EPIPE 1017
#define xf86_EROFS 1018
#define xf86_ETXTBSY 1019
#define xf86_ENOTTY 1020
#define xf86_ENOSYS 1021
#define xf86_EBUSY 1022
#define xf86_ENODEV 1023
#define xf86_EIO 1024
#define xf86_ESRCH 1025
#define xf86_ENXIO 1026
#define xf86_E2BIG 1027
#define xf86_ENOEXEC 1028
#define xf86_ECHILD 1029
#define xf86_ENOTBLK 1030
#define xf86_EXDEV 1031
#define xf86_EFBIG 1032
#define xf86_ESPIPE 1033
#define xf86_EMLINK 1034
#define xf86_EDOM 1035
#define xf86_ERANGE 1036
/* sysv IPV */
/* xf86shmget() */
#define XF86IPC_CREAT 01000
#define XF86IPC_EXCL 02000
#define XF86IPC_NOWAIT 04000
#define XF86SHM_R 0400
#define XF86SHM_W 0200
#define XF86IPC_PRIVATE ((xf86key_t)0)
/* xf86shmat() */
#define XF86SHM_RDONLY 010000
/* attach read-only else read-write */
#define XF86SHM_RND 020000
/* round attach address to SHMLBA */
#define XF86SHM_REMAP 040000
/* take-over region on attach */
/* xf86shmclt() */
#define XF86IPC_RMID 0
#endif
/* defined(XFree86LOADER) || defined(NEED_XF86_TYPES) */
/*
* the rest of this file should only be included for code that is supposed
* to go into modules
*/
#if defined(XFree86LOADER) && !defined(DONT_DEFINE_WRAPPERS)
#undef abort
#define abort() xf86abort()
#undef abs
#define abs(i) xf86abs(i)
#undef acos
#define acos(d) xf86acos(d)
#undef asin
#define asin(d) xf86asin(d)
#undef atan
#define atan(d) xf86atan(d)
#undef atan2
#define atan2(d1,d2) xf86atan2(d1,d2)
#undef atof
#define atof(ccp) xf86atof(ccp)
#undef atoi
#define atoi(ccp) xf86atoi(ccp)
#undef atol
#define atol(ccp) xf86atol(ccp)
#undef bsearch
#define bsearch(a,b,c,d,e) xf86bsearch(a,b,c,d,e)
#undef ceil
#define ceil(d) xf86ceil(d)
#undef calloc
#define calloc(I1,I2) xf86calloc(I1,I2)
#undef clearerr
#define clearerr(FP) xf86clearerr(FP)
#undef cos
#define cos(d) xf86cos(d)
#undef exit
#define exit(i) xf86exit(i)
#undef exp
#define exp(d) xf86exp(d)
#undef fabs
#define fabs(d) xf86fabs(d)
#undef fclose
#define fclose(FP) xf86fclose(FP)
#undef feof
#define feof(FP) xf86feof(FP)
#undef ferror
#define ferror(FP) xf86ferror(FP)
#undef fflush
#define fflush(FP) xf86fflush(FP)
#undef fgetc
#define fgetc(FP) xf86fgetc(FP)
#undef getc
#define getc(FP) xf86getc(FP)
#undef fgetpos
#define fgetpos(FP,fpp) xf86fgetpos(FP,fpp)
#undef fgets
#define fgets(cp,i,FP) xf86fgets(cp,i,FP)
#undef finite
#define finite(d) xf86finite(d)
#undef floor
#define floor(d) xf86floor(d)
#undef fmod
#define fmod(d1,d2) xf86fmod(d1,d2)
#undef fopen
#define fopen(ccp1,ccp2) xf86fopen(ccp1,ccp2)
#undef printf
#define printf xf86printf
#undef fprintf
#define fprintf xf86fprintf
#undef fputc
#define fputc(i,FP) xf86fputc(i,FP)
#undef fputs
#define fputs(ccp,FP) xf86fputs(ccp,FP)
#undef fread
#define fread(vp,I1,I2,FP) xf86fread(vp,I1,I2,FP)
#undef free
#define free(vp) xf86free(vp)
#undef freopen
#define freopen(ccp1,ccp2,FP) xf86freopen(ccp1,ccp2,FP)
#undef frexp
#define frexp(x,exp) xf86frexp(x,exp)
#undef fscanf
#define fscanf xf86fscanf
#undef fseek
#define fseek(FP,l,i) xf86fseek(FP,l,i)
#undef fsetpos
#define fsetpos(FP,cfpp) xf86fsetpos(FP,cfpp)
#undef ftell
#define ftell(FP) xf86ftell(FP)
#undef fwrite
#define fwrite(cvp,I1,I2,FP) xf86fwrite(cvp,I1,I2,FP)
#undef getenv
#define getenv(ccp) xf86getenv(ccp)
#undef isalnum
#define isalnum(i) xf86isalnum(i)
#undef isalpha
#define isalpha(i) xf86isalpha(i)
#undef iscntrl
#define iscntrl(i) xf86iscntrl(i)
#undef isdigit
#define isdigit(i) xf86isdigit(i)
#undef isgraph
#define isgraph(i) xf86isgraph(i)
#undef islower
#define islower(i) xf86islower(i)
#undef isprint
#define isprint(i) xf86isprint(i)
#undef ispunct
#define ispunct(i) xf86ispunct(i)
#undef isspace
#define isspace(i) xf86isspace(i)
#undef isupper
#define isupper(i) xf86isupper(i)
#undef isxdigit
#define isxdigit(i) xf86isxdigit(i)
#undef labs
#define labs(l) xf86labs(l)
#undef ldexp
#define ldexp(x, exp) xf86ldexp(x, exp)
#undef log
#define log(d) xf86log(d)
#undef log10
#define log10(d) xf86log10(d)
#undef malloc
#define malloc(I) xf86malloc(I)
#undef memchr
#define memchr(cvp,i,I) xf86memchr(cvp,i,I)
#undef memcmp
#define memcmp(cvp1,cvp2,I) xf86memcmp(cvp1,cvp2,I)
#undef memcpy
#define memcpy(vp,cvp,I) xf86memcpy(vp,cvp,I)
#undef memmove
#define memmove(vp,cvp,I) xf86memmove(vp,cvp,I)
#undef memset
#define memset(vp,int,I) xf86memset(vp,int,I)
#undef modf
#define modf(d,dp) xf86modf(d,dp)
#undef perror
#define perror(ccp) xf86perror(ccp)
#undef pow
#define pow(d1,d2) xf86pow(d1,d2)
#undef realloc
#define realloc(vp,I) xf86realloc(vp,I)
#undef remove
#define remove(ccp) xf86remove(ccp)
#undef rename
#define rename(ccp1,ccp2) xf86rename(ccp1,ccp2)
#undef rewind
#define rewind(FP) xf86rewind(FP)
#undef setbuf
#define setbuf(FP,cp) xf86setbuf(FP,cp)
#undef setvbuf
#define setvbuf(FP,cp,i,I) xf86setvbuf(FP,cp,i,I)
#undef sin
#define sin(d) xf86sin(d)
#undef snprintf
#define snprintf xf86snprintf
#undef sprintf
#define sprintf xf86sprintf
#undef sqrt
#define sqrt(d) xf86sqrt(d)
#undef sscanf
#define sscanf xf86sscanf
#undef strcat
#define strcat(cp,ccp) xf86strcat(cp,ccp)
#undef strcmp
#define strcmp(ccp1,ccp2) xf86strcmp(ccp1,ccp2)
#undef strcasecmp
#define strcasecmp(ccp1,ccp2) xf86strcasecmp(ccp1,ccp2)
#undef strcpy
#define strcpy(cp,ccp) xf86strcpy(cp,ccp)
#undef strcspn
#define strcspn(ccp1,ccp2) xf86strcspn(ccp1,ccp2)
#undef strerror
#define strerror(i) xf86strerror(i)
#undef strlcat
#define strlcat(cp,ccp,I) xf86strlcat(cp,ccp,I)
#undef strlcpy
#define strlcpy(cp,ccp,I) xf86strlcpy(cp,ccp,I)
#undef strlen
#define strlen(ccp) xf86strlen(ccp)
#undef strncmp
#define strncmp(ccp1,ccp2,I) xf86strncmp(ccp1,ccp2,I)
#undef strncasecmp
#define strncasecmp(ccp1,ccp2,I) xf86strncasecmp(ccp1,ccp2,I)
#undef strncpy
#define strncpy(cp,ccp,I) xf86strncpy(cp,ccp,I)
#undef strpbrk
#define strpbrk(ccp1,ccp2) xf86strpbrk(ccp1,ccp2)
#undef strchr
#define strchr(ccp,i) xf86strchr(ccp,i)
#undef strrchr
#define strrchr(ccp,i) xf86strrchr(ccp,i)
#undef strspn
#define strspn(ccp1,ccp2) xf86strspn(ccp1,ccp2)
#undef strstr
#define strstr(ccp1,ccp2) xf86strstr(ccp1,ccp2)
#undef srttod
#define strtod(ccp,cpp) xf86strtod(ccp,cpp)
#undef strtok
#define strtok(cp,ccp) xf86strtok(cp,ccp)
#undef strtol
#define strtol(ccp,cpp,i) xf86strtol(ccp,cpp,i)
#undef strtoul
#define strtoul(ccp,cpp,i) xf86strtoul(ccp,cpp,i)
#undef tan
#define tan(d) xf86tan(d)
#undef tmpfile
#define tmpfile() xf86tmpfile()
#undef tolower
#define tolower(i) xf86tolower(i)
#undef toupper
#define toupper(i) xf86toupper(i)
#undef ungetc
#define ungetc(i,FP) xf86ungetc(i,FP)
#undef vfprinf
#define vfprintf(p,f,a) xf86vfprintf(p,f,a)
#undef vsnprintf
#define vsnprintf(s,n,f,a) xf86vsnprintf(s,n,f,a)
#undef vsprintf
#define vsprintf(s,f,a) xf86vsprintf(s,f,a)
/* XXX Disable assert as if NDEBUG was defined */
/* Some X headers defined this away too */
#undef assert
#define assert(a) ((void)0)
#undef HUGE_VAL
#define HUGE_VAL xf86HUGE_VAL
#undef hypot
#define hypot(x,y) xf86hypot(x,y)
#undef qsort
#define qsort(b, n, s, f) xf86qsort(b, n, s, f)
/* non-ANSI C functions */
#undef opendir
#define opendir(cp) xf86opendir(cp)
#undef closedir
#define closedir(DP) xf86closedir(DP)
#undef readdir
#define readdir(DP) xf86readdir(DP)
#undef rewinddir
#define rewinddir(DP) xf86rewinddir(DP)
#undef bcopy
#define bcopy(vp,cvp,I) xf86memmove(cvp,vp,I)
#undef ffs
#define ffs(i) xf86ffs(i)
#undef strdup
#define strdup(ccp) xf86strdup(ccp)
#undef bzero
#define bzero(vp,ui) xf86bzero(vp,ui)
#undef execl
#define execl xf86execl
#undef chmod
#define chmod(a,b) xf86chmod(a,b)
#undef chown
#define chown(a,b,c) xf86chown(a,b,c)
#undef geteuid
#define geteuid xf86geteuid
#undef getegid
#define getegid xf86getegid
#undef getpid
#define getpid xf86getpid
#undef mknod
#define mknod(a,b,c) xf86mknod(a,b,c)
#undef sleep
#define sleep(a) xf86sleep(a)
#undef mkdir
#define mkdir(a,b) xf86mkdir(a,b)
#undef getpagesize
#define getpagesize xf86getpagesize
#undef shmget
#define shmget(a,b,c) xf86shmget(a,b,c)
#undef shmat
#define shmat(a,b,c) xf86shmat(a,b,c)
#undef shmdt
#define shmdt(a) xf86shmdt(a)
#undef shmctl
#define shmctl(a,b,c) xf86shmctl(a,b,c)
#undef S_ISUID
#define S_ISUID XF86_S_ISUID
#undef S_ISGID
#define S_ISGID XF86_S_ISGID
#undef S_ISVTX
#define S_ISVTX XF86_S_ISVTX
#undef S_IRUSR
#define S_IRUSR XF86_S_IRUSR
#undef S_IWUSR
#define S_IWUSR XF86_S_IWUSR
#undef S_IXUSR
#define S_IXUSR XF86_S_IXUSR
#undef S_IRGRP
#define S_IRGRP XF86_S_IRGRP
#undef S_IWGRP
#define S_IWGRP XF86_S_IWGRP
#undef S_IXGRP
#define S_IXGRP XF86_S_IXGRP
#undef S_IROTH
#define S_IROTH XF86_S_IROTH
#undef S_IWOTH
#define S_IWOTH XF86_S_IWOTH
#undef S_IXOTH
#define S_IXOTH XF86_S_IXOTH
#undef S_IFREG
#define S_IFREG XF86_S_IFREG
#undef S_IFCHR
#define S_IFCHR XF86_S_IFCHR
#undef S_IFBLK
#define S_IFBLK XF86_S_IFBLK
#undef S_IFIFO
#define S_IFIFO XF86_S_IFIFO
/* some types */
#undef FILE
#define FILE XF86FILE
#undef fpos_t
#define fpos_t XF86fpos_t
#undef DIR
#define DIR XF86DIR
#undef DIRENT
#define DIRENT XF86DIRENT
#undef size_t
#define size_t xf86size_t
#undef ssize_t
#define ssize_t xf86ssize_t
#undef dev_t
#define dev_t xf86dev_t
#undef mode_t
#define mode_t xf86mode_t
#undef uid_t
#define uid_t xf86uid_t
#undef gid_t
#define gid_t xf86gid_t
#undef stat_t
#define stat_t struct xf86stat
#undef ulong
#define ulong unsigned long
/*
* There should be no need to #undef any of these. If they are already
* defined it is because some illegal header has been included.
*/
/* some vars */
#undef stdin
#define stdin xf86stdin
#undef stdout
#define stdout xf86stdout
#undef stderr
#define stderr xf86stderr
#undef SEEK_SET
#define SEEK_SET XF86_SEEK_SET
#undef SEEK_CUR
#define SEEK_CUR XF86_SEEK_CUR
#undef SEEK_END
#define SEEK_END XF86_SEEK_END
/*
* XXX Basic I/O functions BAD,BAD,BAD!
*/
#define open xf86open
#define close(a) xf86close(a)
#define lseek(a,b,c) xf86lseek(a,b,c)
#if !defined(__DragonFly__)
#define ioctl(a,b,c) xf86ioctl(a,b,c)
#endif
#define read(a,b,c) xf86read(a,b,c)
#define write(a,b,c) xf86write(a,b,c)
#define mmap(a,b,c,d,e,f) xf86mmap(a,b,c,d,e,f)
#define munmap(a,b) xf86munmap(a,b)
#define stat(a,b) xf86stat(a,b)
#define fstat(a,b) xf86fstat(a,b)
#define access(a,b) xf86access(a,b)
#undef O_RDONLY
#define O_RDONLY XF86_O_RDONLY
#undef O_WRONLY
#define O_WRONLY XF86_O_WRONLY
#undef O_RDWR
#define O_RDWR XF86_O_RDWR
#undef O_CREAT
#define O_CREAT XF86_O_CREAT
#undef PROT_EXEC
#define PROT_EXEC XF86_PROT_EXEC
#undef PROT_READ
#define PROT_READ XF86_PROT_READ
#undef PROT_WRITE
#define PROT_WRITE XF86_PROT_WRITE
#undef PROT_NONE
#define PROT_NONE XF86_PROT_NONE
#undef MAP_FIXED
#define MAP_FIXED XF86_MAP_FIXED
#undef MAP_SHARED
#define MAP_SHARED XF86_MAP_SHARED
#undef MAP_PRIVATE
#define MAP_PRIVATE XF86_MAP_PRIVATE
#undef MAP_FAILED
#define MAP_FAILED XF86_MAP_FAILED
#undef R_OK
#define R_OK XF86_R_OK
#undef W_OK
#define W_OK XF86_W_OK
#undef X_OK
#define X_OK XF86_X_OK
#undef F_OK
#define F_OK XF86_F_OK
#undef errno
#define errno xf86errno
#undef putchar
#define putchar(i) xf86fputc(i, xf86stdout)
#undef puts
#define puts(s) xf86fputs(s, xf86stdout)
#undef EACCES
#define EACCES xf86_EACCES
#undef EAGAIN
#define EAGAIN xf86_EAGAIN
#undef EBADF
#define EBADF xf86_EBADF
#undef EEXIST
#define EEXIST xf86_EEXIST
#undef EFAULT
#define EFAULT xf86_EFAULT
#undef EINTR
#define EINTR xf86_EINTR
#undef EINVAL
#define EINVAL xf86_EINVAL
#undef EISDIR
#define EISDIR xf86_EISDIR
#undef ELOOP
#define ELOOP xf86_ELOOP
#undef EMFILE
#define EMFILE xf86_EMFILE
#undef ENAMETOOLONG
#define ENAMETOOLONG xf86_ENAMETOOLONG
#undef ENFILE
#define ENFILE xf86_ENFILE
#undef ENOENT
#define ENOENT xf86_ENOENT
#undef ENOMEM
#define ENOMEM xf86_ENOMEM
#undef ENOSPC
#define ENOSPC xf86_ENOSPC
#undef ENOTDIR
#define ENOTDIR xf86_ENOTDIR
#undef EPIPE
#define EPIPE xf86_EPIPE
#undef EROFS
#define EROFS xf86_EROFS
#undef ETXTBSY
#define ETXTBSY xf86_ETXTBSY
#undef ENOTTY
#define ENOTTY xf86_ENOTTY
#undef ENOSYS
#define ENOSYS xf86_ENOSYS
#undef EBUSY
#define EBUSY xf86_EBUSY
#undef ENODEV
#define ENODEV xf86_ENODEV
#undef EIO
#define EIO xf86_EIO
/* IPC stuff */
#undef SHM_RDONLY
#define SHM_RDONLY XF86SHM_RDONLY
#undef SHM_RND
#define SHM_RND XF86SHM_RND
#undef SHM_REMAP
#define SHM_REMAP XF86SHM_REMAP
#undef IPC_RMID
#define IPC_RMID XF86IPC_RMID
#undef IPC_CREAT
#define IPC_CREAT XF86IPC_CREAT
#undef IPC_EXCL
#define IPC_EXCL XF86IPC_EXCL
#undef PC_NOWAIT
#define IPC_NOWAIT XF86IPC_NOWAIT
#undef SHM_R
#define SHM_R XF86SHM_R
#undef SHM_W
#define SHM_W XF86SHM_W
#undef IPC_PRIVATE
#define IPC_PRIVATE XF86IPC_PRIVATE
/* Some ANSI macros */
#undef FILENAME_MAX
#define FILENAME_MAX 1024
#if (defined(sun) && defined(__SVR4))
# define _FILEDEFED
/* Already have FILE defined, don't redefine it */
#endif
#endif
/* XFree86LOADER && !DONT_DEFINE_WRAPPERS */
#if defined(XFree86LOADER) && \
(!defined(DONT_DEFINE_WRAPPERS) || defined(DEFINE_SETJMP_WRAPPERS))
#undef setjmp
#define setjmp(a) xf86setjmp_macro(a)
#undef longjmp
#define longjmp(a,b) xf86longjmp(a,b)
#undef jmp_buf
#define jmp_buf xf86jmp_buf
#endif
#endif
/* XF86_LIBC_H */
nx-X11/programs/Xserver/include/Imakefile
View file @
4aeed7ad
...
...
@@ -13,9 +13,6 @@ HEADERS = os.h misc.h
LinkSourceFile(xf86Module.h,$(XF86COMSRC))
LinkSourceFile(xf86Opt.h,$(XF86COMSRC))
#endif
LinkSourceFile(xf86_libc.h,$(XF86OSSRC))
LinkSourceFile(xf86_ansic.h,$(XF86OSSRC))
LinkSourceFile(compiler.h,$(XF86COMSRC))
#endif
LinkSourceFile(osdep.h,../os)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment