Annotation of GNUtools/cctools/as/sections.h, revision 1.1.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.