blob: 5cfea6e15a8979836da4fa3b92d1c5b34507e5f6 [file] [log] [blame]
// 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
}