summaryrefslogtreecommitdiffstats
path: root/src/roms/SLOF/clients/net-snk/libc
diff options
context:
space:
mode:
Diffstat (limited to 'src/roms/SLOF/clients/net-snk/libc')
-rw-r--r--src/roms/SLOF/clients/net-snk/libc/Makefile45
-rw-r--r--src/roms/SLOF/clients/net-snk/libc/sbrk.c39
-rw-r--r--src/roms/SLOF/clients/net-snk/libc/time/Makefile34
-rw-r--r--src/roms/SLOF/clients/net-snk/libc/time/ftime.c38
-rw-r--r--src/roms/SLOF/clients/net-snk/libc/time/timer.c36
5 files changed, 192 insertions, 0 deletions
diff --git a/src/roms/SLOF/clients/net-snk/libc/Makefile b/src/roms/SLOF/clients/net-snk/libc/Makefile
new file mode 100644
index 0000000..073f039
--- /dev/null
+++ b/src/roms/SLOF/clients/net-snk/libc/Makefile
@@ -0,0 +1,45 @@
+# *****************************************************************************
+# * Copyright (c) 2004, 2011 IBM Corporation
+# * All rights reserved.
+# * This program and the accompanying materials
+# * are made available under the terms of the BSD License
+# * which accompanies this distribution, and is available at
+# * http://www.opensource.org/licenses/bsd-license.php
+# *
+# * Contributors:
+# * IBM Corporation - initial implementation
+# ****************************************************************************/
+
+
+ifndef TOP
+ TOP = $(shell while ! test -e make.rules; do cd .. ; done; pwd)
+ export TOP
+endif
+include $(TOP)/make.rules
+
+
+OBJS = sbrk.o
+OBJDIRS = time/time.o
+SUBDIRS = $(filter-out ./,$(dir $(OBJDIRS)))
+
+
+all: subdirs
+ $(MAKE) libc-glue.o
+
+libc-glue.o: $(OBJS) $(OBJDIRS)
+ $(LD) $(LDFLAGS) $(OBJS) $(OBJDIRS) -o $@ -r
+
+
+subdirs :
+ for dir in $(SUBDIRS); do \
+ $(MAKE) -C $$dir DIRECTORY=$(DIRECTORY)$$dir || exit 1; \
+ done
+
+clean:
+ $(RM) -f *.a *.o
+ @for dir in $(SUBDIRS); do \
+ $(CLEAN) ; \
+ $(MAKE) -C $$dir DIRECTORY=$(DIRECTORY)$$dir clean; \
+ done
+
+include $(TOP)/make.depend
diff --git a/src/roms/SLOF/clients/net-snk/libc/sbrk.c b/src/roms/SLOF/clients/net-snk/libc/sbrk.c
new file mode 100644
index 0000000..2ec1b5f
--- /dev/null
+++ b/src/roms/SLOF/clients/net-snk/libc/sbrk.c
@@ -0,0 +1,39 @@
+/******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation
+ * All rights reserved.
+ * This program and the accompanying materials
+ * are made available under the terms of the BSD License
+ * which accompanies this distribution, and is available at
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * Contributors:
+ * IBM Corporation - initial implementation
+ *****************************************************************************/
+
+#include <unistd.h>
+
+#define HEAP_SIZE 0x200000
+
+
+static char heap[HEAP_SIZE];
+static char *actptr;
+
+void *sbrk(int increment)
+{
+ char *oldptr;
+
+ /* Called for the first time? Then init the actual pointer */
+ if (!actptr) {
+ actptr = heap;
+ }
+
+ if (actptr + increment > heap + HEAP_SIZE) {
+ /* Out of memory */
+ return (void *)-1;
+ }
+
+ oldptr = actptr;
+ actptr += increment;
+
+ return oldptr;
+}
diff --git a/src/roms/SLOF/clients/net-snk/libc/time/Makefile b/src/roms/SLOF/clients/net-snk/libc/time/Makefile
new file mode 100644
index 0000000..5db7794
--- /dev/null
+++ b/src/roms/SLOF/clients/net-snk/libc/time/Makefile
@@ -0,0 +1,34 @@
+# *****************************************************************************
+# * Copyright (c) 2004, 2011 IBM Corporation
+# * All rights reserved.
+# * This program and the accompanying materials
+# * are made available under the terms of the BSD License
+# * which accompanies this distribution, and is available at
+# * http://www.opensource.org/licenses/bsd-license.php
+# *
+# * Contributors:
+# * IBM Corporation - initial implementation
+# ****************************************************************************/
+
+ifndef TOP
+ TOP = $(shell while ! test -e make.rules; do cd .. ; done; pwd)
+ export TOP
+
+endif
+include $(TOP)/make.rules
+
+
+OBJS = timer.o ftime.o
+
+
+all: time.o
+
+time.o: $(OBJS)
+ $(LD) $(LDFLAGS) -r $< -o $@
+
+clean:
+ $(RM) -f *.o *.i *.s
+
+distclean mrproper: clean
+
+include $(TOP)/make.depend
diff --git a/src/roms/SLOF/clients/net-snk/libc/time/ftime.c b/src/roms/SLOF/clients/net-snk/libc/time/ftime.c
new file mode 100644
index 0000000..e092ba5
--- /dev/null
+++ b/src/roms/SLOF/clients/net-snk/libc/time/ftime.c
@@ -0,0 +1,38 @@
+/******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation
+ * All rights reserved.
+ * This program and the accompanying materials
+ * are made available under the terms of the BSD License
+ * which accompanies this distribution, and is available at
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * Contributors:
+ * IBM Corporation - initial implementation
+ *****************************************************************************/
+
+
+#include <time.h>
+#include <rtas.h>
+#include <stdio.h>
+
+time_t
+time(time_t *tod)
+{
+ dtime ts;
+
+ rtas_get_time_of_day(&ts);
+ printf("debug!!\n");
+
+ printf("year : %d\n", ts.year);
+ printf("month : %d\n", ts.month);
+ printf("day : %d\n", ts.day);
+ printf("hour : %d\n", ts.hour);
+ printf("minute: %d\n", ts.minute);
+ printf("second: %d\n", ts.second);
+ printf("nano : %d\n", ts.nano);
+ printf("debug ende\n");
+
+// if(tod)
+// *tod = t;
+ return 0;
+}
diff --git a/src/roms/SLOF/clients/net-snk/libc/time/timer.c b/src/roms/SLOF/clients/net-snk/libc/time/timer.c
new file mode 100644
index 0000000..b177372
--- /dev/null
+++ b/src/roms/SLOF/clients/net-snk/libc/time/timer.c
@@ -0,0 +1,36 @@
+/******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation
+ * All rights reserved.
+ * This program and the accompanying materials
+ * are made available under the terms of the BSD License
+ * which accompanies this distribution, and is available at
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * Contributors:
+ * IBM Corporation - initial implementation
+ *****************************************************************************/
+
+#include <kernel.h>
+#include "time.h"
+
+int get_msec_ticks()
+{
+ return tb_freq/1000;
+}
+
+int get_sec_ticks()
+{
+ return tb_freq;
+}
+
+void set_timer(int val)
+{
+ asm volatile ("mtdec %0"::"r" (val));
+}
+
+int get_timer()
+{
+ int val;
+ asm volatile ("mfdec %0":"=r" (val));
+ return val;
+}
OpenPOWER on IntegriCloud