home *** CD-ROM | disk | FTP | other *** search
- .th END III 4/28/75
- .sh NAME
- end, etext, edata \*- last locations in program
- .sh SYNOPSIS
- .ft B
- .nf
- extern end;
- extern etext;
- extern edata;
- .ft R
- .fi
- .sh DESCRIPTION
- These names refer neither to routines
- nor to locations with interesting contents.
- Instead, their addresses coincide with the first
- address above the program text region
- .it (etext),
- above the initialized data region
- .it (edata),
- or uninitialized data region
- .it (end).
- The last is the same as the program break.
- Values are given to these symbols
- by the link editor
- .it ld
- (I)
- when, and only when, they are referred to but not defined
- in the set of programs loaded.
- .s3
- The usage of these symbols is rather specialized, but one plausible
- possibility is
- .s3
- .nf
- extern end;
- ...
- ... = brk(&end+...);
- .fi
- .s3
- (see
- .it break
- (II)).
- The problem with this is that it ignores any other
- subroutines which may want to extend core for their purposes;
- these include
- .it sbrk
- (see
- .it break
- (II)),
- .it alloc
- (III),
- and also secret subroutines invoked by the profile
- (\-p) option of
- .it cc.
- Of course it was for the benefit of such systems
- that the symbols were invented,
- and user programs, unless they are in firm control
- of their environment,
- are wise not to refer to
- the absolute symbols directly.
- .s3
- One technique sometimes useful
- is to call
- .it sbrk(0),
- which returns the value of the current program break,
- instead of referring to
- .it &end,
- which yields the program break at the instant execution started.
- .s3
- These symbols are accessible from assembly
- language
- if it is remembered that they should be prefixed by
- `\*_'
- .sh "SEE ALSO"
- break (II), alloc (III)
- .sh BUGS
-