summaryrefslogtreecommitdiff
path: root/libgo/go/runtime/hashmap_defs.go
blob: 57780df879ba7b7059a4e0c60729f25a1d409384 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2010 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 definitions of internal structures. Master is hashmap.[c,h]

package runtime

type hash_hash uintptr

type hash_entry struct {
	hash hash_hash
	key  byte // dwarf.c substitutes the real type
	val  byte // for key and val
}

type hash_subtable struct {
	power       uint8
	used        uint8
	datasize    uint8
	max_probes  uint8
	limit_bytes int16
	end         *hash_entry
	entry       hash_entry // TODO: [0]hash_entry
}

type hash struct {
	count       uint32
	datasize    uint8
	max_power   uint8
	max_probes  uint8
	indirectval uint8
	changes     int32
	data_hash   func(uint32, uintptr) hash_hash
	data_eq     func(uint32, uintptr, uintptr) uint32
	data_del    func(uint32, uintptr, uintptr)
	st          *hash_subtable
	keysize     uint32
	valsize     uint32
	datavo      uint32
	ko0         uint32
	vo0         uint32
	ko1         uint32
	vo1         uint32
	po1         uint32
	ko2         uint32
	vo2         uint32
	po2         uint32
	keyalg      *alg
	valalg      *alg
}