about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/dl-vdso.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-08-12 19:33:45 +0000
committerUlrich Drepper <drepper@redhat.com>2007-08-12 19:33:45 +0000
commitfb86328ad89bed5340882b8c9f245ba93189a55c (patch)
treefe272ce0e56aa9f21bee9da95159aadde03af133 /sysdeps/unix/sysv/linux/dl-vdso.h
parent75fb247e69ede25fb49929fed7535a091a4f6934 (diff)
downloadglibc-fb86328ad89bed5340882b8c9f245ba93189a55c.tar.gz
glibc-fb86328ad89bed5340882b8c9f245ba93189a55c.tar.xz
glibc-fb86328ad89bed5340882b8c9f245ba93189a55c.zip
* sysdeps/unix/sysv/linux/dl-vdso.c (_dl_vdso_vsym): Expect
	r_found_version structure as second parameter.
	* sysdeps/unix/sysv/linux/dl-vdso.h (PREPARE_VERSION): Define.
	(_dl_vdso_vsym): Change type of second parameter accordingly.
	* sysdeps/unix/sysv/linux/x86-64/libc-start.c
	(_libc_vdso_platform_setup): Adjust.
	* sysdeps/unix/sysv/linux/pwoerpc/libc-start.c
	(_libc_vdso_platform_setup): Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/dl-vdso.h')
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h
index a7dcb2e5ff..0a76dbe6f3 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso.h
@@ -1,5 +1,5 @@
 /* ELF symbol resolve functions for VDSO objects.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,8 +20,25 @@
 #ifndef _DL_VDSO_H
 #define _DL_VDSO_H	1
 
+#include <assert.h>
+#include <dl-hash.h>
+#include <ldsodefs.h>
+
+
+/* Create version number record for lookup.  */
+#define PREPARE_VERSION(var, vname, vhash) \
+  struct r_found_version var;						      \
+  var.name = vname;							      \
+  var.hidden = 1;							      \
+  var.hash = vhash;							      \
+  assert (var.hash == _dl_elf_hash (vname));				      \
+  /* We don't have a specific file where the symbol can be found.  */	      \
+  var.filename = NULL
+
+
 /* Functions for resolving symbols in the VDSO link map.  */
-extern void *_dl_vdso_vsym (const char *name, const char *version)
+extern void *_dl_vdso_vsym (const char *name,
+			    const struct r_found_version *version)
      internal_function attribute_hidden;
 
 #endif /* dl-vdso.h */