gc: implement nil chan support
The spec has defined nil chans this way for months.
I'm behind.
R=ken2
CC=golang-dev
https://golang.org/cl/4897050
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h
index 9719c30..526a320 100644
--- a/src/pkg/runtime/runtime.h
+++ b/src/pkg/runtime/runtime.h
@@ -62,6 +62,7 @@
typedef struct Itab Itab;
typedef struct Eface Eface;
typedef struct Type Type;
+typedef struct ChanType ChanType;
typedef struct MapType MapType;
typedef struct Defer Defer;
typedef struct Panic Panic;
@@ -624,9 +625,9 @@
void runtime·mapiterkeyvalue(struct hash_iter*, void*, void*);
Hmap* runtime·makemap_c(MapType*, int64);
-Hchan* runtime·makechan_c(Type*, int64);
-void runtime·chansend(Hchan*, void*, bool*);
-void runtime·chanrecv(Hchan*, void*, bool*, bool*);
+Hchan* runtime·makechan_c(ChanType*, int64);
+void runtime·chansend(ChanType*, Hchan*, void*, bool*);
+void runtime·chanrecv(ChanType*, Hchan*, void*, bool*, bool*);
int32 runtime·chanlen(Hchan*);
int32 runtime·chancap(Hchan*);