diff options
author | Nick Clifton <nickc@redhat.com> | 2005-04-21 07:45:39 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2005-04-21 07:45:39 +0000 |
commit | 7920ce38c3e43d462e360b21db6cc9c17a40b4f4 (patch) | |
tree | 416f762ca89660f4cecf9e1391f12c6ac478ce46 /bfd/nlm32-alpha.c | |
parent | b450502905875e85aab17371f78bb6befe5a3059 (diff) | |
download | gdb-7920ce38c3e43d462e360b21db6cc9c17a40b4f4.zip gdb-7920ce38c3e43d462e360b21db6cc9c17a40b4f4.tar.gz gdb-7920ce38c3e43d462e360b21db6cc9c17a40b4f4.tar.bz2 |
Update to ISO-C90 and fix formatting
Diffstat (limited to 'bfd/nlm32-alpha.c')
-rw-r--r-- | bfd/nlm32-alpha.c | 605 |
1 files changed, 285 insertions, 320 deletions
diff --git a/bfd/nlm32-alpha.c b/bfd/nlm32-alpha.c index 3bf597b..7a16ffc 100644 --- a/bfd/nlm32-alpha.c +++ b/bfd/nlm32-alpha.c @@ -1,23 +1,23 @@ /* Support for 32-bit Alpha NLM (NetWare Loadable Module) - Copyright 1993, 1994, 2000, 2001, 2002, 2003, 2004 + Copyright 1993, 1994, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -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 2 of the License, or -(at your option) any later version. + 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 2 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. + 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, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This file describes the 32 bit Alpha NLM format. You might think that an Alpha chip would use a 64 bit format, but, for some reason, @@ -33,38 +33,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define Nlm_External_Fixed_Header Nlm32_alpha_External_Fixed_Header #include "libnlm.h" - -static bfd_boolean nlm_alpha_backend_object_p - PARAMS ((bfd *)); -static bfd_boolean nlm_alpha_write_prefix - PARAMS ((bfd *)); -static bfd_boolean nlm_alpha_read_reloc - PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *)); -static bfd_boolean nlm_alpha_mangle_relocs - PARAMS ((bfd *, asection *, const PTR, bfd_vma, bfd_size_type)); -static bfd_boolean nlm_alpha_read_import - PARAMS ((bfd *, nlmNAME(symbol_type) *)); -static bfd_boolean nlm_alpha_write_import - PARAMS ((bfd *, asection *, arelent *)); -static bfd_boolean nlm_alpha_set_public_section - PARAMS ((bfd *, nlmNAME(symbol_type) *)); -static bfd_vma nlm_alpha_get_public_offset - PARAMS ((bfd *, asymbol *)); -static bfd_boolean nlm_alpha_write_external - PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); /* Alpha NLM's have a prefix header before the standard NLM. This function reads it in, verifies the version, and seeks the bfd to the location before the regular NLM header. */ static bfd_boolean -nlm_alpha_backend_object_p (abfd) - bfd *abfd; +nlm_alpha_backend_object_p (bfd *abfd) { struct nlm32_alpha_external_prefix_header s; file_ptr size; - if (bfd_bread ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s) + if (bfd_bread (&s, (bfd_size_type) sizeof s, abfd) != sizeof s) return FALSE; if (H_GET_32 (abfd, s.magic) != NLM32_ALPHA_MAGIC) @@ -83,8 +63,7 @@ nlm_alpha_backend_object_p (abfd) /* Write out the prefix. */ static bfd_boolean -nlm_alpha_write_prefix (abfd) - bfd *abfd; +nlm_alpha_write_prefix (bfd *abfd) { struct nlm32_alpha_external_prefix_header s; @@ -92,7 +71,7 @@ nlm_alpha_write_prefix (abfd) H_PUT_32 (abfd, NLM32_ALPHA_MAGIC, s.magic); H_PUT_32 (abfd, 2, s.format); H_PUT_32 (abfd, sizeof s, s.size); - if (bfd_bwrite ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s) + if (bfd_bwrite (&s, (bfd_size_type) sizeof s, abfd) != sizeof s) return FALSE; return TRUE; } @@ -106,83 +85,83 @@ static reloc_howto_type nlm32_alpha_howto_table[] = /* Reloc type 0 is ignored by itself. However, it appears after a GPDISP reloc to identify the location where the low order 16 bits of the gp register are loaded. */ - HOWTO (ALPHA_R_IGNORE, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 8, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "IGNORE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_IGNORE, /* Type. */ + 0, /* Rightshift. */ + 0, /* Size (0 = byte, 1 = short, 2 = long). */ + 8, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "IGNORE", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* A 32 bit reference to a symbol. */ - HOWTO (ALPHA_R_REFLONG, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - 0, /* special_function */ - "REFLONG", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_REFLONG, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 32, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_bitfield, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "REFLONG", /* Name. */ + TRUE, /* Partial_inplace. */ + 0xffffffff, /* Source mask. */ + 0xffffffff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* A 64 bit reference to a symbol. */ - HOWTO (ALPHA_R_REFQUAD, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - 0, /* special_function */ - "REFQUAD", /* name */ - TRUE, /* partial_inplace */ - ONES (64), /* src_mask */ - ONES (64), /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_REFQUAD, /* Type. */ + 0, /* Rightshift. */ + 4, /* Size (0 = byte, 1 = short, 2 = long). */ + 64, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_bitfield, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "REFQUAD", /* Name. */ + TRUE, /* Partial_inplace. */ + ONES (64), /* Source mask. */ + ONES (64), /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* A 32 bit GP relative offset. This is just like REFLONG except that when the value is used the value of the gp register will be added in. */ - HOWTO (ALPHA_R_GPREL32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - 0, /* special_function */ - "GPREL32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_GPREL32, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 32, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_bitfield, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "GPREL32", /* Name. */ + TRUE, /* Partial_inplace. */ + 0xffffffff, /* Source mask. */ + 0xffffffff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Used for an instruction that refers to memory off the GP register. The offset is 16 bits of the 32 bit instruction. This reloc always seems to be against the .lita section. */ - HOWTO (ALPHA_R_LITERAL, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - 0, /* special_function */ - "LITERAL", /* name */ - TRUE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_LITERAL, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 16, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_signed, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "LITERAL", /* Name. */ + TRUE, /* Partial_inplace. */ + 0xffff, /* Source mask. */ + 0xffff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* This reloc only appears immediately following a LITERAL reloc. It identifies a use of the literal. It seems that the linker can @@ -193,19 +172,19 @@ static reloc_howto_type nlm32_alpha_howto_table[] = instruction; 3 means the literal address is in the target register of a jsr instruction. This does not actually do any relocation. */ - HOWTO (ALPHA_R_LITUSE, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "LITUSE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_LITUSE, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 32, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "LITUSE", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Load the gp register. This is always used for a ldah instruction which loads the upper 16 bits of the gp register. The next reloc @@ -218,202 +197,201 @@ static reloc_howto_type nlm32_alpha_howto_table[] = difference between the GP value and the current location; the load will always be done against a register holding the current address. */ - HOWTO (ALPHA_R_GPDISP, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "GPDISP", /* name */ - TRUE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ + HOWTO (ALPHA_R_GPDISP, /* Type. */ + 16, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 16, /* Bitsize. */ + TRUE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "GPDISP", /* Name. */ + TRUE, /* Partial_inplace. */ + 0xffff, /* Source mask. */ + 0xffff, /* Dest mask. */ + TRUE), /* PCrel_offset. */ /* A 21 bit branch. The native assembler generates these for branches within the text segment, and also fills in the PC relative offset in the instruction. It seems to me that this reloc, unlike the others, is not partial_inplace. */ - HOWTO (ALPHA_R_BRADDR, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 21, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - 0, /* special_function */ - "BRADDR", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x1fffff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_BRADDR, /* Type. */ + 2, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 21, /* Bitsize. */ + TRUE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_signed, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "BRADDR", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0x1fffff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* A hint for a jump to a register. */ - HOWTO (ALPHA_R_HINT, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 14, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "HINT", /* name */ - TRUE, /* partial_inplace */ - 0x3fff, /* src_mask */ - 0x3fff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_HINT, /* Type. */ + 2, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 14, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "HINT", /* Name. */ + TRUE, /* Partial_inplace. */ + 0x3fff, /* Source mask. */ + 0x3fff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* 16 bit PC relative offset. */ - HOWTO (ALPHA_R_SREL16, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - 0, /* special_function */ - "SREL16", /* name */ - TRUE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_SREL16, /* Type. */ + 0, /* Rightshift. */ + 1, /* Size (0 = byte, 1 = short, 2 = long). */ + 16, /* Bitsize. */ + TRUE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_signed, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "SREL16", /* Name. */ + TRUE, /* Partial_inplace. */ + 0xffff, /* Source mask. */ + 0xffff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* 32 bit PC relative offset. */ - HOWTO (ALPHA_R_SREL32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - 0, /* special_function */ - "SREL32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_SREL32, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 32, /* Bitsize. */ + TRUE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_signed, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "SREL32", /* Name. */ + TRUE, /* Partial_inplace. */ + 0xffffffff, /* Source mask. */ + 0xffffffff, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* A 64 bit PC relative offset. */ - HOWTO (ALPHA_R_SREL64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - 0, /* special_function */ - "SREL64", /* name */ - TRUE, /* partial_inplace */ - ONES (64), /* src_mask */ - ONES (64), /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_SREL64, /* Type. */ + 0, /* Rightshift. */ + 4, /* Size (0 = byte, 1 = short, 2 = long). */ + 64, /* Bitsize. */ + TRUE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_signed, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "SREL64", /* Name. */ + TRUE, /* Partial_inplace. */ + ONES (64), /* Source mask. */ + ONES (64), /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Push a value on the reloc evaluation stack. */ - HOWTO (ALPHA_R_OP_PUSH, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "OP_PUSH", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_OP_PUSH, /* Type. */ + 0, /* Rightshift. */ + 0, /* Size (0 = byte, 1 = short, 2 = long). */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "OP_PUSH", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Store the value from the stack at the given address. Store it in a bitfield of size r_size starting at bit position r_offset. */ - HOWTO (ALPHA_R_OP_STORE, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "OP_STORE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ONES (64), /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_OP_STORE, /* Type. */ + 0, /* Rightshift. */ + 4, /* Size (0 = byte, 1 = short, 2 = long). */ + 64, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "OP_STORE", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + ONES (64), /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Subtract the reloc address from the value on the top of the relocation stack. */ - HOWTO (ALPHA_R_OP_PSUB, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "OP_PSUB", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_OP_PSUB, /* Type. */ + 0, /* Rightshift. */ + 0, /* Size (0 = byte, 1 = short, 2 = long). */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "OP_PSUB", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Shift the value on the top of the relocation stack right by the given value. */ - HOWTO (ALPHA_R_OP_PRSHIFT, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "OP_PRSHIFT", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ + HOWTO (ALPHA_R_OP_PRSHIFT, /* Type. */ + 0, /* Rightshift. */ + 0, /* Size (0 = byte, 1 = short, 2 = long). */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "OP_PRSHIFT", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE), /* PCrel_offset. */ /* Adjust the GP value for a new range in the object file. */ - HOWTO (ALPHA_R_GPVALUE, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "GPVALUE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE) /* pcrel_offset */ + HOWTO (ALPHA_R_GPVALUE, /* Type. */ + 0, /* Rightshift. */ + 0, /* Size (0 = byte, 1 = short, 2 = long). */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "GPVALUE", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE) /* PCrel_offset. */ }; static reloc_howto_type nlm32_alpha_nw_howto = - HOWTO (ALPHA_R_NW_RELOC, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - 0, /* special_function */ - "NW_RELOC", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE); /* pcrel_offset */ + HOWTO (ALPHA_R_NW_RELOC, /* Type. */ + 0, /* Rightshift. */ + 0, /* Size (0 = byte, 1 = short, 2 = long). */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain_on_overflow. */ + 0, /* Special_function. */ + "NW_RELOC", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Source mask. */ + 0, /* Dest mask. */ + FALSE); /* PCrel_offset. */ /* Read an Alpha NLM reloc. This routine keeps some static data which it uses when handling local relocs. This only works correctly because all the local relocs are read at once. */ static bfd_boolean -nlm_alpha_read_reloc (abfd, sym, secp, rel) - bfd *abfd; - nlmNAME(symbol_type) *sym; - asection **secp; - arelent *rel; +nlm_alpha_read_reloc (bfd *abfd, + nlmNAME (symbol_type) *sym, + asection **secp, + arelent *rel) { static bfd_vma gp_value; static bfd_vma lita_address; @@ -605,31 +583,28 @@ nlm_alpha_read_reloc (abfd, sym, secp, rel) /* Mangle Alpha NLM relocs for output. */ static bfd_boolean -nlm_alpha_mangle_relocs (abfd, sec, data, offset, count) - bfd *abfd ATTRIBUTE_UNUSED; - asection *sec ATTRIBUTE_UNUSED; - const PTR data ATTRIBUTE_UNUSED; - bfd_vma offset ATTRIBUTE_UNUSED; - bfd_size_type count ATTRIBUTE_UNUSED; +nlm_alpha_mangle_relocs (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec ATTRIBUTE_UNUSED, + const void * data ATTRIBUTE_UNUSED, + bfd_vma offset ATTRIBUTE_UNUSED, + bfd_size_type count ATTRIBUTE_UNUSED) { return TRUE; } -/* Read an ALPHA NLM import record */ +/* Read an ALPHA NLM import record. */ static bfd_boolean -nlm_alpha_read_import (abfd, sym) - bfd *abfd; - nlmNAME(symbol_type) *sym; +nlm_alpha_read_import (bfd *abfd, nlmNAME (symbol_type) * sym) { - struct nlm_relent *nlm_relocs; /* relocation records for symbol */ - bfd_size_type rcount; /* number of relocs */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* temporary 32-bit value */ - unsigned char symlength; /* length of symbol name */ + struct nlm_relent *nlm_relocs; /* Relocation records for symbol. */ + bfd_size_type rcount; /* Number of relocs. */ + bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Temporary 32-bit value. */ + unsigned char symlength; /* Length of symbol name. */ char *name; bfd_size_type amt; - if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd) + if (bfd_bread (& symlength, (bfd_size_type) sizeof (symlength), abfd) != sizeof (symlength)) return FALSE; sym -> symbol.the_bfd = abfd; @@ -643,12 +618,12 @@ nlm_alpha_read_import (abfd, sym) sym -> symbol.flags = 0; sym -> symbol.value = 0; sym -> symbol.section = bfd_und_section_ptr; - if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd) + if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) return FALSE; rcount = H_GET_32 (abfd, temp); amt = rcount * sizeof (struct nlm_relent); - nlm_relocs = (struct nlm_relent *) bfd_alloc (abfd, amt); + nlm_relocs = bfd_alloc (abfd, amt); if (!nlm_relocs) return FALSE; sym -> relocs = nlm_relocs; @@ -670,10 +645,7 @@ nlm_alpha_read_import (abfd, sym) /* Write an Alpha NLM reloc. */ static bfd_boolean -nlm_alpha_write_import (abfd, sec, rel) - bfd *abfd; - asection *sec; - arelent *rel; +nlm_alpha_write_import (bfd * abfd, asection * sec, arelent * rel) { asymbol *sym; bfd_vma r_vaddr; @@ -734,7 +706,7 @@ nlm_alpha_write_import (abfd, sec, rel) } else { - /* r_type == ALPHA_R_NW_RELOC */ + /* r_type == ALPHA_R_NW_RELOC. */ r_vaddr = rel->address; if (rel->addend == 0) { @@ -781,9 +753,7 @@ nlm_alpha_write_import (abfd, sec, rel) /* Set the section for a public symbol. */ static bfd_boolean -nlm_alpha_set_public_section (abfd, sym) - bfd *abfd; - nlmNAME(symbol_type) *sym; +nlm_alpha_set_public_section (bfd * abfd, nlmNAME (symbol_type) * sym) { asection *code_sec, *data_sec; @@ -807,9 +777,7 @@ nlm_alpha_set_public_section (abfd, sym) /* Get the offset to write out for a public symbol. */ static bfd_vma -nlm_alpha_get_public_offset (abfd, sym) - bfd *abfd ATTRIBUTE_UNUSED; - asymbol *sym; +nlm_alpha_get_public_offset (bfd * abfd ATTRIBUTE_UNUSED, asymbol * sym) { return bfd_asymbol_value (sym); } @@ -817,11 +785,10 @@ nlm_alpha_get_public_offset (abfd, sym) /* Write an Alpha NLM external symbol. */ static bfd_boolean -nlm_alpha_write_external (abfd, count, sym, relocs) - bfd *abfd; - bfd_size_type count; - asymbol *sym; - struct reloc_and_sec *relocs; +nlm_alpha_write_external (bfd *abfd, + bfd_size_type count, + asymbol *sym, + struct reloc_and_sec *relocs) { bfd_size_type i; bfd_byte len; @@ -845,19 +812,17 @@ nlm_alpha_write_external (abfd, count, sym, relocs) r.address = nlm_alpha_backend_data (abfd)->lita_address; r.addend = nlm_alpha_backend_data (abfd)->lita_size + 1; - if (! nlm_alpha_write_import (abfd, (asection *) NULL, &r)) + if (! nlm_alpha_write_import (abfd, NULL, &r)) return FALSE; r.address = nlm_alpha_backend_data (abfd)->gp; r.addend = 0; - if (! nlm_alpha_write_import (abfd, (asection *) NULL, &r)) + if (! nlm_alpha_write_import (abfd, NULL, &r)) return FALSE; for (i = 0; i < count; i++) - { - if (! nlm_alpha_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return FALSE; - } + if (! nlm_alpha_write_import (abfd, relocs[i].sec, relocs[i].rel)) + return FALSE; return TRUE; } @@ -871,7 +836,7 @@ static const struct nlm_backend_data nlm32_alpha_backend = sizeof (struct nlm32_alpha_external_prefix_header), bfd_arch_alpha, 0, - TRUE, /* no uninitialized data permitted by Alpha NetWare. */ + TRUE, /* No uninitialized data permitted by Alpha NetWare. */ nlm_alpha_backend_object_p, nlm_alpha_write_prefix, nlm_alpha_read_reloc, @@ -883,11 +848,11 @@ static const struct nlm_backend_data nlm32_alpha_backend = nlm_swap_fixed_header_in, nlm_swap_fixed_header_out, nlm_alpha_write_external, - 0, /* write_export */ + 0, /* Write_export. */ }; #define TARGET_LITTLE_NAME "nlm32-alpha" -#define TARGET_LITTLE_SYM nlmNAME(alpha_vec) -#define TARGET_BACKEND_DATA &nlm32_alpha_backend +#define TARGET_LITTLE_SYM nlmNAME (alpha_vec) +#define TARGET_BACKEND_DATA & nlm32_alpha_backend #include "nlm-target.h" |