Comments and some minor fixes.
[lwext4.git] / demos / stm32f429_disco / syscalls.c
1 /*\r
2  * Copyright (c) 2013 Grzegorz Kostka (kostka.grzegorz@gmail.com)\r
3  * All rights reserved.\r
4  *\r
5  * Redistribution and use in source and binary forms, with or without\r
6  * modification, are permitted provided that the following conditions\r
7  * are met:\r
8  *\r
9  * - Redistributions of source code must retain the above copyright\r
10  *   notice, this list of conditions and the following disclaimer.\r
11  * - Redistributions in binary form must reproduce the above copyright\r
12  *   notice, this list of conditions and the following disclaimer in the\r
13  *   documentation and/or other materials provided with the distribution.\r
14  * - The name of the author may not be used to endorse or promote products\r
15  *   derived from this software without specific prior written permission.\r
16  *\r
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
19  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
20  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
22  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
27  */\r
28 \r
29 #include <sys/stat.h>\r
30 #include <stdlib.h>\r
31 #include <errno.h>\r
32 #include <stdio.h>\r
33 #include <signal.h>\r
34 #include <time.h>\r
35 \r
36 #include <lcd_log.h>\r
37 \r
38 int _getpid(void)\r
39 {\r
40     return 1;\r
41 }\r
42 \r
43 int _kill(int pid, int sig)\r
44 {\r
45     errno = EINVAL;\r
46     return -1;\r
47 }\r
48 \r
49 void _exit (int status)\r
50 {\r
51     _kill(status, -1);\r
52     while (1) {}                /* Make sure we hang here */\r
53 }\r
54 \r
55 int _write(int file, char *ptr, int len)\r
56 {\r
57     int todo;\r
58 \r
59     for (todo = 0; todo < len; todo++)\r
60     {\r
61         __io_putchar( *ptr++ );\r
62     }\r
63 \r
64     /* Implement your write code here, this is used by puts and printf for example */\r
65     return len;\r
66 }\r
67 \r
68 caddr_t _sbrk(int incr)\r
69 {\r
70     extern char __heap_end asm("__heap_end");\r
71     static char *heap_end;\r
72     char *prev_heap_end;\r
73 \r
74     if (heap_end == 0)\r
75         heap_end = &__heap_end;\r
76 \r
77     prev_heap_end = heap_end;\r
78     if ((unsigned int)(heap_end + incr) > (0x20000000 + 0x20000))\r
79     {\r
80         abort();\r
81         errno = ENOMEM;\r
82         return (caddr_t) -1;\r
83     }\r
84 \r
85     heap_end += incr;\r
86 \r
87     return (caddr_t) prev_heap_end;\r
88 }\r
89 \r
90 int _close(int file)\r
91 {\r
92     return -1;\r
93 }\r
94 \r
95 \r
96 int _fstat(int file, struct stat *st)\r
97 {\r
98     st->st_mode = S_IFCHR;\r
99     return 0;\r
100 }\r
101 \r
102 int _isatty(int file)\r
103 {\r
104     return 1;\r
105 }\r
106 \r
107 int _lseek(int file, int ptr, int dir)\r
108 {\r
109     return 0;\r
110 }\r
111 \r
112 int _read(int file, char *ptr, int len)\r
113 {\r
114     return 0;\r
115 }\r
116 \r
117 int _open(char *path, int flags, ...)\r
118 {\r
119     /* Pretend like we always fail */\r
120     return -1;\r
121 }\r
122 \r
123 int _wait(int *status)\r
124 {\r
125     errno = ECHILD;\r
126     return -1;\r
127 }\r
128 \r
129 int _unlink(char *name)\r
130 {\r
131     errno = ENOENT;\r
132     return -1;\r
133 }\r
134 \r
135 \r
136 int _stat(char *file, struct stat *st)\r
137 {\r
138     st->st_mode = S_IFCHR;\r
139     return 0;\r
140 }\r
141 \r
142 int _link(char *old, char *new)\r
143 {\r
144     errno = EMLINK;\r
145     return -1;\r
146 }\r
147 \r
148 int _fork(void)\r
149 {\r
150     errno = EAGAIN;\r
151     return -1;\r
152 }\r
153 \r
154 int _execve(char *name, char **argv, char **env)\r
155 {\r
156     errno = ENOMEM;\r
157     return -1;\r
158 }\r