~james-page/ubuntu/trusty/gccgo-go/trunk

« back to all changes in this revision

Viewing changes to src/cmd/dist/a.h

  • Committer: James Page
  • Date: 2014-01-22 11:10:56 UTC
  • Revision ID: james.page@canonical.com-20140122111056-hfyxm1ozm7if9t3f
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2012 The Go Authors.  All rights reserved.
 
2
// Use of this source code is governed by a BSD-style
 
3
// license that can be found in the LICENSE file.
 
4
 
 
5
typedef int bool;
 
6
 
 
7
// The Time unit is unspecified; we just need to
 
8
// be able to compare whether t1 is older than t2 with t1 < t2.
 
9
typedef long long Time;
 
10
 
 
11
#define nil ((void*)0)
 
12
#define nelem(x) (sizeof(x)/sizeof((x)[0]))
 
13
#ifndef PLAN9
 
14
#define USED(x) ((void)(x))
 
15
#endif
 
16
 
 
17
// A Buf is a byte buffer, like Go's []byte.
 
18
typedef struct Buf Buf;
 
19
struct Buf
 
20
{
 
21
        char *p;
 
22
        int len;
 
23
        int cap;
 
24
};
 
25
 
 
26
// A Vec is a string vector, like Go's []string.
 
27
typedef struct Vec Vec;
 
28
struct Vec
 
29
{
 
30
        char **p;
 
31
        int len;
 
32
        int cap;
 
33
};
 
34
 
 
35
// Modes for run.
 
36
enum {
 
37
        CheckExit = 1,
 
38
};
 
39
 
 
40
// buf.c
 
41
bool    bequal(Buf *s, Buf *t);
 
42
void    bsubst(Buf *b, char *x, char *y);
 
43
void    bfree(Buf *b);
 
44
void    bgrow(Buf *b, int n);
 
45
void    binit(Buf *b);
 
46
char*   bpathf(Buf *b, char *fmt, ...);
 
47
char*   bprintf(Buf *b, char *fmt, ...);
 
48
void    bwritef(Buf *b, char *fmt, ...);
 
49
void    breset(Buf *b);
 
50
char*   bstr(Buf *b);
 
51
char*   btake(Buf *b);
 
52
void    bwrite(Buf *b, void *v, int n);
 
53
void    bwriteb(Buf *dst, Buf *src);
 
54
void    bwritestr(Buf *b, char *p);
 
55
void    bswap(Buf *b, Buf *b1);
 
56
void    vadd(Vec *v, char *p);
 
57
void    vcopy(Vec *dst, char **src, int n);
 
58
void    vfree(Vec *v);
 
59
void    vgrow(Vec *v, int n);
 
60
void    vinit(Vec *v);
 
61
void    vreset(Vec *v);
 
62
void    vuniq(Vec *v);
 
63
void    splitlines(Vec*, char*);
 
64
void    splitfields(Vec*, char*);
 
65
 
 
66
// build.c
 
67
extern char *goarch;
 
68
extern char *gobin;
 
69
extern char *gochar;
 
70
extern char *gohostarch;
 
71
extern char *gohostos;
 
72
extern char *goos;
 
73
extern char *goroot;
 
74
extern char *goroot_final;
 
75
extern char *goextlinkenabled;
 
76
extern char *goversion;
 
77
extern char *defaultcc;
 
78
extern char *defaultcxx;
 
79
extern char *workdir;
 
80
extern char *tooldir;
 
81
extern char *slash;
 
82
extern bool rebuildall;
 
83
extern bool defaultclang;
 
84
 
 
85
int     find(char*, char**, int);
 
86
void    init(void);
 
87
void    cmdbanner(int, char**);
 
88
void    cmdbootstrap(int, char**);
 
89
void    cmdclean(int, char**);
 
90
void    cmdenv(int, char**);
 
91
void    cmdinstall(int, char**);
 
92
void    cmdversion(int, char**);
 
93
 
 
94
// buildgc.c
 
95
void    gcopnames(char*, char*);
 
96
void    mkenam(char*, char*);
 
97
 
 
98
// buildruntime.c
 
99
void    mkzasm(char*, char*);
 
100
void    mkzsys(char*, char*);
 
101
void    mkzgoarch(char*, char*);
 
102
void    mkzgoos(char*, char*);
 
103
void    mkzruntimedefs(char*, char*);
 
104
void    mkzversion(char*, char*);
 
105
void    mkzexperiment(char*, char*);
 
106
 
 
107
// buildgo.c
 
108
void    mkzdefaultcc(char*, char*);
 
109
 
 
110
// goc2c.c
 
111
void    goc2c(char*, char*);
 
112
 
 
113
// main.c
 
114
extern int vflag;
 
115
extern int sflag;
 
116
void    usage(void);
 
117
void    xmain(int argc, char **argv);
 
118
 
 
119
// portability layer (plan9.c, unix.c, windows.c)
 
120
bool    contains(char *p, char *sep);
 
121
void    errprintf(char*, ...);
 
122
void    fatal(char *msg, ...);
 
123
bool    hasprefix(char *p, char *prefix);
 
124
bool    hassuffix(char *p, char *suffix);
 
125
bool    isabs(char*);
 
126
bool    isdir(char *p);
 
127
bool    isfile(char *p);
 
128
char*   lastelem(char*);
 
129
Time    mtime(char*);
 
130
void    readfile(Buf*, char*);
 
131
void    run(Buf *b, char *dir, int mode, char *cmd, ...);
 
132
void    runv(Buf *b, char *dir, int mode, Vec *argv);
 
133
void    bgrunv(char *dir, int mode, Vec *argv);
 
134
void    bgwait(void);
 
135
bool    streq(char*, char*);
 
136
bool    cansse2(void);
 
137
void    writefile(Buf*, char*, int);
 
138
void    xatexit(void (*f)(void));
 
139
void    xexit(int);
 
140
void    xfree(void*);
 
141
void    xgetenv(Buf *b, char *name);
 
142
void    xgetwd(Buf *b);
 
143
void*   xmalloc(int n);
 
144
void*   xmalloc(int);
 
145
int     xmemcmp(void*, void*, int);
 
146
void    xmemmove(void*, void*, int);
 
147
void    xmkdir(char *p);
 
148
void    xmkdirall(char*);
 
149
Time    xmtime(char *p);
 
150
void    xprintf(char*, ...);
 
151
void    xqsort(void*, int, int, int(*)(const void*, const void*));
 
152
void    xreaddir(Vec *dst, char *dir);
 
153
void*   xrealloc(void*, int);
 
154
void    xrealwd(Buf *b, char *path);
 
155
void    xremove(char *p);
 
156
void    xremoveall(char *p);
 
157
void    xsetenv(char*, char*);
 
158
int     xstrcmp(char*, char*);
 
159
char*   xstrdup(char *p);
 
160
int     xstrlen(char*);
 
161
char*   xstrrchr(char*, int);
 
162
char*   xstrstr(char*, char*);
 
163
char*   xworkdir(void);
 
164
int     xsamefile(char*, char*);
 
165
char*   xgetgoarm(void);
 
166
int     xtryexecfunc(void (*)(void));