diff options
Diffstat (limited to 'libgo/runtime/interface.h')
-rw-r--r-- | libgo/runtime/interface.h | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/libgo/runtime/interface.h b/libgo/runtime/interface.h deleted file mode 100644 index f3068a6..0000000 --- a/libgo/runtime/interface.h +++ /dev/null @@ -1,57 +0,0 @@ -/* interface.h -- the interface type for Go. - - 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. */ - -#ifndef LIBGO_INTERFACE_H -#define LIBGO_INTERFACE_H - -struct __go_type_descriptor; - -/* A variable of interface type is an instance of this struct, if the - interface has any methods. */ - -struct __go_interface -{ - /* A pointer to the interface method table. The first pointer is - the type descriptor of the object. Subsequent pointers are - pointers to functions. This is effectively the vtable for this - interface. The function pointers are in the same order as the - list in the internal representation of the interface, which sorts - them by name. */ - const void **__methods; - - /* The object. If the object is a pointer--if the type descriptor - code is GO_PTR or GO_UNSAFE_POINTER--then this field is the value - of the object itself. Otherwise this is a pointer to memory - which holds the value. */ - void *__object; -}; - -/* A variable of an empty interface type is an instance of this - struct. */ - -struct __go_empty_interface -{ - /* The type descriptor of the object. */ - const struct __go_type_descriptor *__type_descriptor; - - /* The object. This is the same as __go_interface above. */ - void *__object; -}; - -extern void * -__go_convert_interface (const struct __go_type_descriptor *, - const struct __go_type_descriptor *); - -extern void * -__go_convert_interface_2 (const struct __go_type_descriptor *, - const struct __go_type_descriptor *, - _Bool may_fail); - -extern _Bool -__go_can_convert_to_interface(const struct __go_type_descriptor *, - const struct __go_type_descriptor *); - -#endif /* !defined(LIBGO_INTERFACE_H) */ |