@@ -125,39 +125,47 @@ impl fmt::Debug for Frame {
125
125
}
126
126
}
127
127
128
- #[ cfg( all( target_env = "sgx" , target_vendor = "fortanix" , not( feature = "std" ) ) ) ]
129
- mod sgx_no_std_image_base {
128
+ #[ cfg( all( target_env = "sgx" , target_vendor = "fortanix" , not( miri ) ) ) ]
129
+ mod sgx_image_base {
130
130
use core:: ffi:: c_void;
131
- use core:: sync:: atomic:: { AtomicUsize , Ordering :: SeqCst } ;
132
131
133
- static IMAGE_BASE : AtomicUsize = AtomicUsize :: new ( 0 ) ;
132
+ #[ cfg( not( feature = "std" ) ) ]
133
+ pub ( crate ) mod imp {
134
+ use core:: sync:: atomic:: { AtomicUsize , Ordering :: SeqCst } ;
134
135
135
- /// Set the image base address. This is only available for Fortanix SGX
136
- /// target when the `std` feature is not enabled. This can be used in the
137
- /// standard library to set the correct base address.
138
- #[ doc( hidden) ]
139
- pub fn set_image_base ( base_addr : * mut c_void ) {
140
- IMAGE_BASE . store ( base_addr as _ , SeqCst ) ;
141
- }
136
+ static IMAGE_BASE : AtomicUsize = AtomicUsize :: new ( 0 ) ;
142
137
143
- pub ( crate ) fn get_image_base ( ) -> * mut c_void {
144
- IMAGE_BASE . load ( SeqCst ) as _
145
- }
146
- }
138
+ /// Set the image base address. This is only available for Fortanix SGX
139
+ /// target when the `std` feature is not enabled. This can be used in the
140
+ /// standard library to set the correct base address.
141
+ #[ doc( hidden) ]
142
+ pub fn set_image_base ( base_addr : * mut c_void ) {
143
+ IMAGE_BASE . store ( base_addr as _ , SeqCst ) ;
144
+ }
147
145
148
- #[ cfg( all( target_env = "sgx" , target_vendor = "fortanix" , not( feature = "std" ) ) ) ]
149
- pub use self :: sgx_no_std_image_base:: set_image_base;
146
+ pub ( crate ) fn get_image_base ( ) -> * mut c_void {
147
+ IMAGE_BASE . load ( SeqCst ) as _
148
+ }
149
+ }
150
150
151
- #[ cfg( all( target_env = "sgx" , target_vendor = "fortanix" , not( feature = "std" ) ) ) ]
152
- #[ deny( unused) ]
153
- pub ( crate ) use self :: sgx_no_std_image_base:: get_image_base;
151
+ #[ cfg( feature = "std" ) ]
152
+ mod imp {
153
+ pub ( crate ) fn get_image_base ( ) -> * mut c_void {
154
+ std:: os:: fortanix_sgx:: mem:: image_base ( ) as _
155
+ }
156
+ }
154
157
155
- #[ cfg( all( target_env = "sgx" , target_vendor = "fortanix" , feature = "std" ) ) ]
156
- #[ deny( unused) ]
157
- pub ( crate ) fn get_image_base ( ) -> * mut c_void {
158
- std:: os:: fortanix_sgx:: mem:: image_base ( ) as _
158
+ pub ( crate ) use imp:: get_image_base;
159
159
}
160
160
161
+ #[ cfg( all(
162
+ target_env = "sgx" ,
163
+ target_vendor = "fortanix" ,
164
+ not( feature = "std" ) ,
165
+ not( miri)
166
+ ) ) ]
167
+ pub use sgx_image_base:: imp:: set_image_base;
168
+
161
169
cfg_if:: cfg_if! {
162
170
// This needs to come first, to ensure that
163
171
// Miri takes priority over the host platform
0 commit comments