198944Sobrien/* Native-dependent definitions for OpenBSD/i386.
298944Sobrien
3130803Smarcel   Copyright 2001, 2004 Free Software Foundation, Inc.
4130803Smarcel
598944Sobrien   This file is part of GDB.
698944Sobrien
798944Sobrien   This program is free software; you can redistribute it and/or modify
898944Sobrien   it under the terms of the GNU General Public License as published by
998944Sobrien   the Free Software Foundation; either version 2 of the License, or
1098944Sobrien   (at your option) any later version.
1198944Sobrien
1298944Sobrien   This program is distributed in the hope that it will be useful,
1398944Sobrien   but WITHOUT ANY WARRANTY; without even the implied warranty of
1498944Sobrien   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1598944Sobrien   GNU General Public License for more details.
1698944Sobrien
1798944Sobrien   You should have received a copy of the GNU General Public License
1898944Sobrien   along with this program; if not, write to the Free Software
1998944Sobrien   Foundation, Inc., 59 Temple Place - Suite 330,
2098944Sobrien   Boston, MA 02111-1307, USA.  */
2198944Sobrien
2298944Sobrien#ifndef NM_OBSD_H
2398944Sobrien#define NM_OBSD_H
2498944Sobrien
2598944Sobrien/* Type of the third argument to the `ptrace' system call.  */
2698944Sobrien#define PTRACE_ARG3_TYPE caddr_t
2798944Sobrien
2898944Sobrien/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'.  */
2998944Sobrien#define FETCH_INFERIOR_REGISTERS
3098944Sobrien
3198944Sobrien/* We can attach and detach.  */
3298944Sobrien#define ATTACH_DETACH
3398944Sobrien
3498944Sobrien
3598944Sobrien/* Support for the user struct.  */
3698944Sobrien
3798944Sobrien/* Return the size of the user struct.  */
3898944Sobrien
3998944Sobrien#define KERNEL_U_SIZE kernel_u_size ()
4098944Sobrienextern int kernel_u_size (void);
4198944Sobrien
4298944Sobrien/* This is the amount to subtract from u.u_ar0
4398944Sobrien   to get the offset in the core file of the register values.  */
4498944Sobrien
4598944Sobrien#include <machine/vmparam.h>
4698944Sobrien#define KERNEL_U_ADDR USRSTACK
4798944Sobrien
4898944Sobrien#define REGISTER_U_ADDR(addr, blockend, regno) \
4998944Sobrien  (addr) = register_u_addr ((blockend), (regno))
5098944Sobrienextern CORE_ADDR register_u_addr (CORE_ADDR blockend, int regno);
5198944Sobrien
5298944Sobrien
5398944Sobrien/* Shared library support.  */
5498944Sobrien
55130803Smarcel#include "solib.h"
5698944Sobrien
57130803Smarcel/* Make structure definitions match up with those expected in
58130803Smarcel   `solib-sunos.c'.  */
5998944Sobrien
6098944Sobrien#define link_object	sod
6198944Sobrien#define lo_name		sod_name
6298944Sobrien#define lo_library	sod_library
6398944Sobrien#define lo_unused	sod_reserved
6498944Sobrien#define lo_major	sod_major
6598944Sobrien#define lo_minor	sod_minor
6698944Sobrien#define lo_next		sod_next
6798944Sobrien
6898944Sobrien#define link_map	so_map
6998944Sobrien#define lm_addr		som_addr
7098944Sobrien#define lm_name		som_path
7198944Sobrien#define lm_next		som_next
7298944Sobrien#define lm_lop		som_sod
7398944Sobrien#define lm_lob		som_sodbase
7498944Sobrien#define lm_rwt		som_write
7598944Sobrien#define lm_ld		som_dynamic
7698944Sobrien#define lm_lpd		som_spd
7798944Sobrien
7898944Sobrien#define link_dynamic_2	section_dispatch_table
7998944Sobrien#define ld_loaded	sdt_loaded
8098944Sobrien#define ld_need		sdt_sods
8198944Sobrien#define ld_rules	sdt_filler1
8298944Sobrien#define ld_got		sdt_got
8398944Sobrien#define ld_plt		sdt_plt
8498944Sobrien#define ld_rel		sdt_rel
8598944Sobrien#define ld_hash		sdt_hash
8698944Sobrien#define ld_stab		sdt_nzlist
8798944Sobrien#define ld_stab_hash	sdt_filler2
8898944Sobrien#define ld_buckets	sdt_buckets
8998944Sobrien#define ld_symbols	sdt_strings
9098944Sobrien#define ld_symb_size	sdt_str_sz
9198944Sobrien#define ld_text		sdt_text_sz
9298944Sobrien#define ld_plt_sz	sdt_plt_sz
9398944Sobrien
9498944Sobrien#define rtc_symb	rt_symbol
9598944Sobrien#define rtc_sp		rt_sp
9698944Sobrien#define rtc_next	rt_next
9798944Sobrien
9898944Sobrien#define ld_debug	so_debug
9998944Sobrien#define ldd_version	dd_version
10098944Sobrien#define ldd_in_debugger	dd_in_debugger
10198944Sobrien#define ldd_sym_loaded	dd_sym_loaded
10298944Sobrien#define ldd_bp_addr	dd_bpt_addr
10398944Sobrien#define ldd_bp_inst	dd_bpt_shadow
10498944Sobrien#define ldd_cp		dd_cc
10598944Sobrien
10698944Sobrien#define link_dynamic	_dynamic
10798944Sobrien#define ld_version	d_version
10898944Sobrien#define ldd		d_debug
10998944Sobrien#define ld_un		d_un
11098944Sobrien#define ld_2		d_sdt
11198944Sobrien
11298944Sobrien#endif /* nm-obsd.h */
113