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

//go:build !goexperiment.staticlockranking

package runtime

const staticLockRanking = false

// // lockRankStruct is embedded in mutex, but is empty when staticklockranking is
// disabled (the default)
type lockRankStruct struct {
}

func ( *mutex,  lockRank) {
}

func ( *mutex) lockRank {
	return 0
}

func ( *mutex,  lockRank) {
	lock2()
}

// This function may be called in nosplit context and thus must be nosplit.
//
//go:nosplit
func ( lockRank) {
}

func ( *mutex) {
	unlock2()
}

// This function may be called in nosplit context and thus must be nosplit.
//
//go:nosplit
func ( lockRank) {
}

func ( *mutex,  lockRank) {
}

//go:nosplit
func ( *mutex) {
}

//go:nosplit
func ( lockRank) {
}

//go:nosplit
func () {
}

//go:nosplit
func () {
}

//go:nosplit
func () {
}

//go:nosplit
func ( *mutex) {
}