Home | History | Annotate | Download | only in ltrace
      1 /*
      2  * This file is part of ltrace.
      3  * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
      4  * Copyright (C) 2010 Joe Damato
      5  * Copyright (C) 2009 Juan Cespedes
      6  *
      7  * This program is free software; you can redistribute it and/or
      8  * modify it under the terms of the GNU General Public License as
      9  * published by the Free Software Foundation; either version 2 of the
     10  * License, or (at your option) any later version.
     11  *
     12  * This program is distributed in the hope that it will be useful, but
     13  * WITHOUT ANY WARRANTY; without even the implied warranty of
     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15  * General Public License for more details.
     16  *
     17  * You should have received a copy of the GNU General Public License
     18  * along with this program; if not, write to the Free Software
     19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
     20  * 02110-1301 USA
     21  */
     22 
     23 #ifndef COMMON_H
     24 #define COMMON_H
     25 
     26 #include <config.h>
     27 
     28 #include <sys/types.h>
     29 #include <sys/time.h>
     30 #include <stdio.h>
     31 
     32 #include "ltrace.h"
     33 #include "defs.h"
     34 #include "dict.h"
     35 #include "sysdep.h"
     36 #include "debug.h"
     37 #include "ltrace-elf.h"
     38 #include "read_config_file.h"
     39 #include "proc.h"
     40 #include "forward.h"
     41 
     42 extern char * command;
     43 
     44 extern int exiting;  /* =1 if we have to exit ASAP */
     45 
     46 extern char *PLTs_initialized_by_here;
     47 
     48 #include "options.h"
     49 #include "output.h"
     50 
     51 /* Events  */
     52 extern Event * next_event(void);
     53 extern void handle_event(Event * event);
     54 
     55 extern pid_t execute_program(const char * command, char ** argv);
     56 
     57 struct breakpoint;
     58 struct library_symbol;
     59 
     60 /* Format VALUE into STREAM.  The dictionary of all arguments is given
     61  * for purposes of evaluating array lengths and other dynamic
     62  * expressions.  Returns number of characters outputted, -1 in case of
     63  * failure.  */
     64 int format_argument(FILE *stream, struct value *value,
     65 		    struct value_dict *arguments);
     66 
     67 /* Set *RET to either a duplicate of STR (if WHETHER), or STR
     68  * (otherwise).  Return 0 on success or a negative value on failure.
     69  * The duplication is not done if STR is NULL.  */
     70 int strdup_if(const char **ret, const char *str, int whether);
     71 
     72 #endif
     73