Simon Glass | 8a3e035 | 2012-02-15 15:51:16 -0800 | [diff] [blame] | 1 | /* |
| 2 | * decls for symbols defined in the linker script |
| 3 | * |
| 4 | * Copyright (c) 2012 The Chromium OS Authors. |
| 5 | * |
| 6 | * Licensed under the GPL-2 or later. |
| 7 | */ |
| 8 | |
| 9 | #ifndef __SANDBOX_SECTIONS_H |
| 10 | #define __SANDBOX_SECTIONS_H |
| 11 | |
Simon Glass | 9bce37c | 2013-03-05 14:39:37 +0000 | [diff] [blame] | 12 | #include <asm-generic/sections.h> |
| 13 | |
Simon Glass | 64367c8 | 2013-12-03 16:43:23 -0700 | [diff] [blame] | 14 | struct sandbox_cmdline_option; |
Simon Glass | 8a3e035 | 2012-02-15 15:51:16 -0800 | [diff] [blame] | 15 | |
Marek Behún | 184c4af | 2021-05-20 13:24:06 +0200 | [diff] [blame] | 16 | static inline struct sandbox_cmdline_option ** |
| 17 | __u_boot_sandbox_option_start(void) |
| 18 | { |
| 19 | static char start[0] __aligned(4) __attribute__((unused)) |
Andrew Scull | c6cb99b | 2022-05-30 10:00:03 +0000 | [diff] [blame] | 20 | __section("_u_boot_sandbox_getopt_start"); |
Marek Behún | 184c4af | 2021-05-20 13:24:06 +0200 | [diff] [blame] | 21 | |
| 22 | return (struct sandbox_cmdline_option **)&start; |
| 23 | } |
| 24 | |
| 25 | static inline struct sandbox_cmdline_option ** |
| 26 | __u_boot_sandbox_option_end(void) |
| 27 | { |
| 28 | static char end[0] __aligned(4) __attribute__((unused)) |
Andrew Scull | c6cb99b | 2022-05-30 10:00:03 +0000 | [diff] [blame] | 29 | __section("_u_boot_sandbox_getopt_end"); |
Marek Behún | 184c4af | 2021-05-20 13:24:06 +0200 | [diff] [blame] | 30 | |
| 31 | return (struct sandbox_cmdline_option **)&end; |
| 32 | } |
Simon Glass | 8a3e035 | 2012-02-15 15:51:16 -0800 | [diff] [blame] | 33 | |
| 34 | static inline size_t __u_boot_sandbox_option_count(void) |
| 35 | { |
Marek Behún | 184c4af | 2021-05-20 13:24:06 +0200 | [diff] [blame] | 36 | return __u_boot_sandbox_option_end() - __u_boot_sandbox_option_start(); |
Simon Glass | 8a3e035 | 2012-02-15 15:51:16 -0800 | [diff] [blame] | 37 | } |
| 38 | |
| 39 | #endif |