Annotation of GNUtools/cctools/as/sections.h, revision 1.1

1.1     ! root        1: /* sections.h (was subsegs.h in the original GAS)
        !             2:    Copyright (C) 1987 Free Software Foundation, Inc.
        !             3: 
        !             4: This file is part of GAS, the GNU Assembler.
        !             5: 
        !             6: GAS is free software; you can redistribute it and/or modify
        !             7: it under the terms of the GNU General Public License as published by
        !             8: the Free Software Foundation; either version 1, or (at your option)
        !             9: any later version.
        !            10: 
        !            11: GAS is distributed in the hope that it will be useful,
        !            12: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14: GNU General Public License for more details.
        !            15: 
        !            16: You should have received a copy of the GNU General Public License
        !            17: along with GAS; see the file COPYING.  If not, write to
        !            18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !            19: 
        !            20: #import <mach-o/loader.h>
        !            21: #import "struc-symbol.h"
        !            22: 
        !            23: /*
        !            24:  * For every section the user mentions in the assembley program, we make one
        !            25:  * struct frchain.  Each section has exactly one struct frchain and vice versa.
        !            26:  *
        !            27:  * Struct frchain's are forward chained (in ascending order of section number).
        !            28:  * The chain runs through frch_next of each section. 
        !            29:  *
        !            30:  * From each struct frchain dangles a chain of struct frags.  The frags
        !            31:  * represent code fragments, for that section, forward chained.
        !            32:  */
        !            33: 
        !            34: struct frchain {                       /* control building of a frag chain */
        !            35:     struct frag            *frch_root;         /* 1st struct frag in chain, or NULL */
        !            36:     struct frag     *frch_last;                /* last struct frag in chain, or NULL */
        !            37:     struct frchain  *frch_next;                /* next in chain of struct frchain-s */
        !            38: 
        !            39:     struct section   frch_section;     /* section info, name, type, etc. */
        !            40:     unsigned long    frch_nsect;       /* section number (1,2,3,...) */
        !            41:     struct fix      *frch_fix_root;    /* section fixups */
        !            42:     isymbolS       *frch_isym_root;    /* 1st indirect symbol in chain */
        !            43:     isymbolS       *frch_isym_last;    /* last indirect symbol in chain */
        !            44: };
        !            45: 
        !            46: typedef struct frchain frchainS;
        !            47: 
        !            48: /*
        !            49:  * All sections' chains hang off here.  NULL means no frchains yet.
        !            50:  */
        !            51: extern frchainS *frchain_root;
        !            52: 
        !            53: /*
        !            54:  * The frchain we are assembling into now.  That is, the current section's
        !            55:  * frag chain, even if it contains no (complete) frags.
        !            56:  */
        !            57: extern frchainS *frchain_now;
        !            58: 
        !            59: /*
        !            60:  * The global routines defined in sections.c
        !            61:  */
        !            62: extern void sections_begin(
        !            63:     void);
        !            64: 
        !            65: extern frchainS *section_new(
        !            66:     char *segname,
        !            67:     char *sectname,
        !            68:     unsigned long type,
        !            69:     unsigned long attributes,
        !            70:     unsigned long sizeof_stub);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.