diff options
author | Ondřej Surý <ondrej@sury.org> | 2012-04-06 15:14:11 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2012-04-06 15:14:11 +0200 |
commit | 505c19580e0f43fe5224431459cacb7c21edd93d (patch) | |
tree | 79e2634c253d60afc0cc0b2f510dc7dcbb48497b /src/cmd/dist/a.h | |
parent | 1336a7c91e596c423a49d1194ea42d98bca0d958 (diff) | |
download | golang-505c19580e0f43fe5224431459cacb7c21edd93d.tar.gz |
Imported Upstream version 1upstream/1
Diffstat (limited to 'src/cmd/dist/a.h')
-rw-r--r-- | src/cmd/dist/a.h | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/src/cmd/dist/a.h b/src/cmd/dist/a.h new file mode 100644 index 000000000..c19b1f468 --- /dev/null +++ b/src/cmd/dist/a.h @@ -0,0 +1,149 @@ +// 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. + +typedef int bool; + +// The Time unit is unspecified; we just need to +// be able to compare whether t1 is older than t2 with t1 < t2. +typedef long long Time; + +#define nil ((void*)0) +#define nelem(x) (sizeof(x)/sizeof((x)[0])) +#define USED(x) ((void)(x)) + +// A Buf is a byte buffer, like Go's []byte. +typedef struct Buf Buf; +struct Buf +{ + char *p; + int len; + int cap; +}; + +// A Vec is a string vector, like Go's []string. +typedef struct Vec Vec; +struct Vec +{ + char **p; + int len; + int cap; +}; + +// Modes for run. +enum { + CheckExit = 1, +}; + +// buf.c +bool bequal(Buf *s, Buf *t); +void bsubst(Buf *b, char *x, char *y); +void bfree(Buf *b); +void bgrow(Buf *b, int n); +void binit(Buf *b); +char* bpathf(Buf *b, char *fmt, ...); +char* bprintf(Buf *b, char *fmt, ...); +void bwritef(Buf *b, char *fmt, ...); +void breset(Buf *b); +char* bstr(Buf *b); +char* btake(Buf *b); +void bwrite(Buf *b, void *v, int n); +void bwriteb(Buf *dst, Buf *src); +void bwritestr(Buf *b, char *p); +void bswap(Buf *b, Buf *b1); +void vadd(Vec *v, char *p); +void vcopy(Vec *dst, char **src, int n); +void vfree(Vec *v); +void vgrow(Vec *v, int n); +void vinit(Vec *v); +void vreset(Vec *v); +void vuniq(Vec *v); +void splitlines(Vec*, char*); +void splitfields(Vec*, char*); + +// build.c +extern char *goarch; +extern char *gobin; +extern char *gochar; +extern char *gohostarch; +extern char *gohostos; +extern char *goos; +extern char *goroot; +extern char *goroot_final; +extern char *goversion; +extern char *workdir; +extern char *tooldir; +extern char *slash; +extern bool rebuildall; + +int find(char*, char**, int); +void init(void); +void cmdbanner(int, char**); +void cmdbootstrap(int, char**); +void cmdclean(int, char**); +void cmdenv(int, char**); +void cmdinstall(int, char**); +void cmdversion(int, char**); + +// buildgc.c +void gcopnames(char*, char*); +void mkenam(char*, char*); + +// buildruntime.c +void mkzasm(char*, char*); +void mkzgoarch(char*, char*); +void mkzgoos(char*, char*); +void mkzruntimedefs(char*, char*); +void mkzversion(char*, char*); + +// goc2c.c +void goc2c(char*, char*); + +// main.c +extern int vflag; +void usage(void); +void xmain(int argc, char **argv); + +// portability layer (plan9.c, unix.c, windows.c) +bool contains(char *p, char *sep); +void fatal(char *msg, ...); +bool hasprefix(char *p, char *prefix); +bool hassuffix(char *p, char *suffix); +bool isabs(char*); +bool isdir(char *p); +bool isfile(char *p); +char* lastelem(char*); +Time mtime(char*); +void readfile(Buf*, char*); +void run(Buf *b, char *dir, int mode, char *cmd, ...); +void runv(Buf *b, char *dir, int mode, Vec *argv); +void bgrunv(char *dir, int mode, Vec *argv); +void bgwait(void); +bool streq(char*, char*); +void writefile(Buf*, char*, int); +void xatexit(void (*f)(void)); +void xexit(int); +void xfree(void*); +void xgetenv(Buf *b, char *name); +void xgetwd(Buf *b); +void* xmalloc(int n); +void* xmalloc(int); +int xmemcmp(void*, void*, int); +void xmemmove(void*, void*, int); +void xmkdir(char *p); +void xmkdirall(char*); +Time xmtime(char *p); +void xprintf(char*, ...); +void xqsort(void*, int, int, int(*)(const void*, const void*)); +void xreaddir(Vec *dst, char *dir); +void* xrealloc(void*, int); +void xrealwd(Buf *b, char *path); +void xremove(char *p); +void xremoveall(char *p); +void xsetenv(char*, char*); +int xstrcmp(char*, char*); +char* xstrdup(char *p); +int xstrlen(char*); +char* xstrrchr(char*, int); +char* xstrstr(char*, char*); +char* xworkdir(void); |