From 1672e0d98d88d11b5c7d5793bd2cf29cbb56696f Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Thu, 22 Dec 2016 09:20:00 -0500 Subject: Share gdb/environ.[ch] with gdbserver We will need access to the environment functions when we share fork_inferior between GDB and gdbserver, therefore we simply make the API on gdb/environ.[ch] available on common/. No extra adjustments are needed to make it compile on gdbserver. gdb/ChangeLog: 2017-03-07 Sergio Durigan Junior * Makefile.in (SFILES): Replace "environ.c" with "common/environ.c". (HFILES_NO_SRCDIR): Likewise, for "environ.h". * environ.c: Include "common-defs.h" instead of "defs.h. Moved to... * common/environ.c: ... here. * environ.h: Moved to... * common/environ.h: ... here. gdb/gdbserver/ChangeLog: 2017-03-07 Sergio Durigan Junior * Makefile.in (SFILES): Add "common/environ.c". (OBJS): Add "common/environ.h". --- gdb/common/environ.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 gdb/common/environ.h (limited to 'gdb/common/environ.h') diff --git a/gdb/common/environ.h b/gdb/common/environ.h new file mode 100644 index 0000000..3ace69e --- /dev/null +++ b/gdb/common/environ.h @@ -0,0 +1,49 @@ +/* Header for environment manipulation library. + Copyright (C) 1989-2017 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#if !defined (ENVIRON_H) +#define ENVIRON_H 1 + +/* We manipulate environments represented as these structures. */ + +struct gdb_environ + { + /* Number of usable slots allocated in VECTOR. + VECTOR always has one slot not counted here, + to hold the terminating zero. */ + int allocated; + /* A vector of slots, ALLOCATED + 1 of them. + The first few slots contain strings "VAR=VALUE" + and the next one contains zero. + Then come some unused slots. */ + char **vector; + }; + +extern struct gdb_environ *make_environ (void); + +extern void free_environ (struct gdb_environ *); + +extern void init_environ (struct gdb_environ *); + +extern char *get_in_environ (const struct gdb_environ *, const char *); + +extern void set_in_environ (struct gdb_environ *, const char *, const char *); + +extern void unset_in_environ (struct gdb_environ *, const char *); + +extern char **environ_vector (struct gdb_environ *); + +#endif /* defined (ENVIRON_H) */ -- cgit v1.1