// Rowley C Compiler, runtime support.
//
// Copyright (c) 2001, 2002 Rowley Associates Limited.
//
// This file may be distributed under the terms of the License Agreement
// provided with this software.
//
// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

#ifndef __libc_H
#define __libc_H

#include "__crossworks.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct __printf_tag *__printf_tag_ptr;

int __getchar(void);
int __putchar(int, __printf_tag_ptr ctx);
int __stdin_ungetc(int);

char *__xtoa(unsigned val, char *buf, unsigned radix, int neg);
char *__xltoa(unsigned long val, char *buf, unsigned radix, int neg);
char *__xlltoa(unsigned long long val, char *buf, unsigned radix, int neg);
int __digit(int ch, int radix);
unsigned long __strtoul(const char *nsptr, char **endptr, int base);
unsigned long long __strtoull(const char *nsptr, char **endptr, int base);
double __RAL_pow10(int e);

int *__errno(void);
void __heap_lock(void);
void __heap_unlock(void);
void __printf_lock(void);
void __printf_unlock(void);
void __scanf_lock(void);
void __scanf_unlock(void);
void __debug_io_lock(void);
void __debug_io_unlock(void);

#ifdef __cplusplus
}
#endif

#endif