diff options
Diffstat (limited to 'libgo/go/runtime/chan_defs.go')
-rw-r--r-- | libgo/go/runtime/chan_defs.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libgo/go/runtime/chan_defs.go b/libgo/go/runtime/chan_defs.go new file mode 100644 index 000000000..5cfea6e15 --- /dev/null +++ b/libgo/go/runtime/chan_defs.go @@ -0,0 +1,56 @@ +// 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. + +// Go definitions of internal structures. Master is chan.c + +package runtime + +type sudoG struct { + g *g_ + selgen uint32 + offset int16 + isfree int8 + link *sudoG + elem [8]byte +} + +type waitQ struct { + first *sudoG + last *sudoG +} + +type hChan struct { + qcount uint32 + dataqsiz uint32 + elemsize uint16 + closed uint16 + elemalign uint8 + elemalg *alg + senddataq *link + recvdataq *link + recvq waitQ + sendq waitQ + free sudoG + lock +} + +type link struct { + link *link + elem [8]byte +} + +type scase struct { + chan_ *hChan + pc *byte + send uint16 + so uint16 + elemp *byte // union elem [8]byte +} + +type select_ struct { + tcase uint16 + ncase uint16 + link *select_ + scase [1]*scase +} |