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 unsigned long
102adler32( unsigned char * buffer, long length );
103extern void * bsearch(register const void *key,const void *base0,size_t nmemb,register size_t size,register int (*compar)(const void *, const void *));
104/*
105 * strtol.c
106 */
107extern long strtol(const char * nptr, char ** endptr, int base);
108extern unsigned long strtoul(const char * nptr, char ** endptr, int base);
109extern unsigned long long strtouq(const char *nptr, char ** endptr, int base);
110
111/*
112 * prf.c
113 */
114//extern int prf(const char * fmt, va_list ap, void (*putfn_p)(),
115// void * putfn_arg);
116
117/*
118 * printf.c
119 */
120extern int sprintf(char *s, const char * format, ...);
121extern int snprintf(char *str, size_t size, const char *format, ...);
122extern int vsnprintf(char *str, size_t size, const char *format, va_list ap);
123extern void
124 _doprnt(
125 register const char *fmt,
126 va_list argp,
127 /* character output routine */
128 void (*putc)(char),
129 int radix); /* default radix - for '%r' */
130
131extern int
132prf(
133 const char*fmt,
134 va_listap,
135 /* character output routine */
136 void(*putc)(char));
137
138extern int
139 __doprnt(
140 const char*fmt,
141 va_listargp,
142 /* character output routine */
143 void(*putc)(int ch, void *arg),
144 void *arg,
145 intradix);
146
147/*
148 * zalloc.c
149 */
150
151extern void free(void * start);
152extern void * realloc(void * ptr, size_t size);
153
154#ifdef SAFE_MALLOC
155extern size_t zalloced_size;
156extern void malloc_init(char * start, int size, int nodes, void (*malloc_err_fn)(char *, size_t, const char *, int));
157#else
158extern void malloc_init(char * start, int size, int nodes, void (*malloc_error)(char *, size_t));
159#endif
160extern void * malloc(size_t size);
161
162#endif /* !__BOOT_LIBSA_H */
163

Archive Download this file

Revision: 2010