]> git.saurik.com Git - apple/boot.git/blame - i386/libsaio/saio_internal.h
boot-111.tar.gz
[apple/boot.git] / i386 / libsaio / saio_internal.h
CommitLineData
14c7c974
A
1/*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
f083c6c3
A
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
7 *
8 * This file contains Original Code and/or Modifications of Original Code
9 * as defined in and that are subject to the Apple Public Source License
10 * Version 2.0 (the 'License'). You may not use this file except in
11 * compliance with the License. Please obtain a copy of the License at
12 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * file.
14c7c974
A
14 *
15 * The Original Code and all software distributed under the License are
f083c6c3 16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14c7c974
A
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
f083c6c3
A
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
20 * Please see the License for the specific language governing rights and
21 * limitations under the License.
14c7c974
A
22 *
23 * @APPLE_LICENSE_HEADER_END@
24 */
25
26#ifndef __LIBSAIO_SAIO_INTERNAL_H
27#define __LIBSAIO_SAIO_INTERNAL_H
28
29#include "saio_types.h"
30
31/* asm.s */
75b89a82
A
32extern void real_to_prot(void);
33extern void prot_to_real(void);
34extern void halt(void);
f083c6c3 35extern void startprog(unsigned int address, void *arg);
75b89a82 36extern void loader(UInt32 code, UInt32 cmdptr);
14c7c974
A
37
38/* bios.s */
75b89a82 39extern void bios(biosBuf_t *bb);
14c7c974
A
40
41/* biosfn.c */
42#ifdef EISA_SUPPORT
75b89a82 43extern BOOL eisa_present(void);
14c7c974 44#endif
75b89a82
A
45extern int bgetc(void);
46extern int biosread(int dev, int cyl, int head, int sec, int num);
47extern int ebiosread(int dev, long sec, int count);
f083c6c3 48extern int get_drive_info(int drive, struct driveInfo *dp);
75b89a82
A
49extern void putc(int ch);
50extern void putca(int ch, int attr, int repeat);
51extern int getc(void);
52extern int readKeyboardStatus(void);
53extern unsigned int time18(void);
f083c6c3 54extern void delay(int ms);
75b89a82
A
55extern unsigned int get_diskinfo(int dev);
56extern int APMPresent(void);
57extern int APMConnect32(void);
58extern int memsize(int i);
59extern void video_mode(int mode);
60extern void setCursorPosition(int x, int y, int page);
61extern void setCursorType(int type);
62extern void getCursorPositionAndType(int *x, int *y, int *type);
63extern void scollPage(int x1, int y1, int x2, int y2, int attr, int rows, int dir);
64extern void clearScreenRows(int y1, int y2);
65extern void setActiveDisplayPage( int page );
f083c6c3
A
66extern unsigned long getMemoryMap(struct MemoryRange * rangeArray, unsigned long maxRangeCount,
67 unsigned long * conMemSizePtr, unsigned long * extMemSizePtr);
68extern unsigned long getExtendedMemorySize();
69extern unsigned long getConventionalMemorySize();
70extern void sleep(int n);
14c7c974
A
71
72/* bootstruct.c */
75b89a82 73extern void initKernBootStruct(int biosdev);
f083c6c3
A
74extern void reserveKernBootStruct(void);
75extern void copyKernBootStruct(void);
75b89a82
A
76
77/* cache.c */
78extern void CacheInit(CICell ih, long blockSize);
79extern long CacheRead(CICell ih, char *buffer, long long offset,
80 long length, long cache);
14c7c974
A
81
82/* console.c */
75b89a82
A
83extern BOOL gVerboseMode;
84extern BOOL gErrors;
85extern void putchar(int ch);
86extern int getchar(void);
87extern int printf(const char *format, ...);
88extern int error(const char *format, ...);
89extern int verbose(const char *format, ...);
f083c6c3 90extern void stop(const char *message);
14c7c974
A
91
92/* disk.c */
75b89a82
A
93extern BVRef diskScanBootVolumes(int biosdev, int *count);
94extern void diskSeek(BVRef bvr, long long position);
95extern int diskRead(BVRef bvr, long addr, long length);
96extern int readBootSector(int biosdev, unsigned int secno, void *buffer);
f083c6c3 97extern void turnOffFloppy(void);
14c7c974
A
98
99/* load.c */
f083c6c3
A
100extern char gHaveKernelCache;
101extern long ThinFatFile(void **binary, unsigned long *length);
102extern long DecodeMachO(void *binary, entry_t *rentry, char **raddr, int *rsize);
103
104/* memory.c */
105long AllocateKernelMemory( long inSize );
106long AllocateMemoryRange(char * rangeName, long start, long length, long type);
14c7c974
A
107
108/* misc.c */
75b89a82 109extern void enableA20(void);
75b89a82
A
110
111/* nbp.c */
112extern UInt32 nbpUnloadBaseCode();
113extern BVRef nbpScanBootVolumes(int biosdev, int *count);
14c7c974
A
114
115/* stringTable.c */
116extern char * newStringFromList(char **list, int *size);
75b89a82
A
117extern int stringLength(const char *table, int compress);
118extern BOOL getValueForStringTableKey(const char *table, const char *key, const char **val, int *size);
14c7c974
A
119extern BOOL removeKeyFromTable(const char *key, char *table);
120extern char * newStringForStringTableKey(char *table, char *key);
121extern char * newStringForKey(char *key);
75b89a82
A
122extern BOOL getValueForBootKey(const char *line, const char *match, const char **matchval, int *len);
123extern BOOL getValueForKey(const char *key, const char **val, int *size);
124extern BOOL getBoolForKey(const char *key);
125extern BOOL getIntForKey(const char *key, int *val);
75b89a82
A
126extern int loadConfigFile(const char *configFile, const char **table, BOOL allocTable);
127extern int loadConfigDir(const char *bundleName, BOOL useDefault, const char **table,
14c7c974 128 BOOL allocTable);
75b89a82
A
129extern int loadSystemConfig(const char *which, int size);
130extern void addConfig(const char *config);
f083c6c3 131extern char * newString(const char *oldString);
14c7c974
A
132
133/* sys.c */
75b89a82
A
134extern long LoadFile(const char *fileSpec);
135extern long GetDirEntry(const char *dirSpec, long *dirIndex, const char **name,
136 long *flags, long *time);
137extern long GetFileInfo(const char *dirSpec, const char *name,
138 long *flags, long *time);
139extern int openmem(char *buf, int len);
140extern int open(const char *str, int how);
141extern int close(int fdesc);
142extern int file_size(int fdesc);
143extern int read(int fdesc, char *buf, int count);
144extern int b_lseek(int fdesc, int addr, int ptr);
145extern int tell(int fdesc);
146extern const char * usrDevices(void);
f083c6c3 147extern const char * systemConfigDir(void);
75b89a82
A
148extern struct dirstuff * opendir(const char *path);
149extern int closedir(struct dirstuff *dirp);
150extern int readdir(struct dirstuff *dirp, const char **name, long *flags, long *time);
151extern void flushdev(void);
152extern int currentdev(void);
153extern int switchdev(int dev);
154extern BVRef scanBootVolumes(int biosdev, int *count);
155extern BVRef selectBootVolume(BVRef chain);
156extern void getBootVolumeDescription(BVRef bvr, char *str, long strMaxLen);
14c7c974 157
f083c6c3
A
158extern int gBIOSDev;
159extern int gBootFileType;
160
14c7c974 161#endif /* !__LIBSAIO_SAIO_INTERNAL_H */