31 #pragma GCC optimize ("O2") 46 #pragma GCC diagnostic ignored "-Wunused-variable" 78 static caddr_t heap_ptr =
NULL;
81 if (heap_ptr ==
NULL) {
82 heap_ptr = (caddr_t)&
_end;
87 if ( top - 256 > (
unsigned int)heap_ptr+nbytes
100 static caddr_t heap_ptr =
NULL;
103 if (heap_ptr ==
NULL) {
104 heap_ptr = (caddr_t)&
_eccm;
111 if ( top > (
unsigned int)heap_ptr+nbytes) {
117 return ((caddr_t)-1);
122 nbytes = (nbytes & ~3)+4;
132 int _open(
const char *path,
int flags, ...) {
141 st->st_mode = S_IFCHR;
153 int _lseek(
int fd, off_t pos,
int whence) {
163 for (i = 0; i < bufsize; i++) {
169 for (p = s; p < s + bufsize-1;) {
191 int _write(
int fd,
const char *buf,
size_t cnt) {
194 for (i = 0; i < cnt; i++)
203 int val_read(
void *dest,
volatile const void *src,
int bytes)
208 for (i = 0; i < bytes / 4; i++) {
209 *(((
volatile unsigned *)dest) + i) = *(((
volatile unsigned *)src) + i);
216 #define UDID_START 0x1FFF7A10 219 const volatile uint32_t *udid_ptr = (
const uint32_t *)
UDID_START;
222 #pragma GCC diagnostic push 223 #pragma GCC diagnostic ignored "-Wcast-align" // GCC lies in this warning - union udid already contains uint32_t 225 val_read((uint32_t *)&
id, udid_ptr,
sizeof(
id));
227 #pragma GCC diagnostic pop 231 serialid[0] =
id.data[3]; serialid[1] =
id.data[2]; serialid[2] =
id.data[1]; serialid[3] =
id.data[0];
232 serialid[4] =
id.data[7]; serialid[5] =
id.data[6]; serialid[6] =
id.data[5]; serialid[7] =
id.data[4];
233 serialid[8] =
id.data[11]; serialid[9] =
id.data[10]; serialid[10] =
id.data[9]; serialid[11] =
id.data[8];
caddr_t _sbrk(int nbytes)
void putch(unsigned char c)
void clock_gettime(uint32_t a1, void *a2)
void get_board_serial(uint8_t *serialid)
int _open(const char *path, int flags,...)
caddr_t sbrk_ccm(int nbytes)
void __error(uint32_t num, uint32_t pc, uint32_t lr, uint32_t flag)
int _write(int fd, const char *buf, size_t cnt)
void cgets(char *s, int bufsize)
int _lseek(int fd, off_t pos, int whence)
static caddr_t get_stack_top(void)
static caddr_t _sbrk_ram(int nbytes)
int _kill(int pid, int sig)
int stat(const char *name, struct stat *buf)
Display struct stat, from POSIX stat(0 or fstat(), in ASCII. NOT POSIX.
unsigned char getch(void)
int errno
Note: fdevopen assigns stdin,stdout,stderr.
int _fstat(int fd, struct stat *st)
static caddr_t _sbrk_ccm(int nbytes)
int val_read(void *dest, volatile const void *src, int bytes)
int isatty(int fd)
Test POSIX fileno if it is a Serial Console/TTY.