summaryrefslogtreecommitdiff
path: root/definitions.tex
blob: 68dcf799592b67c2f920dd6263c45b805d928321 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
\newglossaryentry{symbol}
{
  name=symbol,
  description={A function or variable (a named thing) provided by or used by a \gls{DSO}}
}

\newacronym{RR}{RR}{Relocation Record}

\newacronym{PLT}{PLT}{Procedure Linkage Table}

\newglossaryentry{GOT}
{
  name={GOT},
  long={Global Offset Table},
  description={A table of \glspl{RR}, one for each external \gls{symbol}},
}

\newglossaryentry{DSO}
{
  name={DSO},
  description={\glsentrylong{DSO}: A program, a library or a loadable module used to make a 
               working dynamically linked application},
  long={Dynamic Shared Object}
}

\newglossaryentry{ELF}
{
  name={ELF},
  description={\glsentrylong{ELF}: A specific \gls{DSO} format used by many unix-ish platforms},
  long={Executable and Linkable Format}
}

\newglossaryentry{linker}
{
  name=linker,
  description={Specifically, the run-time dynamic linker - the part of 
               system responsible for taking a set of DSOs and assembling
               them into a working, running program}
}

\newglossaryentry{stack}
{
  name=stack,
  description={Area of memory where arguments for [and return values from]
               functions are stored during function calls}
}

\newglossaryentry{calling convention}
{
  name=calling convention,
  description={The rules explaining how arguments and return value(s) should be passed between calling code and called function}
}

\newglossaryentry{foreign function}
{
  name=foreign function,
  description={A function invoked by one \gls{DSO} that is defined in another}
}