OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [software/] [include/] [libc.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/* file:          libc.c
2
 * description:   small C library prototypes
3
 * date:          09/2015
4
 * author:        Sergio Johann Filho <sergio.filho@pucrs.br>
5
 */
6
 
7
/*
8
constants, tests and transformations
9
*/
10
#define NULL                    ((void *)0)
11
#define USED                    1
12
#define TRUE                    1
13
#define FALSE                   0
14
#define isprint(c)              (' '<=(c)&&(c)<='~')
15
#define isspace(c)              ((c)==' '||(c)=='\t'||(c)=='\n'||(c)=='\r')
16
#define isdigit(c)              ('0'<=(c)&&(c)<='9')
17
#define islower(c)              ('a'<=(c)&&(c)<='z')
18
#define isupper(c)              ('A'<=(c)&&(c)<='Z')
19
#define isalpha(c)              (islower(c)||isupper(c))
20
#define isalnum(c)              (isalpha(c)||isdigit(c))
21
#define min(a,b)                ((a)<(b)?(a):(b))
22
#define ntohs(A)                (((A)>>8) | (((A)&0xff)<<8))
23
#define ntohl(A)                (((A)>>24) | (((A)&0xff0000)>>8) | (((A)&0xff00)<<8) | ((A)<<24))
24
 
25
/*
26
custom C library
27
*/
28
extern void putchar(int32_t value);
29
extern int32_t kbhit(void);
30
extern int32_t getchar(void);
31
extern int8_t *strcpy(int8_t *dst, const int8_t *src);
32
extern int8_t *strncpy(int8_t *s1, int8_t *s2, int32_t n);
33
extern int8_t *strcat(int8_t *dst, const int8_t *src);
34
extern int8_t *strncat(int8_t *s1, int8_t *s2, int32_t n);
35
extern int32_t strcmp(const int8_t *s1, const int8_t *s2);
36
extern int32_t strncmp(int8_t *s1, int8_t *s2, int32_t n);
37
extern int8_t *strstr(const int8_t *string, const int8_t *find);
38
extern int32_t strlen(const int8_t *s);
39
extern int8_t *strchr(const int8_t *s, int32_t c);
40
extern int8_t *strpbrk(int8_t *str, int8_t *set);
41
extern int8_t *strsep(int8_t **pp, int8_t *delim);
42
extern int8_t *strtok(int8_t *s, const int8_t *delim);
43
extern void *memcpy(void *dst, const void *src, uint32_t n);
44
extern void *memmove(void *dst, const void *src, uint32_t n);
45
extern int32_t memcmp(const void *cs, const void *ct, uint32_t n);
46
extern void *memset(void *s, int32_t c, uint32_t n);
47
extern int32_t strtol(const int8_t *s, int8_t **end, int32_t base);
48
extern int32_t atoi(const int8_t *s);
49
extern float atof(const int8_t *p);
50
extern int8_t *itoa(int32_t i, int8_t *s, int32_t base);
51
extern int32_t puts(const int8_t *str);
52
extern int8_t *gets(int8_t *s);
53
extern int32_t abs(int32_t n);
54
extern int32_t random(void);
55
extern void srand(uint32_t seed);
56
extern int32_t printf(const int8_t *fmt, ...);
57
extern int32_t sprintf(int8_t *out, const int8_t *fmt, ...);
58
 
59
/*
60
auxiliary routines / interrupt management
61
*/
62
extern void uart_init(uint32_t baud);
63
extern void delay_ms(uint32_t msec);
64
extern void delay_us(uint32_t usec);
65
void interrupt_handler(uint32_t cause, uint32_t *stack);
66
void interrupt_register(uint32_t mask, funcptr ptr);
67
 
68
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.