OSDN Git Service

projects clean up 1
[pinoc/pinoc.git] / pinoc_hew / pinoc_hew / sbrk.c
diff --git a/pinoc_hew/pinoc_hew/sbrk.c b/pinoc_hew/pinoc_hew/sbrk.c
new file mode 100644 (file)
index 0000000..7a4d352
--- /dev/null
@@ -0,0 +1,48 @@
+/***********************************************************************/
+/*                                                                     */
+/*  FILE        :sbrk.c                                                */
+/*  DATE        :Thu, Feb 21, 2013                                     */
+/*  DESCRIPTION :Program of sbrk                                       */
+/*  CPU TYPE    :H8/3069R                                              */
+/*                                                                     */
+/*  This file is generated by Renesas Project Generator (Ver.4.16).    */
+/*                                                                     */
+/***********************************************************************/
+                  
+
+
+#include <stdio.h>
+#include "typedefine.h"
+#include "sbrk.h"
+_SBYTE *sbrk(size_t);
+
+//const size_t _sbrk_size=              /* Specifies the minimum unit of */
+                                        /* the defined heap area         */
+
+#pragma pack 2
+static union {
+    _SWORD  dummy;                      /* 2\83o\83C\83g\8b«\8aE\82É\82·\82é\82½\82ß\82Ì\83_\83~\81[ */
+    _SBYTE  heap[HEAPSIZE];             /* sbrk\82Å\8aÇ\97\9d\82·\82é\97Ì\88æ\82Ì\90é\8c¾      */
+} heap_area;
+#pragma unpack
+
+static _SBYTE *brk=(_SBYTE *)&heap_area;  /* sbrk\82Å\8a\84\82è\95t\82¯\82½\97Ì\88æ\82Ì\8dÅ\8fI\83A\83h\83\8c\83X */
+
+/*****************************************************************************/
+/*  sbrk:\83f\81[\83^\82Ì\8f\91\82«\8fo\82µ                                                    */
+/*       \83\8a\83^\81[\83\93\92l\81F\8a\84\82è\95t\82¯\82½\97Ì\88æ\82Ì\90æ\93ª\83A\83h\83\8c\83X\81i\90¬\8c÷\81j                    */
+/*                   -1                          \81i\8e¸\94s\81j                    */
+/*****************************************************************************/
+extern _SBYTE *sbrk(size_t size)              /* \8a\84\82è\95t\82¯\82é\97Ì\88æ\82Ì\83T\83C\83Y */
+{
+    _SBYTE  *p;
+    if(brk+size > heap_area.heap+HEAPSIZE){   /* \8bó\82«\97Ì\88æ\82Ì\83`\83F\83b\83N */
+        p = (_SBYTE *)-1;
+    }
+    else {
+        p = brk;                              /* \97Ì\88æ\82Ì\8a\84\82è\95t\82¯     */
+        brk += size;                          /* \8dÅ\8fI\83A\83h\83\8c\83X\82Ì\8dX\90V */
+    }
+
+    return p;
+}