summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/env_posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/env_posix.c')
-rw-r--r--src/pkg/runtime/env_posix.c73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/pkg/runtime/env_posix.c b/src/pkg/runtime/env_posix.c
deleted file mode 100644
index 4c8288f6b..000000000
--- a/src/pkg/runtime/env_posix.c
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2012 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.
-
-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows
-
-#include "runtime.h"
-#include "arch_GOARCH.h"
-#include "malloc.h"
-
-Slice syscall·envs;
-
-byte*
-runtime·getenv(int8 *s)
-{
- int32 i, j;
- intgo len;
- byte *v, *bs;
- String* envv;
- int32 envc;
-
- bs = (byte*)s;
- len = runtime·findnull(bs);
- envv = (String*)syscall·envs.array;
- envc = syscall·envs.len;
- for(i=0; i<envc; i++){
- if(envv[i].len <= len)
- continue;
- v = envv[i].str;
- for(j=0; j<len; j++)
- if(bs[j] != v[j])
- goto nomatch;
- if(v[len] != '=')
- goto nomatch;
- return v+len+1;
- nomatch:;
- }
- return nil;
-}
-
-void (*_cgo_setenv)(byte**);
-
-// Update the C environment if cgo is loaded.
-// Called from syscall.Setenv.
-void
-syscall·setenv_c(String k, String v)
-{
- byte *arg[2];
- uintptr len;
-
- if(_cgo_setenv == nil)
- return;
-
- // Objects that are explicitly freed must be at least 16 bytes in size,
- // so that they are not allocated using tiny alloc.
- len = k.len + 1;
- if(len < TinySize)
- len = TinySize;
- arg[0] = runtime·malloc(len);
- runtime·memmove(arg[0], k.str, k.len);
- arg[0][k.len] = 0;
-
- len = v.len + 1;
- if(len < TinySize)
- len = TinySize;
- arg[1] = runtime·malloc(len);
- runtime·memmove(arg[1], v.str, v.len);
- arg[1][v.len] = 0;
-
- runtime·asmcgocall((void*)_cgo_setenv, arg);
- runtime·free(arg[0]);
- runtime·free(arg[1]);
-}