// Copyright 2013 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.

// Nothing to see here.
// This file exists so that the go command knows that parts of the
// package are implemented in C, so that it does not instruct the
// Go compiler to complain about extern declarations.
// The actual implementations are in package runtime.
