You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
2.5 KiB
155 lines
2.5 KiB
/** |
|
****************************************************************************** |
|
* @file syscalls.c |
|
* @author Auto-generated by STM32CubeIDE |
|
* @brief STM32CubeIDE Minimal System calls file |
|
* |
|
* For more information about which c-functions |
|
* need which of these lowlevel functions |
|
* please consult the Newlib libc-manual |
|
****************************************************************************** |
|
* @attention |
|
* |
|
* Copyright (c) 2022 STMicroelectronics. |
|
* All rights reserved. |
|
* |
|
* This software is licensed under terms that can be found in the LICENSE file |
|
* in the root directory of this software component. |
|
* If no LICENSE file comes with this software, it is provided AS-IS. |
|
* |
|
****************************************************************************** |
|
*/ |
|
|
|
/* Includes */ |
|
#include <sys/stat.h> |
|
#include <stdlib.h> |
|
#include <errno.h> |
|
#include <stdio.h> |
|
#include <signal.h> |
|
#include <time.h> |
|
#include <sys/time.h> |
|
#include <sys/times.h> |
|
|
|
|
|
/* Variables */ |
|
extern int __io_putchar(int ch) __attribute__((weak)); |
|
extern int __io_getchar(void) __attribute__((weak)); |
|
|
|
|
|
char *__env[1] = { 0 }; |
|
char **environ = __env; |
|
|
|
|
|
/* Functions */ |
|
void initialise_monitor_handles() |
|
{ |
|
} |
|
|
|
int _getpid(void) |
|
{ |
|
return 1; |
|
} |
|
|
|
int _kill(int pid, int sig) |
|
{ |
|
errno = EINVAL; |
|
return -1; |
|
} |
|
|
|
void _exit (int status) |
|
{ |
|
_kill(status, -1); |
|
while (1) {} /* Make sure we hang here */ |
|
} |
|
|
|
__attribute__((weak)) int _read(int file, char *ptr, int len) |
|
{ |
|
int DataIdx; |
|
|
|
for (DataIdx = 0; DataIdx < len; DataIdx++) |
|
{ |
|
*ptr++ = __io_getchar(); |
|
} |
|
|
|
return len; |
|
} |
|
|
|
__attribute__((weak)) int _write(int file, char *ptr, int len) |
|
{ |
|
int DataIdx; |
|
|
|
for (DataIdx = 0; DataIdx < len; DataIdx++) |
|
{ |
|
__io_putchar(*ptr++); |
|
} |
|
return len; |
|
} |
|
|
|
int _close(int file) |
|
{ |
|
return -1; |
|
} |
|
|
|
|
|
int _fstat(int file, struct stat *st) |
|
{ |
|
st->st_mode = S_IFCHR; |
|
return 0; |
|
} |
|
|
|
int _isatty(int file) |
|
{ |
|
return 1; |
|
} |
|
|
|
int _lseek(int file, int ptr, int dir) |
|
{ |
|
return 0; |
|
} |
|
|
|
int _open(char *path, int flags, ...) |
|
{ |
|
/* Pretend like we always fail */ |
|
return -1; |
|
} |
|
|
|
int _wait(int *status) |
|
{ |
|
errno = ECHILD; |
|
return -1; |
|
} |
|
|
|
int _unlink(char *name) |
|
{ |
|
errno = ENOENT; |
|
return -1; |
|
} |
|
|
|
int _times(struct tms *buf) |
|
{ |
|
return -1; |
|
} |
|
|
|
int _stat(char *file, struct stat *st) |
|
{ |
|
st->st_mode = S_IFCHR; |
|
return 0; |
|
} |
|
|
|
int _link(char *old, char *new) |
|
{ |
|
errno = EMLINK; |
|
return -1; |
|
} |
|
|
|
int _fork(void) |
|
{ |
|
errno = EAGAIN; |
|
return -1; |
|
} |
|
|
|
int _execve(char *name, char **argv, char **env) |
|
{ |
|
errno = ENOMEM; |
|
return -1; |
|
}
|
|
|