mirror of
https://github.com/golang/go
synced 2024-11-24 20:10:02 -07:00
small embedded target for arm.
R=rsc CC=golang-dev https://golang.org/cl/193104
This commit is contained in:
parent
cb58ed75d2
commit
9f5264f299
4
src/pkg/runtime/embedded/README
Normal file
4
src/pkg/runtime/embedded/README
Normal file
@ -0,0 +1,4 @@
|
||||
small embedded target for arm
|
||||
define the c function write to make debug output work
|
||||
|
||||
|
1
src/pkg/runtime/embedded/arm/defs.h
Normal file
1
src/pkg/runtime/embedded/arm/defs.h
Normal file
@ -0,0 +1 @@
|
||||
// nothing to see here
|
1
src/pkg/runtime/embedded/arm/rt0.s
Normal file
1
src/pkg/runtime/embedded/arm/rt0.s
Normal file
@ -0,0 +1 @@
|
||||
// nothing to see here
|
1
src/pkg/runtime/embedded/arm/signal.c
Normal file
1
src/pkg/runtime/embedded/arm/signal.c
Normal file
@ -0,0 +1 @@
|
||||
// nothing to see here
|
1
src/pkg/runtime/embedded/arm/sys.s
Normal file
1
src/pkg/runtime/embedded/arm/sys.s
Normal file
@ -0,0 +1 @@
|
||||
// nothing to see here
|
40
src/pkg/runtime/embedded/mem.c
Normal file
40
src/pkg/runtime/embedded/mem.c
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright 2010 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
#include "runtime.h"
|
||||
#include "malloc.h"
|
||||
|
||||
// Assume there's an arbitrary amount of memory starting at "end".
|
||||
|
||||
void*
|
||||
SysAlloc(uintptr ask)
|
||||
{
|
||||
static byte *p;
|
||||
extern byte end[];
|
||||
byte *q;
|
||||
|
||||
if(p == nil) {
|
||||
p = end;
|
||||
p += 7 & -(uintptr)p;
|
||||
}
|
||||
ask += 7 & -ask;
|
||||
|
||||
q = p;
|
||||
p += ask;
|
||||
·memclr(q, ask);
|
||||
return q;
|
||||
}
|
||||
|
||||
void
|
||||
SysFree(void *v, uintptr n)
|
||||
{
|
||||
USED(v, n);
|
||||
}
|
||||
|
||||
void
|
||||
SysUnused(void *v, uintptr n)
|
||||
{
|
||||
USED(v, n);
|
||||
}
|
||||
|
1
src/pkg/runtime/embedded/os.h
Normal file
1
src/pkg/runtime/embedded/os.h
Normal file
@ -0,0 +1 @@
|
||||
// nothing to see here
|
80
src/pkg/runtime/embedded/thread.c
Normal file
80
src/pkg/runtime/embedded/thread.c
Normal file
@ -0,0 +1,80 @@
|
||||
// Copyright 2010 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
#include "runtime.h"
|
||||
|
||||
int8 *goos = "embedded";
|
||||
|
||||
void
|
||||
minit(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
osinit(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
initsig(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
exit(int32)
|
||||
{
|
||||
for(;;);
|
||||
}
|
||||
|
||||
// single processor, no interrupts,
|
||||
// so no need for real concurrency or atomicity
|
||||
|
||||
void
|
||||
newosproc(M *m, G *g, void *stk, void (*fn)(void))
|
||||
{
|
||||
USED(m, g, stk, fn);
|
||||
throw("newosproc");
|
||||
}
|
||||
|
||||
void
|
||||
lock(Lock *l)
|
||||
{
|
||||
if(m->locks < 0)
|
||||
throw("lock count");
|
||||
m->locks++;
|
||||
if(l->key != 0)
|
||||
throw("deadlock");
|
||||
l->key = 1;
|
||||
}
|
||||
|
||||
void
|
||||
unlock(Lock *l)
|
||||
{
|
||||
m->locks--;
|
||||
if(m->locks < 0)
|
||||
throw("lock count");
|
||||
if(l->key != 1)
|
||||
throw("unlock of unlocked lock");
|
||||
l->key = 0;
|
||||
}
|
||||
|
||||
void
|
||||
noteclear(Note *n)
|
||||
{
|
||||
n->lock.key = 0;
|
||||
}
|
||||
|
||||
void
|
||||
notewakeup(Note *n)
|
||||
{
|
||||
n->lock.key = 1;
|
||||
}
|
||||
|
||||
void
|
||||
notesleep(Note *n)
|
||||
{
|
||||
if(n->lock.key != 1)
|
||||
throw("notesleep");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user