]> git.saurik.com Git - apple/boot.git/blob - i386/libsaio/saio_internal.h
boot-122.tar.gz
[apple/boot.git] / i386 / libsaio / saio_internal.h
1 /*
2 * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Portions Copyright (c) 1999-2003 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 2.0 (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, void *arg);
35 extern void loader(UInt32 code, UInt32 cmdptr);
36
37 /* bios.s */
38 extern void bios(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 int ebioswrite(int dev, long sec, int count);
48 extern int get_drive_info(int drive, struct driveInfo *dp);
49 extern void putc(int ch);
50 extern void putca(int ch, int attr, int repeat);
51 extern int getc(void);
52 extern int readKeyboardStatus(void);
53 extern int readKeyboardShiftFlags(void);
54 extern unsigned int time18(void);
55 extern void delay(int ms);
56 extern unsigned int get_diskinfo(int dev);
57 #if APM_SUPPORT
58 extern int APMPresent(void);
59 extern int APMConnect32(void);
60 #endif
61 extern int memsize(int i);
62 extern void video_mode(int mode);
63 extern void setCursorPosition(int x, int y, int page);
64 extern void setCursorType(int type);
65 extern void getCursorPositionAndType(int *x, int *y, int *type);
66 extern void scollPage(int x1, int y1, int x2, int y2, int attr, int rows, int dir);
67 extern void clearScreenRows(int y1, int y2);
68 extern void setActiveDisplayPage( int page );
69 extern unsigned long getMemoryMap(struct MemoryRange * rangeArray, unsigned long maxRangeCount,
70 unsigned long * conMemSizePtr, unsigned long * extMemSizePtr);
71 extern unsigned long getExtendedMemorySize();
72 extern unsigned long getConventionalMemorySize();
73 extern void sleep(int n);
74
75 /* bootstruct.c */
76 extern void initKernBootStruct(int biosdev);
77 extern void reserveKernBootStruct(void);
78 extern void copyKernBootStruct(void);
79
80 /* cache.c */
81 extern void CacheInit(CICell ih, long blockSize);
82 extern long CacheRead(CICell ih, char *buffer, long long offset,
83 long length, long cache);
84
85 /* console.c */
86 extern BOOL gVerboseMode;
87 extern BOOL gErrors;
88 extern void putchar(int ch);
89 extern int getchar(void);
90 extern int printf(const char *format, ...);
91 extern int error(const char *format, ...);
92 extern int verbose(const char *format, ...);
93 extern void stop(const char *message);
94
95 /* disk.c */
96 extern BVRef diskScanBootVolumes(int biosdev, int *count);
97 extern void diskSeek(BVRef bvr, long long position);
98 extern int diskRead(BVRef bvr, long addr, long length);
99 extern int rawDiskRead(BVRef bvr, unsigned int secno, void *buffer, unsigned int len);
100 extern int rawDiskWrite(BVRef bvr, unsigned int secno, void *buffer, unsigned int len);
101 extern int readBootSector(int biosdev, unsigned int secno, void *buffer);
102 extern void turnOffFloppy(void);
103
104 /* hfs_compare.c */
105 extern void utf_encodestr( const u_int16_t * ucsp, int ucslen,
106 u_int8_t * utf8p, u_int32_t bufsize, int byte_order );
107 extern void utf_decodestr(const u_int8_t *utf8p, u_int16_t *ucsp,
108 u_int16_t *ucslen, u_int32_t bufsize, int byte_order );
109
110 /* load.c */
111 extern char gHaveKernelCache;
112 extern long ThinFatFile(void **binary, unsigned long *length);
113 extern long DecodeMachO(void *binary, entry_t *rentry, char **raddr, int *rsize);
114
115 /* memory.c */
116 long AllocateKernelMemory( long inSize );
117 long AllocateMemoryRange(char * rangeName, long start, long length, long type);
118
119 /* misc.c */
120 extern void enableA20(void);
121
122 /* nbp.c */
123 extern UInt32 nbpUnloadBaseCode();
124 extern BVRef nbpScanBootVolumes(int biosdev, int *count);
125
126 /* stringTable.c */
127 extern char * newStringFromList(char **list, int *size);
128 extern int stringLength(const char *table, int compress);
129 extern BOOL getValueForStringTableKey(const char *table, const char *key, const char **val, int *size);
130 extern BOOL removeKeyFromTable(const char *key, char *table);
131 extern char * newStringForStringTableKey(char *table, char *key);
132 extern char * newStringForKey(char *key);
133 extern BOOL getValueForBootKey(const char *line, const char *match, const char **matchval, int *len);
134 extern BOOL getValueForKey(const char *key, const char **val, int *size);
135 extern BOOL getBoolForKey(const char *key, BOOL *val);
136 extern BOOL getIntForKey(const char *key, int *val);
137 extern int loadConfigFile(const char *configFile);
138 extern int loadSystemConfig(const char *which, int size);
139 extern char * newString(const char *oldString);
140
141 /* sys.c */
142 extern BVRef getBootVolumeRef( const char * path, const char ** outPath );
143 extern long LoadVolumeFile(BVRef bvr, const char *fileSpec);
144 extern long LoadFile(const char *fileSpec);
145 extern long ReadFileAtOffset(const char * fileSpec, void *buffer, unsigned long offset, unsigned long length);
146 extern long LoadThinFatFile(const char *fileSpec, void **binary);
147 extern long GetDirEntry(const char *dirSpec, long *dirIndex, const char **name,
148 long *flags, long *time);
149 extern long GetFileInfo(const char *dirSpec, const char *name,
150 long *flags, long *time);
151 extern long GetFileBlock(const char *fileSpec, unsigned long long *firstBlock);
152 extern int openmem(char *buf, int len);
153 extern int open(const char *str, int how);
154 extern int close(int fdesc);
155 extern int file_size(int fdesc);
156 extern int read(int fdesc, char *buf, int count);
157 extern int b_lseek(int fdesc, int addr, int ptr);
158 extern int tell(int fdesc);
159 extern const char * usrDevices(void);
160 extern const char * systemConfigDir(void);
161 extern struct dirstuff * opendir(const char *path);
162 extern struct dirstuff * vol_opendir(BVRef bvr, const char *path);
163 extern int closedir(struct dirstuff *dirp);
164 extern int readdir(struct dirstuff *dirp, const char **name, long *flags, long *time);
165 extern int readdir_ext(struct dirstuff * dirp, const char ** name, long * flags,
166 long * time, FinderInfo *finderInfo, long *infoValid);
167 extern void flushdev(void);
168 extern int currentdev(void);
169 extern int switchdev(int dev);
170 extern BVRef scanBootVolumes(int biosdev, int *count);
171 extern BVRef selectBootVolume(BVRef chain);
172 extern void getBootVolumeDescription(BVRef bvr, char *str, long strMaxLen, BOOL verbose);
173
174 extern int gBIOSDev;
175 extern int gBootFileType;
176
177 #endif /* !__LIBSAIO_SAIO_INTERNAL_H */