Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/libsa/libsa.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 __BOOT_LIBSA_H
26#define __BOOT_LIBSA_H
27
28/* Exported API for standalone library */
29
30#include <mach-o/loader.h>
31#include <stdarg.h>
32#include <stddef.h>
33#include <stdbool.h>
34#include <setjmp.h>
35
36#include "quad.h"
37/*
38 * This macro casts away the qualifier from the variable
39 *
40 * Note: use at your own risk, removing qualifiers can result in
41 * catastrophic run-time failures.
42 */
43#ifndef __CAST_AWAY_QUALIFIER
44#define __CAST_AWAY_QUALIFIER(variable, qualifier, type) (type) (long)(variable)
45#endif
46/*
47 * ctype stuff (aserebln)
48 */
49#define isupper(c) (c >= 'A' && c <= 'Z')
50#define islower(c) (c >= 'a' && c <= 'z')
51#define isalpha(c) ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))
52#define isascii(c) ((c >= 0x20) && (c < 0x7f))
53#define isspace(c) (c == ' ' || c == '\t' || c == '\n' || c == '\12')
54#define isdigit(c) (c >= '0' && c <= '9')
55#define isxdigit(c) ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'))
56#define ispunct(c) (c == '.' || c == '-') //Azi: TODO - add more ponctuation characters as needed; at least these two, i need for PartNo.
57
58/*
59 * string.c
60 */
61
62extern char * strbreak(const char *str, char **next, long *len);
63extern int ptol(const char * str);
64
65extern voidbcopy(const void *, void *, size_t);
66extern voidbzero(void *, size_t);
67
68extern void*memcpy(void *, const void *, size_t);
69extern intmemcmp(const void *, const void *, size_t);
70extern void*memmove(void *, const void *, size_t);
71extern void*memset(void *, int, size_t);
72
73extern size_tstrlen(const char *);
74extern size_tstrnlen(const char *, size_t);
75
76/* strcpy() is being deprecated. Please use strlcpy() instead. */
77extern char*strcpy(char *, const char *);
78extern char*strncpy(char *, const char *, size_t);
79
80extern size_tstrlcat(char *, const char *, size_t);
81extern size_tstrlcpy(char *, const char *, size_t);
82
83/* strcat() is being deprecated. Please use strlcat() instead. */
84extern char*strcat(char *, const char *);
85extern char * strncat(char * s1, const char * s2, size_t n);
86
87/* strcmp() is being deprecated. Please use strncmp() instead. */
88extern intstrcmp(const char *, const char *);
89extern intstrncmp(const char *,const char *, size_t);
90
91#if STRNCASECMP
92extern intstrcasecmp(const char *s1, const char *s2);
93extern intstrncasecmp(const char *s1, const char *s2, size_t n);
94#endif
95extern char*strdup(const char *);
96extern char*strchr(const char *s, int c);
97extern int atoi(const char *);
98extern char *itoa(int,char*);
99extern const char *strstr(const char *, const char *);
100
101extern uint8_t checksum8( void * start, unsigned int length );
102extern unsigned long
103adler32( unsigned char * buffer, long length );
104extern void * bsearch(register const void *key,const void *base0,size_t nmemb,register size_t size,register int (*compar)(const void *, const void *));
105/*
106 * strtol.c
107 */
108extern long strtol(const char * nptr, char ** endptr, int base);
109extern unsigned long strtoul(const char * nptr, char ** endptr, int base);
110extern unsigned long long strtouq(const char *nptr, char ** endptr, int base);
111
112/*
113 * prf.c
114 */
115//extern int prf(const char * fmt, va_list ap, void (*putfn_p)(),
116// void * putfn_arg);
117
118/*
119 * printf.c
120 */
121extern int sprintf(char *s, const char * format, ...);
122extern int snprintf(char *str, size_t size, const char *format, ...);
123extern int vsnprintf(char *str, size_t size, const char *format, va_list ap);
124extern void
125 _doprnt(
126 register const char *fmt,
127 va_list argp,
128 /* character output routine */
129 void (*putc)(char),
130 int radix); /* default radix - for '%r' */
131
132extern int
133prf(
134 const char*fmt,
135 va_listap,
136 /* character output routine */
137 void(*putc)(char));
138
139extern int
140 __doprnt(
141 const char*fmt,
142 va_listargp,
143 /* character output routine */
144 void(*putc)(int ch, void *arg),
145 void *arg,
146 intradix);
147
148/*
149 * zalloc.c
150 */
151
152extern void free(void * start);
153extern void * realloc(void * ptr, size_t size);
154
155#ifdef SAFE_MALLOC
156extern size_t zalloced_size;
157extern void malloc_init(char * start, int size, int nodes, void (*malloc_err_fn)(char *, size_t, const char *, int));
158#else
159extern void malloc_init(char * start, int size, int nodes, void (*malloc_error)(char *, size_t));
160#endif
161extern void * malloc(size_t size);
162
163#endif /* !__BOOT_LIBSA_H */
164

Archive Download this file

Revision: 1984