📄 syscalls.c
字号:
/* pseudo system calls for M68HC11 & M68HC12. * Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice is included verbatim in any distributions. No written agreement, * license, or royalty fee is required for any of the authorized uses. * Modifications to this software may be copyrighted by their authors * and need not follow the licensing terms described here, provided that * the new terms are clearly indicated on the first page of each file where * they apply. */#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>extern void outbyte(char c);extern char inbyte(void);intread(int file, void *p, size_t nbytes){ int i = 0; char* buf = (char*) p; for (i = 0; i < nbytes; i++) { *(buf + i) = inbyte(); if ((*(buf + i) == '\n') || (*(buf + i) == '\r')) { i++; break; } } return (i);}intwrite(int file, const void *p, size_t len){ const char *ptr = (const char*) p; int todo; for (todo = len; todo; --todo) { outbyte (*ptr++); } return(len);}void *sbrk(ptrdiff_t incr){ extern char _end; /* Defined by the linker */ static char *heap_end; char *prev_heap_end; register char *stack_ptr asm ("sp"); if (heap_end == 0) { heap_end = &_end; } prev_heap_end = heap_end; if (heap_end + incr > stack_ptr) { write (1, "Heap and stack collision\n", 25); abort (); } heap_end += incr; return ((void*) prev_heap_end);}/* end of syscalls.c */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -