mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-23 07:54:16 +08:00
99 lines
1.7 KiB
C
99 lines
1.7 KiB
C
|
#include <sys/stat.h>
|
||
|
|
||
|
#include "hal.h"
|
||
|
|
||
|
int _fstat(int fd, struct stat *st) {
|
||
|
if (fd < 0) return -1;
|
||
|
st->st_mode = S_IFCHR;
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void *_sbrk(int incr) {
|
||
|
extern char _end;
|
||
|
static unsigned char *heap = NULL;
|
||
|
unsigned char *prev_heap;
|
||
|
unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512);
|
||
|
(void) x;
|
||
|
if (heap == NULL) heap = (unsigned char *) &_end;
|
||
|
prev_heap = heap;
|
||
|
if (heap + incr > heap_end) return (void *) -1;
|
||
|
heap += incr;
|
||
|
return prev_heap;
|
||
|
}
|
||
|
|
||
|
int _open(const char *path) {
|
||
|
(void) path;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _close(int fd) {
|
||
|
(void) fd;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _isatty(int fd) {
|
||
|
(void) fd;
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
int _lseek(int fd, int ptr, int dir) {
|
||
|
(void) fd, (void) ptr, (void) dir;
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void _exit(int status) {
|
||
|
(void) status;
|
||
|
for (;;) asm volatile("BKPT #0");
|
||
|
}
|
||
|
|
||
|
void _kill(int pid, int sig) {
|
||
|
(void) pid, (void) sig;
|
||
|
}
|
||
|
|
||
|
int _getpid(void) {
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _write(int fd, char *ptr, int len) {
|
||
|
(void) fd, (void) ptr, (void) len;
|
||
|
if (fd == 1) uart_write_buf(UART_DEBUG, ptr, (size_t) len);
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _read(int fd, char *ptr, int len) {
|
||
|
(void) fd, (void) ptr, (void) len;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _link(const char *a, const char *b) {
|
||
|
(void) a, (void) b;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _unlink(const char *a) {
|
||
|
(void) a;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int _stat(const char *path, struct stat *st) {
|
||
|
(void) path, (void) st;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
int mkdir(const char *path, mode_t mode) {
|
||
|
(void) path, (void) mode;
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
void _init(void) {}
|
||
|
|
||
|
extern uint64_t mg_now(void);
|
||
|
|
||
|
int _gettimeofday(struct timeval *tv, void *tz) {
|
||
|
uint64_t now = mg_now();
|
||
|
(void) tz;
|
||
|
tv->tv_sec = (time_t) (now / 1000);
|
||
|
tv->tv_usec = (unsigned long) ((now % 1000) * 1000);
|
||
|
return 0;
|
||
|
}
|