1 /* Copyright (C) 2000-2022 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library; if not, see 16 <https://www.gnu.org/licenses/>. */ 17 18 #include <stdlib.h> 19 #include "vismod.h" 20 21 int protlocal(void)22protlocal (void) 23 { 24 return 0x40; 25 } 26 asm (".protected protlocal"); 27 28 29 int calllocal2(void)30calllocal2 (void) 31 { 32 return protlocal () + 0x100; 33 } 34 35 int getlocal2(void)36(*getlocal2 (void)) (void) 37 { 38 return protlocal; 39 } 40 41 int protinmod(void)42protinmod (void) 43 { 44 return 0x4000; 45 } 46 asm (".protected protinmod"); 47 48 int callinmod2(void)49callinmod2 (void) 50 { 51 return protinmod () + 0x10000; 52 } 53 54 int getinmod2(void)55(*getinmod2 (void)) (void) 56 { 57 return protinmod; 58 } 59 60 int protitcpt(void)61protitcpt (void) 62 { 63 return 0x400000; 64 } 65 asm (".protected protitcpt"); 66 67 int callitcpt2(void)68callitcpt2 (void) 69 { 70 return protitcpt () + 0x1000000; 71 } 72 73 int getitcpt2(void)74(*getitcpt2 (void)) (void) 75 { 76 return protitcpt; 77 } 78 79 const char *protvarlocal = __FILE__; 80 asm (".protected protvarlocal"); 81 82 const char ** getvarlocal2(void)83getvarlocal2 (void) 84 { 85 return &protvarlocal; 86 } 87 88 const char *protvarinmod = __FILE__; 89 asm (".protected protvarinmod"); 90 91 const char ** getvarinmod2(void)92getvarinmod2 (void) 93 { 94 return &protvarinmod; 95 } 96 97 const char *protvaritcpt = __FILE__; 98 asm (".protected protvaritcpt"); 99 100 const char ** getvaritcpt2(void)101getvaritcpt2 (void) 102 { 103 return &protvaritcpt; 104 } 105 106 /* We must never call these functions. */ 107 int callitcpt3(void)108callitcpt3 (void) 109 { 110 abort (); 111 } 112 113 int getitcpt3(void)114(*getitcpt3 (void)) (void) 115 { 116 abort (); 117 } 118 119 const char ** getvaritcpt3(void)120getvaritcpt3 (void) 121 { 122 abort (); 123 } 124