mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
There is a single declaration of set_tdesc_osabi that is shared between gdbserver/ and gdb/, this declaration takes a 'const char *' argument which is the string representing an osabi. Then in gdb/ we have an overload of set_tdesc_osabi which takes an 'enum gdb_osabi'. In this commit I change the shared set_tdesc_osabi to be the version which takes an 'enum gdb_osabi', and I remove the version which takes a 'const char *'. All users of set_tdesc_osabi are updated to pass an 'enum gdb_osabi'. The features/ code, which is generated from the xml files, requires a new function to be added to osabi.{c,h} which can return a string representation of an 'enum gdb_osabi'. With that new function in place the features/ code is regenerated. This change is being made to support the next commit. In the next commit gdbserver will be updated to call set_tdesc_osabi in more cases. The problem is that gdbserver stores the osabi as a string. The issue here is that a typo in the gdbserver/ code might go unnoticed and result in gdbserver sending back an invalid osabi string. To fix this we want gdbserver to pass an 'enum gdb_osabi' to the set_tdesc_osabi function. With that requirement in place it seems to make sense if all calls to set_tdesc_osabi pass an 'enum gdb_osabi'. There should be no user visible changes after this commit. Approved-By: Luis Machado <luis.machado@arm.com> Approved-By: Simon Marchi <simon.marchi@efficios.com>
48 lines
1.5 KiB
C
48 lines
1.5 KiB
C
/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
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 <http://www.gnu.org/licenses/>. */
|
|
|
|
#include "gdbsupport/tdesc.h"
|
|
#include "gdbsupport/osabi.h"
|
|
#include "tic6x.h"
|
|
|
|
#include "../features/tic6x-core.c"
|
|
#include "../features/tic6x-gp.c"
|
|
#include "../features/tic6x-c6xp.c"
|
|
|
|
/* Create tic6x target descriptions according to FEATURE. */
|
|
|
|
target_desc *
|
|
tic6x_create_target_description (enum c6x_feature feature)
|
|
{
|
|
target_desc_up tdesc = allocate_target_description ();
|
|
|
|
set_tdesc_architecture (tdesc.get (), "tic6x");
|
|
set_tdesc_osabi (tdesc.get (), GDB_OSABI_LINUX);
|
|
|
|
long regnum = 0;
|
|
|
|
regnum = create_feature_tic6x_core (tdesc.get (), regnum);
|
|
|
|
if (feature == C6X_GP || feature == C6X_C6XP)
|
|
regnum = create_feature_tic6x_gp (tdesc.get (), regnum);
|
|
|
|
if (feature == C6X_C6XP)
|
|
regnum = create_feature_tic6x_c6xp (tdesc.get (), regnum);
|
|
|
|
return tdesc.release ();
|
|
}
|