/* usymbol test case
 * Copyright (C) 2008, Red Hat Inc.
 *                                                          
 * This file is part of systemtap, and is free software.  You can
 * redistribute it and/or modify it under the terms of the GNU General
 * Public License (GPL); either version 2, or (at your option) any
 * later version.
 *
 * Uses signal to tranfer user space addresses into the kernel where a
 * probe on sigaction will extract them and produce the symbols.  To
 * poke into the executable we get the sa_handler from the main executable,
 * and then the library through calling signal.
 *
 * FIXME. We call into the library to get the right symbol. If we
 * register the handler from the main executable. We need to handle
 * @plt symbols (setting a handler in the main executable that is in a
 * shared library will have the @plt address, not the address inside
 * the shared library).
 */

#include <signal.h>
typedef void (*sighandler_t)(int);

// function from our library
int lib_main (void);

void
main_handler (int signum)
{
  /* dummy handler, just used for the address... */
}

int
main (int argc, char *argv[], char *envp[])
{
  // Use SIGFPE since we never expect that to be triggered.
  signal(SIGFPE, main_handler);
  lib_main();
  return 0;
}