blob: 5f6e05eb1d94905294615a97c8b0fed8ebd7e451 [file] [log] [blame]
Pierre-Clément Tosi9a658f72022-10-10 15:18:54 +01001// Copyright 2022, The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Linker-defined symbols.
16
17extern "C" {
18 /// Stack canary value
19 pub static __stack_chk_guard: u64;
20 /// First byte beyond the pre-loaded binary.
21 pub static bin_end: u8;
Pierre-Clément Tosi9a658f72022-10-10 15:18:54 +010022 /// First byte of the `.bss` section.
23 pub static bss_begin: u8;
24 /// First byte beyond the `.bss` section.
25 pub static bss_end: u8;
26 /// First byte of the (loaded) `.data` section.
27 pub static data_begin: u8;
28 /// First byte beyond the (loaded) `.data` section.
29 pub static data_end: u8;
30 /// First byte of the pre-loaded `.data` section.
31 pub static data_lma: u8;
32 /// First byte of the `.dtb` section.
33 pub static dtb_begin: u8;
34 /// First byte beyond the `.dtb` section.
35 pub static dtb_end: u8;
Pierre-Clément Tosi23aba522023-04-21 17:03:50 +010036 /// First byte past the region available for the stack.
37 pub static init_stack_pointer: u8;
Pierre-Clément Tosi9a658f72022-10-10 15:18:54 +010038 /// First byte of the `.rodata` section.
39 pub static rodata_begin: u8;
40 /// First byte beyond the `.rodata` section.
41 pub static rodata_end: u8;
Pierre-Clément Tosi23aba522023-04-21 17:03:50 +010042 /// First byte of the region available for the stack.
43 pub static stack_limit: u8;
Pierre-Clément Tosi9a658f72022-10-10 15:18:54 +010044 /// First byte of the `.text` section.
45 pub static text_begin: u8;
46 /// First byte beyond the `.text` section.
47 pub static text_end: u8;
48}