d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# CDDL HEADER START
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# The contents of this file are subject to the terms of the
d29b2c4438482eb00488be49a1f5d6835f455546ab# Common Development and Distribution License (the "License").
d29b2c4438482eb00488be49a1f5d6835f455546ab# You may not use this file except in compliance with the License.
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d29b2c4438482eb00488be49a1f5d6835f455546ab# or http://www.opensolaris.org/os/licensing.
d29b2c4438482eb00488be49a1f5d6835f455546ab# See the License for the specific language governing permissions
d29b2c4438482eb00488be49a1f5d6835f455546ab# and limitations under the License.
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# When distributing Covered Code, include this CDDL HEADER in each
d29b2c4438482eb00488be49a1f5d6835f455546ab# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d29b2c4438482eb00488be49a1f5d6835f455546ab# If applicable, add the following below this CDDL HEADER, with the
d29b2c4438482eb00488be49a1f5d6835f455546ab# fields enclosed by brackets "[]" replaced with your own identifying
d29b2c4438482eb00488be49a1f5d6835f455546ab# information: Portions Copyright [yyyy] [name of copyright owner]
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# CDDL HEADER END
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
d29b2c4438482eb00488be49a1f5d6835f455546ab# Use is subject to license terms.
d29b2c4438482eb00488be49a1f5d6835f455546ab#
d29b2c4438482eb00488be49a1f5d6835f455546ab# ident "%Z%%M% %I% %E% SMI"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ _START_
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Message file for elfedit 'phdr' module
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_ID_ELFEDIT_PHDR
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Program header format
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_ELF_PHDR "Program header [%d]:\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Debug messages
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_PHDR "phdr[%d]: Program header: %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_OLDINTERPOK "[%d: %s][%d]: value unchanged: %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_SETPHINTERP "phdr[%d]: update PT_INTERP program header: \
d29b2c4438482eb00488be49a1f5d6835f455546ab p_offset=%#llx, p_size=%#llx\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_NEWISTR "[%d: %s][%d]: Write new value in .interp \
d29b2c4438482eb00488be49a1f5d6835f455546ab section: %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_LNGISTR "[%d: %s][%d]: New value too long (%d bytes) for \
d29b2c4438482eb00488be49a1f5d6835f455546ab .interp section (%d bytes): %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_S_OK "phdr[%d].%s: value unchanged: %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_S_CHG "phdr[%d].%s: change from %s to %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_LLX_OK "phdr[%d].%s: value unchanged: %#llx\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DEBUG_LLX_CHG "phdr[%d].%s: change from %#llx to %#llx\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Format strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_FMT_ELF_INTERP "Interpreter Section: %s\n\t%s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Errors
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_ERR_NOINTERPPHDR "ELF object does not have an interpreter \
d29b2c4438482eb00488be49a1f5d6835f455546ab program header\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_ERR_NOINTERPSEC "Unable to locate section corresponding to PT_INTERP \
d29b2c4438482eb00488be49a1f5d6835f455546ab program header\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_ERR_NOPHDR "No program header with specified type available: %s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Module description
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_MOD_DESC "Program Header"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# 1-line description strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_DUMP "Dump Program Header Contents"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_TYPE "Segment type"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_OFFSET "Offset from start of file"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_VADDR "Virtual address of 1st byte in memory"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_PADDR "Segment's physical address"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_FILESZ "# of bytes in file image of segment"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_MEMSZ "# bytes in memory image of segment"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_FLAGS "Segment flags"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_P_ALIGN "Segment alignmnent"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_INTERP "Dynamic object interpreter (PT_INTERP)"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_DELETE "Delete program headers"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_DESC_MOVE "Move program headers"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Command option description strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_OPTDESC_PHNDX "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Interpret the element argument as a program header index\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab rather than as a program header type.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Command argument description strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A1_ELEMENT "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Type of program header. The first program header with the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab specified type will be used. If the -phndx option is used,\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab then element is instead an integer giving the index of the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab specified program header element.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A1_INTERP_NEWPATH "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Path of new interpreter for ELF PT_INTERP program header.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_TYPE_TYPE "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Value to set for segment type. The value can be an integer,\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab or one of hte well known PT_ symbolic constant names.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_OFFSET_VALUE "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Integer value to set for program header p_offset field.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab The value of p_offset gives the offset from the beginning\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the file at which the first byte of the segment resides.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_VADDR_ADDR "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Integer value to set for virtual address at which the first\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab byte of the segment resides in memory.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_PADDR_ADDR "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Integer value to set for physical address at which the first\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab byte of the segment resides in memory.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_FILESZ_SIZE "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Integer value to set for number of bytes in the file image\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the segment, which can be zero.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_MEMSZ_SIZE "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Integer value to set for number of bytes in the memory image\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the segment, which can be zero.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_FLAGS_VALUE "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Segment flags. PF_ flag constants are accepted, as is\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab any integer.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_P_ALIGN_ALIGN "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Value to which the segment is aligned in memory, and in\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab the file.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_DELETE_COUNT "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Number of program header elements to delete, starting\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab at the specified position. This value cannot exceed the number\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of slots remaining in the header table below the specified.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab position If count is not supplied, a single element is deleted.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A2_MOVE_DST_INDEX "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Numeric index within program header to which the element(s)\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab should be moved.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_A3_MOVE_COUNT "\
d29b2c4438482eb00488be49a1f5d6835f455546ab Number of program header elements to move. This value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab cannot exceed the number of slots remaining in the program\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab header table below the specified position. If count is not\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab supplied, a single header element is moved.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Help strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_DUMP " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:dump command is used to display program headers\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab using the same style used by the elfdump program.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:dump is called without an argument, information for\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab every program header is shown. If called with the element\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab argument, the information for the program header symbol at\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab that index is displayed.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_TYPE " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_type command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab segment type program header. This information is maintained\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab in the p_type field of an ELF program header element.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_type is called without arguments, the value of\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_type for every element of the program header array is\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab shown. If called with the element argument, the value of the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab program header specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_type field of the program header at the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab specified position is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_OFFSET " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_offset command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_offset field of the specified program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_offset provides the offset from the beginning of the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab at which the first byte of the segment resides.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_offset is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_offset for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the element specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_offset field of the element at the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab specifiedindex is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_VADDR " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_vaddr command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_vaddr field of the specified program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_vaddr provides the virtual address at which the first byte\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the segment resides in memory\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_vaddr is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_vaddr for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the element specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_vaddr field of the element at the specified\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab index is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_PADDR " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_paddr command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_paddr field of the specified program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_paddr provides the physical address at which the first\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab byte of the segment resides in memory, for systems in which\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab physical addressing is relevant. Because the system ignores\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab physical addressing for application programs, this member\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab has unspecified contents for executable files and shared\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab objects.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_paddr is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_paddr for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the element specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_paddr field of the element at the specified\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab index is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_FILESZ " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_filesz command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_filesz field of the specified program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_filesz contains the number of bytes in the file image\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the segment. This value can be zero.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_filesz is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_filesz for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the element specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_filesz field of the element at the specified\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab index is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_MEMSZ " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_memsz command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_memsz field of the specified program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_memsz contains the number of bytes in the memory image\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the segment. This value can be zero.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_memsz is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_memsz for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the element specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_memsz field of the element at the specified\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab index is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_FLAGS " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_flags command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab flags that are associated with the segment described by\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab the program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_flags is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_flags for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value of\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab the program header at that index is displayed. If one or\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab more value arguments are present, the following steps are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab taken:\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab o\tAll the value arguments are OR'd together.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab o\tIf the -cmp option has been specified, the new value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \tis complemented.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab o\tThe p_flags field of the section header is updated with\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \tthe new value. If -and is specified, the new value is\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \tAND'd against the existing value. If -or is specified,\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \tthe new value is OR'd against the existing value. If\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \tneither -and or -or are specified, the new value replaces\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \tthe existing value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_P_ALIGN " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:p_align command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_align field of the specified program header.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab p_align is the value to which the segment is aligned in\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab memory, and in the file. Values 0 and 1 mean no alignment\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is required. Otherwise, p_align should be a positive\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab integral power of 2, and p_vaddr should equal p_offset,\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab modulo p_align.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:p_align is called without arguments, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of p_align for every element in the program header array\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is shown. If called with the element argument, the value\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab of the element specified is displayed. If both arguments are\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab present, the p_align field of the element at the specified\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab index is set to the given value.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_INTERP " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:interp command is used to display or alter the\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab interpreter of the ELF object.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab If phdr:interp is called without arguments, the existing\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab interpreter is shown. If called with the newpath argument,\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab the interpreter is set to the given string, if possible.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab An ELF PT_INTERP program header usually references its own\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab special section instead of some other string table. The ELF\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab ABI says that this section must be named \".interp\". .interp\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab is typically sized to just fit the original string, including\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab its NULL termination. You can treat it as a string table with\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab one string. If the new interpreter path is short enough to fit\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab in this .interp section, phdr:interp simply replaces the old\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab path with the new one.\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab \n\
d29b2c4438482eb00488be49a1f5d6835f455546ab In the case where the new path is too long to fit in the .interp\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab section, phdr:interp will attempt to use the dynamic string table\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab instead. This is not always possible: The desired string must\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab already exist in the dynamic string table, or there must be\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab enough room in the reserved section at the end (DT_SUNW_STRPAD)\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab for the new string to be added.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_DELETE " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:delete command is used to delete one or more elements\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab in the program header. The elements following the deleted items\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab move up, and the vacated elements at the end are zero filled.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_HELP_MOVE " \
d29b2c4438482eb00488be49a1f5d6835f455546ab The phdr:move command is used to move the position of one\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab or more elements in the program header array. The specified\n\
d29b2c4438482eb00488be49a1f5d6835f455546ab number of elements are moved from elt to dst_index.\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ _END_
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_EMPTY ""
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_NL "\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_ALIGN "align"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_ADDR "addr"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_COUNT "count"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_DST_INDEX "dst_index"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_ELEMENT "element"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_NEWPATH "newpath"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_SIZE "size"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_TYPE "type"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_VALUE "value"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_STR_MINUS_PHNDX "-phndx"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Format strings
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_FMT_U_NL "%u\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_FMT_X_NL "%#x\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_FMT_LLX_NL "%#llx\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_FMT_STRNL "%s\n"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# The following strings represent reserved words, files, pathnames and symbols.
d29b2c4438482eb00488be49a1f5d6835f455546ab# Reference to this strings is via the MSG_ORIG() macro, and thus no message
d29b2c4438482eb00488be49a1f5d6835f455546ab# translation is required.
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# ELF section names
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_SEC_INTERP ".interp"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Module name
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_MOD_NAME "phdr"
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab# Command names
d29b2c4438482eb00488be49a1f5d6835f455546ab
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_DUMP "dump"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_TYPE "p_type"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_OFFSET "p_offset"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_VADDR "p_vaddr"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_PADDR "p_paddr"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_FILESZ "p_filesz"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_MEMSZ "p_memsz"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_FLAGS "p_flags"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_P_ALIGN "p_align"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_INTERP "interp"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_DELETE "delete"
d29b2c4438482eb00488be49a1f5d6835f455546ab@ MSG_CMD_MOVE "move"