Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/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/* arc4random.c */
31extern void arc4_init(void);
32extern void arc4random_buf(void *_buf, size_t n);
33extern u_int32_t arc4random_uniform(u_int32_t upper_bound);
34extern u_int32_t arc4random(void);
35extern void arc4random_addrandom(u_char *dat, int datlen);
36extern void arc4random_stir(void);
37#define arc4random_unirange(lo,hi) arc4random_uniform(hi - lo + 1) + lo
38#define arc4random_range(lo,hi) (arc4random() % (hi - lo + 1)) + lo
39
40/* asm.s */
41extern void real_to_prot(void);
42extern void prot_to_real(void);
43extern void halt(void);
44extern void startprog(unsigned int address, void *arg);
45#ifdef NBP_SUPPORT
46extern void loader(UInt32 code, UInt32 cmdptr);
47#endif
48
49/* bios.s */
50extern void bios(biosBuf_t *bb);
51
52/* biosfn.c */
53#ifdef EISA_SUPPORT
54extern bool eisa_present(void);
55#endif
56extern int bgetc(void);
57extern int biosread(int dev, int cyl, int head, int sec, int num);
58extern int ebiosread(int dev, unsigned long long sec, int count);
59extern int ebioswrite(int dev, long sec, int count);
60extern int get_drive_info(int drive, struct driveInfo *dp);
61extern int ebiosEjectMedia(int biosdev);
62extern void putc(int ch);
63extern void putca(int ch, int attr, int repeat);
64extern int getc(void);
65extern int readKeyboardStatus(void);
66extern int readKeyboardShiftFlags(void);
67extern unsigned int time18(void);
68extern void delay(int ms);
69extern unsigned int get_diskinfo(int dev);
70#if APM_SUPPORT
71extern int APMPresent(void);
72extern int APMConnect32(void);
73#endif
74extern int memsize(int i);
75extern void video_mode(int mode);
76extern void setCursorPosition(int x, int y, int page);
77extern void setCursorType(int type);
78extern void getCursorPositionAndType(int *x, int *y, int *type);
79extern void scollPage(int x1, int y1, int x2, int y2, int attr, int rows, int dir);
80extern void clearScreenRows(int y1, int y2);
81extern void setActiveDisplayPage( int page );
82extern unsigned long getMemoryMap(struct MemoryRange * rangeArray, unsigned long maxRangeCount,
83 unsigned long * conMemSizePtr, unsigned long * extMemSizePtr);
84extern unsigned long getExtendedMemorySize(void);
85extern unsigned long getConventionalMemorySize(void);
86extern void sleep(int n);
87extern time_t time(time_t *t);
88extern int is_no_emulation(int drive);
89
90/* bootstruct.c */
91extern void initKernBootStruct(void);
92extern void copyKernBootStruct(void);
93extern void finalizeBootStruct(void);
94extern void reserveKernLegacyBootStruct(void);
95extern void reserveKernBootStruct(void);
96extern void setBootArgsVideoMode(int mode);
97extern void setBootArgsVideoStruct(Boot_Video*Video);
98extern uint32_t getVideoMode(void);
99extern boot_args * getBootArgs(void);
100
101
102/* cache.c */
103extern void CacheReset();
104extern void CacheInit(CICell ih, long blockSize);
105extern long CacheRead(CICell ih, char *buffer, long long offset,
106 long length, long cache);
107
108/* console.c */
109extern void initBooterLog(void);
110extern void setupBooterLog(void);
111extern void putchar(char ch);
112extern void debug_putc(char c);
113extern int getchar(void);
114extern int localVPrintf(const char *format, va_list ap, int flag);
115extern int reallyVPrint(const char *format, va_list ap, int flag);
116extern void msglog(const char * format, ...);
117extern int printf(const char *format, ...);
118extern int error(const char *format, ...);
119extern int verbose(const char *format, ...);
120extern void stop(const char *format, ...);
121extern char * newStringWithFormat(const char * fmt, ...);
122extern char *getConsoleMsg(void);
123extern char *getConsoleCursor(void);
124extern void setConsoleMsg(char *p);
125extern void setConsoleCursor(char *p);
126extern void pause(void);
127
128/* disk.c */
129extern void rescanBIOSDevice(int biosdev);
130extern struct DiskBVMap* diskResetBootVolumes(int biosdev);
131extern void diskFreeMap(struct DiskBVMap *map);
132extern int testBiosread( int biosdev, unsigned long long secno );
133extern BVRef diskScanBootVolumes(int biosdev, int *count);
134extern void diskSeek(BVRef bvr, long long position);
135extern int diskRead(BVRef bvr, long addr, long length);
136extern int diskIsCDROM(BVRef bvr);
137extern int biosDevIsCDROM(int biosdev);
138extern BVRef getBVChainForBIOSDev(int biosdev);
139extern BVRef newFilteredBVChain(int minBIOSDev, int maxBIOSDev, unsigned int allowFlags, unsigned int denyFlags, int *count);
140extern int freeFilteredBVChain(const BVRef chain);
141extern int rawDiskRead(BVRef bvr, unsigned int secno, void *buffer, unsigned int len);
142extern int rawDiskWrite(BVRef bvr, unsigned int secno, void *buffer, unsigned int len);
143extern int readBootSector(int biosdev, unsigned int secno, void *buffer);
144extern int testFAT32EFIBootSector( int biosdev, unsigned int secno, void * buffer );
145
146/* hfs_compare.c */
147extern int32_t FastUnicodeCompare(u_int16_t *uniStr1, u_int32_t len1,
148 u_int16_t *uniStr2, u_int32_t len2, int byte_order);
149extern void utf_encodestr( const u_int16_t * ucsp, int ucslen,
150 u_int8_t * utf8p, u_int32_t bufsize, int byte_order );
151extern void utf_decodestr(const u_int8_t *utf8p, u_int16_t *ucsp,
152 u_int16_t *ucslen, u_int32_t bufsize, int byte_order );
153
154/* load.c */
155extern long ThinFatFile(void **binary, unsigned long *length);
156extern long DecodeMachO(void *binary, entry_t *rentry, char **raddr, int *rsize);
157
158/*
159 * lzss.c
160 */
161extern int decompress_lzss(u_int8_t *dst, u_int8_t *src, u_int32_t srclen);
162
163/* lib.c */
164extern int bcd2dec(int b);
165extern int dec2bcd(int d);
166
167
168/* memory.c */
169extern long AllocateKernelMemory( long inSize );
170
171extern long
172AllocateMemoryRange(const char * rangeName, long start, long length);
173
174/* misc.c */
175extern void enableA20(void);
176extern void turnOffFloppy(void);
177
178extern void getPlatformName(char *nameBuf, int size);
179
180#ifdef NBP_SUPPORT
181/* nbp.c */
182extern UInt32 nbpUnloadBaseCode();
183extern BVRef nbpScanBootVolumes(int biosdev, int *count);
184#endif
185
186
187
188/* platform.c */
189extern void scan_platform(void);
190extern void SetgRootDevice(const char * str);
191extern void Setgboardproduct(const char * str);
192extern void SetgPlatformName(const char * str);
193extern char * GetgPlatformName(void);
194extern char * Getgboardproduct(void);
195extern char * GetgRootDevice(void);
196
197#ifdef rootpath
198extern void SetgRootPath(const char * str);
199extern char * GetgRootPath(void);
200#endif
201
202extern void re_set_env_copy(const char *name , void* ptr,size_t size);
203extern void set_env(const char *name, unsigned long long value );
204extern void set_env_copy(const char *name, void * ptr, size_t size );
205extern unsigned long long get_env_var(const char *name);
206extern unsigned long long get_env(const char *name);
207extern void * get_env_ptr(const char *name);
208extern void safe_set_env_copy(const char *name , void * ptr, size_t size );
209extern void safe_set_env(const char *name , unsigned long long value);
210extern void re_set_env(const char *name , unsigned long long value) ;
211extern void unset_env(const char *name);
212extern void free_platform_env(void);
213void showError(void);
214
215void debug_platform_env(void);
216
217/* stringTable.c */
218extern char * newStringFromList(char **list, int *size);
219extern int stringLength(const char *table, int compress);
220extern bool getValueForConfigTableKey(config_file_t *config, const char *key, const char **val, int *size);
221extern bool removeKeyFromTable(const char *key, char *table);
222extern char * newStringForStringTableKey(config_file_t *config, char *key);
223extern char * newStringForKey(char *key, config_file_t *configBuff);
224extern bool getValueForBootKey(const char *line, const char *match, const char **matchval, int *len);
225extern bool getValueForKey(const char *key, const char **val, int *size, config_file_t *configBuff);
226extern const char * getStringForKey(const char * key, config_file_t *config);
227extern bool getBoolForKey(const char *key, bool *val, config_file_t *configBuff);
228extern bool getIntForKey(const char *key, int *val, config_file_t *configBuff);
229extern config_file_t *resolveConfig(config_file_t *config);
230#if UNUSED
231extern bool getColorForKey(const char *key, unsigned int *val, config_file_t *configBuff);
232extern bool getDimensionForKey( const char *key, unsigned int *value, config_file_t *config, unsigned int dimension_max, unsigned int object_size );
233#endif
234extern int loadConfigFile(const char *configFile, config_file_t *configBuff);
235extern int loadBooterConfig(void);
236extern int loadSystemConfig(void);
237#ifdef BOOT_HELPER_SUPPORT
238extern int loadHelperConfig(void);
239#endif
240extern int loadOverrideConfig(void);
241extern char * newString(const char *oldString);
242extern char * newEmptyStringWithLength(int len);
243extern char * newStringWithLength(const char * oldString, int len);
244
245extern char * getNextArg(char ** ptr, char * val);
246extern int ParseXMLFile( char * buffer, TagPtr * dict );
247
248/* sys.c */
249extern BVRef getBootVolumeRef( const char * path, const char ** outPath );
250extern long LoadVolumeFile(BVRef bvr, const char *fileSpec);
251extern long LoadFile(const char *fileSpec);
252extern long ReadFileAtOffset(const char * fileSpec, void *buffer, uint64_t offset, uint64_t length);
253extern long LoadThinFatFile(const char *fileSpec, void **binary);
254extern long GetDirEntry(const char *dirSpec, long long *dirIndex, const char **name,
255 long *flags, long *time);
256extern long GetFileInfo(const char *dirSpec, const char *name,
257 long *flags, long *time);
258extern long GetFileBlock(const char *fileSpec, unsigned long long *firstBlock);
259extern long GetFSUUID(char *spec, char *uuidStr, long strMaxLen);
260extern long CreateUUIDString(uint8_t uubytes[], int nbytes, char *uuidStr, long strMaxLen);
261extern int openmem(char *buf, int len);
262
263extern int open(const char *path);
264extern int open_bvdev(const char *bvd, const char *path);
265
266extern int close(int fdesc);
267extern int file_size(int fdesc);
268extern int read(int fdesc, char *buf, int count);
269extern int write(int fdesc, const char *buf, int count);
270extern int writebyte(int fdesc, char value);
271extern int writeint(int fdesc, int value);
272extern struct iob * iob_from_fdesc(int fdesc);
273extern int b_lseek(int fdesc, int addr, int ptr);
274extern int tell(int fdesc);
275extern const char * systemConfigDir(void);
276extern struct dirstuff * opendir(const char *path);
277extern struct dirstuff * vol_opendir(BVRef bvr, const char *path);
278extern int closedir(struct dirstuff *dirp);
279extern int readdir(struct dirstuff *dirp, const char **name, long *flags, long *time);
280extern int readdir_ext(struct dirstuff * dirp, const char ** name, long * flags,
281 long * time, FinderInfo *finderInfo, long *infoValid);
282extern void flushdev(void);
283extern void scanBootVolumes(int biosdev, int *count);
284
285extern void scanDisks(void);
286
287extern BVRef selectBootVolume(BVRef chain);
288extern void getBootVolumeDescription(BVRef bvr, char *str, long strMaxLen, bool verbose);
289extern void setRootVolume(BVRef volume);
290extern void setBootGlobals(BVRef chain);
291extern int getDeviceDescription(BVRef volume, char *str, long strMaxLen);
292
293/* rtc.c */
294extern void rtc_read_clock(struct tm *time) ;
295
296/* smp.c */
297extern void * getMPSTable();
298
299/* time.c */
300extern int gettimeofday(struct timeval *tv, void *tz);
301
302/* uterror.c */
303extern jmp_buf uterror;
304extern void init_ut_fnc(void);
305
306//#define LOCALIZE
307//extern int localVPrintf(const char *format, va_list ap);
308
309#endif /* !__LIBSAIO_SAIO_INTERNAL_H */
310

Archive Download this file

Revision: 2057