summaryrefslogtreecommitdiff
path: root/src/libcgo/linux_amd64.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcgo/linux_amd64.c')
-rw-r--r--src/libcgo/linux_amd64.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libcgo/linux_amd64.c b/src/libcgo/linux_amd64.c
index 14a409f5e..fc4a239fb 100644
--- a/src/libcgo/linux_amd64.c
+++ b/src/libcgo/linux_amd64.c
@@ -44,3 +44,28 @@ threadentry(void *v)
crosscall_amd64(ts.m, ts.g, ts.fn);
return nil;
}
+
+static __thread void *libcgo_m;
+static __thread void *libcgo_g;
+
+void
+libcgo_set_scheduler(void *m, void *g)
+{
+ libcgo_m = m;
+ libcgo_g = g;
+}
+
+struct get_scheduler_args {
+ void *m;
+ void *g;
+};
+
+void libcgo_get_scheduler(struct get_scheduler_args *)
+ __attribute__ ((visibility("hidden")));
+
+void
+libcgo_get_scheduler(struct get_scheduler_args *p)
+{
+ p->m = libcgo_m;
+ p->g = libcgo_g;
+}