Lines Matching full:info
103 func vdso_init_from_sysinfo_ehdr(info *vdso_info, hdr *elfEhdr) {
104 info.valid = false
105 info.load_addr = uintptr(unsafe.Pointer(hdr))
107 pt := unsafe.Pointer(info.load_addr + uintptr(hdr.e_phoff))
119 info.load_offset = info.load_addr + uintptr(pt.p_offset-pt.p_vaddr)
123 dyn = (*[vdsoDynSize]elfDyn)(unsafe.Pointer(info.load_addr + uintptr(pt.p_offset)))
134 info.symstrings = nil
135 info.symtab = nil
136 info.versym = nil
137 info.verdef = nil
140 p := info.load_offset + uintptr(dt.d_val)
143 info.symstrings = (*[vdsoSymStringsSize]byte)(unsafe.Pointer(p))
145 info.symtab = (*[vdsoSymTabSize]elfSym)(unsafe.Pointer(p))
151 info.versym = (*[vdsoVerSymSize]uint16)(unsafe.Pointer(p))
153 info.verdef = (*elfVerdef)(unsafe.Pointer(p))
157 if info.symstrings == nil || info.symtab == nil || (hash == nil && gnuhash == nil) {
161 if info.verdef == nil {
162 info.versym = nil
168 info.symOff = gnuhash[1]
170 info.bucket = gnuhash[4+bloomSize*uint32(vdsoBloomSizeScale):][:nbucket]
171 info.chain = gnuhash[4+bloomSize*uint32(vdsoBloomSizeScale)+nbucket:]
172 info.isGNUHash = true
177 info.bucket = hash[2 : 2+nbucket]
178 info.chain = hash[2+nbucket : 2+nbucket+nchain]
182 info.valid = true
185 func vdso_find_version(info *vdso_info, ver *version_key) int32 {
186 if !info.valid {
190 def := info.verdef
194 if def.vd_hash == ver.ver_hash && ver.version == gostringnocopy(&info.symstrings[aux.vda_name]) {
208 func vdso_parse_symbols(info *vdso_info, version int32) {
209 if !info.valid {
214 sym := &info.symtab[symIndex]
220 if k.name != gostringnocopy(&info.symstrings[sym.st_name]) {
225 if info.versym != nil && version != 0 && int32(info.versym[symIndex]&0x7fff) != version {
229 *k.ptr = info.load_offset + uintptr(sym.st_value)
233 if !info.isGNUHash {
236 for chain := info.bucket[k.sym_hash%uint32(len(info.bucket))]; chain != 0; chain = info.chain[chain] {
247 symIndex := info.bucket[k.gnu_hash%uint32(len(info.bucket))]
248 if symIndex < info.symOff {
252 hash := info.chain[symIndex-info.symOff]
274 var info vdso_info
275 // TODO(rsc): I don't understand why the compiler thinks info escapes
277 info1 := (*vdso_info)(noescape(unsafe.Pointer(&info)))