xinyangli
8e4feb4010
NJU-ProjectN/abstract-machine 3348db971fd860be5cb28e21c18f9d0e65d0c96a Merge pull request #8 from Jasonyanyusong/master
58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
#ifndef KLIB_H__
|
|
#define KLIB_H__
|
|
|
|
#include <am.h>
|
|
#include <stddef.h>
|
|
#include <stdarg.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//#define __NATIVE_USE_KLIB__
|
|
|
|
// string.h
|
|
void *memset (void *s, int c, size_t n);
|
|
void *memcpy (void *dst, const void *src, size_t n);
|
|
void *memmove (void *dst, const void *src, size_t n);
|
|
int memcmp (const void *s1, const void *s2, size_t n);
|
|
size_t strlen (const char *s);
|
|
char *strcat (char *dst, const char *src);
|
|
char *strcpy (char *dst, const char *src);
|
|
char *strncpy (char *dst, const char *src, size_t n);
|
|
int strcmp (const char *s1, const char *s2);
|
|
int strncmp (const char *s1, const char *s2, size_t n);
|
|
|
|
// stdlib.h
|
|
void srand (unsigned int seed);
|
|
int rand (void);
|
|
void *malloc (size_t size);
|
|
void free (void *ptr);
|
|
int abs (int x);
|
|
int atoi (const char *nptr);
|
|
|
|
// stdio.h
|
|
int printf (const char *format, ...);
|
|
int sprintf (char *str, const char *format, ...);
|
|
int snprintf (char *str, size_t size, const char *format, ...);
|
|
int vsprintf (char *str, const char *format, va_list ap);
|
|
int vsnprintf (char *str, size_t size, const char *format, va_list ap);
|
|
|
|
// assert.h
|
|
#ifdef NDEBUG
|
|
#define assert(ignore) ((void)0)
|
|
#else
|
|
#define assert(cond) \
|
|
do { \
|
|
if (!(cond)) { \
|
|
printf("Assertion fail at %s:%d\n", __FILE__, __LINE__); \
|
|
halt(1); \
|
|
} \
|
|
} while (0)
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|