]> git.saurik.com Git - apple/boot.git/blob - i386/libsaio/saio_internal.h
bf9acbe02c7f9c92e6dfe2ad7918f35817eb036a
[apple/boot.git] / i386 / libsaio / saio_internal.h
1 /*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
9 * Source License Version 1.1 (the "License"). You may not use this file
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
12 * this file.
13 *
14 * The Original Code and all software distributed under the License are
15 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
20 * under the License.
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
24
25 #ifndef __LIBSAIO_SAIO_INTERNAL_H
26 #define __LIBSAIO_SAIO_INTERNAL_H
27
28 #include "saio_types.h"
29
30 /* asm.s */
31 extern void real_to_prot(void);
32 extern void prot_to_real(void);
33 extern void halt(void);
34 extern void startprog(unsigned int address);
35
36 /* bios.s */
37 extern void bios(biosBuf_t *bb);
38 extern void get_memsize(biosBuf_t *bb);
39
40 /* biosfn.c */
41 #ifdef EISA_SUPPORT
42 extern BOOL eisa_present(void);
43 #endif
44 extern int bgetc(void);
45 extern int biosread(int dev, int cyl, int head, int sec, int num);
46 extern int ebiosread(int dev, long sec, int count);
47 extern void putc(int ch);
48 extern int getc(void);
49 extern int readKeyboardStatus(void);
50 extern unsigned int time18(void);
51 extern unsigned int get_diskinfo(int dev);
52 extern int APMPresent(void);
53 extern int APMConnect32(void);
54 extern int memsize(int i);
55 extern void video_mode(int mode);
56 extern void setCursorPosition(int x, int y);
57
58 /* bootstruct.c */
59 extern void initKernBootStruct(void);
60
61 /* console.c */
62 extern BOOL verbose_mode;
63 extern void putchar(int ch);
64 extern int getchar(void);
65 extern int printf(const char *format, ...);
66 extern int error(const char *format, ...);
67 extern int verbose(const char *format, ...);
68
69 /* disk.c */
70 extern void devopen(char *name, struct iob *io);
71 extern int devread(struct iob *io);
72 extern void devflush(void);
73
74 /* gets.c */
75 extern int gets(char *buf, int len);
76 extern int Gets(
77 char *buf,
78 int len,
79 int timeout,
80 char *prompt,
81 char *message
82 );
83
84 /* load.c */
85 extern int openfile(char *filename, int ignored);
86
87 extern int loadmacho(
88 struct mach_header *head,
89 int dev,
90 int io,
91 entry_t *entry,
92 char **addr,
93 int *size,
94 int file_offset
95 );
96 extern int loadprog(
97 int dev,
98 int fd,
99 struct mach_header *headOut,
100 entry_t *entry,
101 char **addr,
102 int *size
103 );
104
105 /* misc.c */
106 extern void sleep(int n);
107 extern void enableA20(void);
108 extern void turnOffFloppy(void);
109 extern char *newString(char *oldString);
110
111 /* stringTable.c */
112 extern char * newStringFromList(char **list, int *size);
113 extern int stringLength(char *table, int compress);
114 extern BOOL getValueForStringTableKey(char *table, char *key, char **val, int *size);
115 extern BOOL removeKeyFromTable(const char *key, char *table);
116 extern char * newStringForStringTableKey(char *table, char *key);
117 extern char * newStringForKey(char *key);
118 extern BOOL getValueForBootKey(char *line, char *match, char **matchval, int *len);
119 extern BOOL getValueForKey(char *key, char **val, int *size);
120 extern BOOL getBoolForKey(char *key);
121 extern BOOL getIntForKey(char *key, int *val);
122 #if 0
123 extern char * loadLocalizableStrings(char *name, char *tableName);
124 extern char * bundleLongName(char *bundleName, char *tableName);
125 extern int loadOtherConfigs(int useDefault);
126 #endif
127 extern int loadConfigFile( char *configFile, char **table, BOOL allocTable);
128 extern int loadConfigDir(char *bundleName, BOOL useDefault, char **table,
129 BOOL allocTable);
130 extern int loadSystemConfig(char *which, int size);
131 extern void addConfig(char *config);
132
133 /* sys.c */
134 extern void stop(char *message);
135 extern int openmem(char * buf, int len);
136 extern int open(char *str, int how);
137 extern int close(int fdesc);
138 extern int file_size(int fdesc);
139 extern int read(int fdesc, char *buf, int count);
140 extern int b_lseek(int fdesc, unsigned int addr, int ptr);
141 extern int tell(int fdesc);
142 extern void flushdev(void);
143 extern char *usrDevices(void);
144 extern struct dirstuff * opendir(char *path);
145 extern int closedir(struct dirstuff *dirp);
146 extern struct direct * readdir(struct dirstuff *dirp);
147 extern int currentdev(void);
148 extern int switchdev(int dev);
149
150 /* ufs_byteorder.c */
151 extern void byte_swap_superblock(struct fs *sb);
152 extern void byte_swap_inode_in(struct dinode *dc, struct dinode *ic);
153 extern void byte_swap_dir_block_in(char *addr, int count);
154
155 /*
156 * vbe.c
157 */
158 extern int set_linear_video_mode(unsigned short mode);
159
160 /*
161 * vga.c
162 */
163 extern void set_video_mode(unsigned int mode);
164
165 #endif /* !__LIBSAIO_SAIO_INTERNAL_H */