diff options
Diffstat (limited to 'src/pkg/runtime/type.h')
-rw-r--r-- | src/pkg/runtime/type.h | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/pkg/runtime/type.h b/src/pkg/runtime/type.h deleted file mode 100644 index de82e886f..000000000 --- a/src/pkg/runtime/type.h +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2009 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. - -// Runtime type representation. - -typedef struct Type Type; -typedef struct UncommonType UncommonType; -typedef struct InterfaceType InterfaceType; -typedef struct Method Method; -typedef struct IMethod IMethod; -typedef struct SliceType SliceType; -typedef struct FuncType FuncType; - -// Needs to be in sync with ../../cmd/ld/decodesym.c:/^commonsize and pkg/reflect/type.go:/type. -struct Type -{ - uintptr size; - uint32 hash; - uint8 _unused; - uint8 align; - uint8 fieldAlign; - uint8 kind; - void* alg; - // gc stores type info required for garbage collector. - // If (kind&KindGCProg)==0, then gc directly contains sparse GC bitmap - // (no indirection), 4 bits per word. - // If (kind&KindGCProg)!=0, then gc[1] points to a compiler-generated - // read-only GC program; and gc[0] points to BSS space for sparse GC bitmap. - // For huge types (>MaxGCMask), runtime unrolls the program directly into - // GC bitmap and gc[0] is not used. For moderately-sized types, runtime - // unrolls the program into gc[0] space on first use. The first byte of gc[0] - // (gc[0][0]) contains 'unroll' flag saying whether the program is already - // unrolled into gc[0] or not. - uintptr gc[2]; - String *string; - UncommonType *x; - Type *ptrto; - byte *zero; // ptr to the zero value for this type -}; - -struct Method -{ - String *name; - String *pkgPath; - Type *mtyp; - Type *typ; - void (*ifn)(void); - void (*tfn)(void); -}; - -struct UncommonType -{ - String *name; - String *pkgPath; - Slice mhdr; - Method m[]; -}; - -struct IMethod -{ - String *name; - String *pkgPath; - Type *type; -}; - -struct InterfaceType -{ - Type typ; - Slice mhdr; - IMethod m[]; -}; - -struct MapType -{ - Type typ; - Type *key; - Type *elem; - Type *bucket; // internal type representing a hash bucket - Type *hmap; // internal type representing a Hmap - uint8 keysize; // size of key slot - bool indirectkey; // store ptr to key instead of key itself - uint8 valuesize; // size of value slot - bool indirectvalue; // store ptr to value instead of value itself - uint16 bucketsize; // size of bucket -}; - -struct ChanType -{ - Type typ; - Type *elem; - uintptr dir; -}; - -struct SliceType -{ - Type typ; - Type *elem; -}; - -struct FuncType -{ - Type typ; - bool dotdotdot; - Slice in; - Slice out; -}; - -struct PtrType -{ - Type typ; - Type *elem; -}; |