]> git.saurik.com Git - apple/xnu.git/blame - pexpert/pexpert/i386/protos.h
xnu-792.12.6.tar.gz
[apple/xnu.git] / pexpert / pexpert / i386 / protos.h
CommitLineData
1c79356b
A
1/*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
8ad349bb 4 * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
1c79356b 5 *
8ad349bb
A
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the
10 * License may not be used to create, or enable the creation or
11 * redistribution of, unlawful or unlicensed copies of an Apple operating
12 * system, or to circumvent, violate, or enable the circumvention or
13 * violation of, any terms of an Apple operating system software license
14 * agreement.
15 *
16 * Please obtain a copy of the License at
17 * http://www.opensource.apple.com/apsl/ and read it before using this
18 * file.
19 *
20 * The Original Code and all software distributed under the License are
21 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
22 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
23 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
25 * Please see the License for the specific language governing rights and
26 * limitations under the License.
27 *
28 * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
1c79356b
A
29 */
30#ifndef _PEXPERT_I386_PROTOS_H
31#define _PEXPERT_I386_PROTOS_H
32
33//------------------------------------------------------------------------
34// x86 IN/OUT I/O inline functions.
35//
36// IN : inb, inw, inl
37// IN(port)
38//
39// OUT: outb, outw, outl
40// OUT(port, data)
41
42typedef unsigned short i386_ioport_t;
43
44#define __IN(s, u) \
45static __inline__ unsigned u \
46in##s(i386_ioport_t port) \
47{ \
48 unsigned u data; \
49 asm volatile ( \
50 "in" #s " %1,%0" \
51 : "=a" (data) \
52 : "d" (port)); \
53 return (data); \
54}
55
56#define __OUT(s, u) \
57static __inline__ void \
58out##s(i386_ioport_t port, unsigned u data) \
59{ \
60 asm volatile ( \
61 "out" #s " %1,%0" \
62 : \
63 : "d" (port), "a" (data)); \
64}
65
66__IN(b, char)
67__IN(w, short)
68__IN(l, long)
69
70__OUT(b, char)
71__OUT(w, short)
72__OUT(l, long)
73
0b4e3aa0 74extern void cninit(void);
0b4e3aa0 75extern int sprintf(char * str, const char * format, ...);
1c79356b 76
55e303ae
A
77//------------------------------------------------------------------------
78// from osfmk/console/panic_dialog.c
79extern void panic_ui_initialize(const unsigned char * clut);
80
9bccf70c
A
81//------------------------------------------------------------------------
82// from osfmk/i386/AT386/video_console.c
83
55e303ae
A
84extern void vc_progress_initialize( void * desc,
85 const unsigned char * data,
86 const unsigned char * clut );
9bccf70c
A
87
88extern void vc_display_icon( void * desc, const unsigned char * data );
1c79356b
A
89
90#endif /* _PEXPERT_I386_PROTOS_H */