map.c revision 08278a5e91755ccdb5850c19d21d42fb2e16b50e
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * CDDL HEADER START
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * The contents of this file are subject to the terms of the
d2ec54f7875f7e05edd56195adbeb593c947763fphitran * Common Development and Distribution License (the "License").
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * You may not use this file except in compliance with the License.
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * See the License for the specific language governing permissions
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * and limitations under the License.
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * When distributing Covered Code, include this CDDL HEADER in each
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * If applicable, add the following below this CDDL HEADER, with the
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * fields enclosed by brackets "[]" replaced with your own identifying
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * information: Portions Copyright [yyyy] [name of copyright owner]
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * CDDL HEADER END
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * Copyright (c) 1988 AT&T
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * All Rights Reserved
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * Use is subject to license terms.
7b840e52d558c34b70cbcde044d8d79852d169d2phitran * Map file parsing (Original SysV syntax).
static Boolean
int used = 0;
if (DBG_ENABLED) {
TK_SEMICOLON) {
return (FALSE);
MSG_MAP_OVERRIDE_SIZE) == 0) {
used++;
used++;
return (FALSE);
used++;
used++;
return (FALSE);
if (used == 0) {
return (TRUE);
return (FALSE);
return (TRUE);
static Boolean
const char *flag_tok)
if (*b_flags) {
return (FALSE);
flag_tok++;
while (*flag_tok) {
switch (*flag_tok) {
return (FALSE);
return (FALSE);
flag_tok++;
return (TRUE);
static Boolean
case STRTOXWORD_OK:
return (TRUE);
case STRTOXWORD_TOOBIG:
return (FALSE);
static Boolean
} seg_types_t;
{ NULL }
TK_SEMICOLON) {
return (FALSE);
if (b_type) {
return (FALSE);
return (FALSE);
return (FALSE);
if (b_len) {
return (FALSE);
if (b_round) {
return (FALSE);
if (b_vaddr) {
return (FALSE);
if (b_paddr) {
return (FALSE);
if (b_align) {
return (FALSE);
return (FALSE);
return (FALSE);
return (FALSE);
return (FALSE);
return (FALSE);
const char *fmt;
return (TRUE);
static Boolean
return (FALSE);
return (FALSE);
if (b_type) {
return (FALSE);
return (FALSE);
if (b_attr) {
return (FALSE);
if (b_bang) {
return (FALSE);
return (FALSE);
if (!b_bang)
return (FALSE);
if (!b_bang)
return (FALSE);
if (!b_bang)
return (FALSE);
if (b_name) {
return (FALSE);
return (FALSE);
return (FALSE);
return (TRUE);
static Boolean
return (FALSE);
return (FALSE);
return (FALSE);
return (TRUE);
static Boolean
return (FALSE);
return (FALSE);
return (FALSE);
return (TRUE);
static Boolean
MD_NONE = 0,
return (FALSE);
return (FALSE);
TK_STRING) {
return (FALSE);
switch (dolkey) {
case MD_ADDVERS:
return (FALSE);
case MD_NONE:
return (FALSE);
return (FALSE);
return (FALSE);
return (FALSE);
return (TRUE);
static Boolean
return (FALSE);
return (FALSE);
switch (tok) {
case TK_COLON:
case TK_EQUAL:
TK_SEMICOLON) {
return (FALSE);
return (FALSE);
if (filter) {
filter = 0;
return (FALSE);
case TK_SEMICOLON:
return (FALSE);
return (FALSE);
return (FALSE);
return (TRUE);
char *name;
* variable tkv.tkv_str points to the first string on the line.
return (FALSE);
return (FALSE);
return (FALSE);
return (FALSE);
return (FALSE);
if (!new_segment)
name);
return (FALSE);
return (FALSE);
if (new_segment &&
return (FALSE);
switch (tok) {
return (FALSE);
return (FALSE);
return (FALSE);
if (new_segment) {
case SEG_INS_SKIP:
case SEG_INS_FAIL:
return (FALSE);
if (new_segment) {
case SEG_INS_SKIP:
case SEG_INS_FAIL:
return (FALSE);
return (FALSE);
return (FALSE);
if (new_segment) {
case SEG_INS_SKIP:
case SEG_INS_FAIL:
return (FALSE);
return (FALSE);
case TK_ERROR:
return (FALSE);
return (TRUE);