Skip to content

Commit 0735f79

Browse files
usbalbinrichardeoin
authored andcommitted
allow static_mut_refs
1 parent 8f1db6b commit 0735f79

17 files changed

+67
-8
lines changed

examples/dma.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@ fn main() -> ! {
6666
value.as_mut_ptr().write(rng.gen().unwrap());
6767
}
6868
}
69-
unsafe { SOURCE_BUFFER.assume_init_mut() }
69+
#[allow(static_mut_refs)] // TODO: Fix this
70+
unsafe {
71+
SOURCE_BUFFER.assume_init_mut()
72+
}
7073
};
7174
// Save a copy on the stack so we can check it later
7275
let source_buffer_cloned = *source_buffer;
@@ -102,6 +105,7 @@ fn main() -> ! {
102105
while !transfer.get_transfer_complete_flag() {}
103106

104107
// Now the target memory is actually initialised
108+
#[allow(static_mut_refs)] // TODO: Fix this
105109
let target_buffer: &'static mut [u32; 20] =
106110
unsafe { TARGET_BUFFER.assume_init_mut() };
107111

examples/ethernet-nucleo-h743zi2.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ fn main() -> ! {
114114

115115
let mac_addr = smoltcp::wire::EthernetAddress::from_bytes(&MAC_ADDRESS);
116116
let (_eth_dma, eth_mac) = unsafe {
117+
#[allow(static_mut_refs)] // TODO: Fix this
117118
DES_RING.write(ethernet::DesRing::new());
118119

119120
ethernet::new(
@@ -131,6 +132,7 @@ fn main() -> ! {
131132
rmii_txd0,
132133
rmii_txd1,
133134
),
135+
#[allow(static_mut_refs)] // TODO: Fix this
134136
DES_RING.assume_init_mut(),
135137
mac_addr,
136138
ccdr.peripheral.ETH1MAC,

examples/ethernet-rtic-nucleo-h723zg.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ mod app {
164164

165165
let mac_addr = smoltcp::wire::EthernetAddress::from_bytes(&MAC_ADDRESS);
166166
let (eth_dma, eth_mac) = unsafe {
167+
#[allow(static_mut_refs)] // TODO: Fix this
167168
DES_RING.write(ethernet::DesRing::new());
168169

169170
ethernet::new(
@@ -181,6 +182,7 @@ mod app {
181182
rmii_txd0,
182183
rmii_txd1,
183184
),
185+
#[allow(static_mut_refs)] // TODO: Fix this
184186
DES_RING.assume_init_mut(),
185187
mac_addr,
186188
ccdr.peripheral.ETH1MAC,
@@ -198,6 +200,7 @@ mod app {
198200

199201
// unsafe: mutable reference to static storage, we only do this once
200202
let store = unsafe {
203+
#[allow(static_mut_refs)] // TODO: Fix this
201204
let store_ptr = STORE.as_mut_ptr();
202205

203206
// Initialise the socket_storage field. Using `write` instead of
@@ -208,6 +211,7 @@ mod app {
208211

209212
// Now that all fields are initialised we can safely use
210213
// assume_init_mut to return a mutable reference to STORE
214+
#[allow(static_mut_refs)] // TODO: Fix this
211215
STORE.assume_init_mut()
212216
};
213217

examples/ethernet-rtic-stm32h735g-dk.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ mod app {
158158

159159
let mac_addr = smoltcp::wire::EthernetAddress::from_bytes(&MAC_ADDRESS);
160160
let (eth_dma, eth_mac) = unsafe {
161+
#[allow(static_mut_refs)] // TODO: Fix this
161162
DES_RING.write(ethernet::DesRing::new());
162163

163164
ethernet::new(
@@ -175,6 +176,7 @@ mod app {
175176
rmii_txd0,
176177
rmii_txd1,
177178
),
179+
#[allow(static_mut_refs)] // TODO: Fix this
178180
DES_RING.assume_init_mut(),
179181
mac_addr,
180182
ccdr.peripheral.ETH1MAC,
@@ -192,6 +194,7 @@ mod app {
192194

193195
// unsafe: mutable reference to static storage, we only do this once
194196
let store = unsafe {
197+
#[allow(static_mut_refs)] // TODO: Fix this
195198
let store_ptr = STORE.as_mut_ptr();
196199

197200
// Initialise the socket_storage field. Using `write` instead of
@@ -202,6 +205,7 @@ mod app {
202205

203206
// Now that all fields are initialised we can safely use
204207
// assume_init_mut to return a mutable reference to STORE
208+
#[allow(static_mut_refs)] // TODO: Fix this
205209
STORE.assume_init_mut()
206210
};
207211

examples/ethernet-rtic-stm32h747i-disco.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ mod app {
168168

169169
let mac_addr = smoltcp::wire::EthernetAddress::from_bytes(&MAC_ADDRESS);
170170
let (eth_dma, eth_mac) = unsafe {
171+
#[allow(static_mut_refs)] // TODO: Fix this
171172
DES_RING.write(ethernet::DesRing::new());
172173

173174
ethernet::new(
@@ -185,6 +186,7 @@ mod app {
185186
rmii_txd0,
186187
rmii_txd1,
187188
),
189+
#[allow(static_mut_refs)] // TODO: Fix this
188190
DES_RING.assume_init_mut(),
189191
mac_addr,
190192
ccdr.peripheral.ETH1MAC,
@@ -202,6 +204,7 @@ mod app {
202204

203205
// unsafe: mutable reference to static storage, we only do this once
204206
let store = unsafe {
207+
#[allow(static_mut_refs)] // TODO: Fix this
205208
let store_ptr = STORE.as_mut_ptr();
206209

207210
// Initialise the socket_storage field. Using `write` instead of
@@ -212,6 +215,7 @@ mod app {
212215

213216
// Now that all fields are initialised we can safely use
214217
// assume_init_mut to return a mutable reference to STORE
218+
#[allow(static_mut_refs)] // TODO: Fix this
215219
STORE.assume_init_mut()
216220
};
217221

examples/ethernet-stm32h747i-disco.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ fn main() -> ! {
8787

8888
let mac_addr = smoltcp::wire::EthernetAddress::from_bytes(&MAC_ADDRESS);
8989
let (_eth_dma, eth_mac) = unsafe {
90+
#[allow(static_mut_refs)] // TODO: Fix this
9091
DES_RING.write(ethernet::DesRing::new());
9192

9293
ethernet::new(
@@ -104,6 +105,7 @@ fn main() -> ! {
104105
rmii_txd0,
105106
rmii_txd1,
106107
),
108+
#[allow(static_mut_refs)] // TODO: Fix this
107109
DES_RING.assume_init_mut(),
108110
mac_addr,
109111
ccdr.peripheral.ETH1MAC,

examples/i2c4_bdma.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,10 @@ fn main() -> ! {
104104
Transfer::init(
105105
streams.0,
106106
i2c,
107-
unsafe { BUFFER.assume_init_mut() },
107+
#[allow(static_mut_refs)] // TODO: Fix this
108+
unsafe {
109+
BUFFER.assume_init_mut()
110+
},
108111
None,
109112
config,
110113
);
@@ -136,6 +139,7 @@ fn I2C4_EV() {
136139
info!("I2C transfer complete!");
137140

138141
// Look at BUFFER, which we expect to be initialised
142+
#[allow(static_mut_refs)] // TODO: Fix this
139143
let buffer: &'static [u8; 10] = unsafe { BUFFER.assume_init_mut() };
140144

141145
assert_eq!(buffer[0], 0xBE);

examples/mdma.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ fn main() -> ! {
6161
value.as_mut_ptr().write(0x11223344u32);
6262
}
6363
}
64-
unsafe { SOURCE_BUFFER.assume_init_mut() }
64+
#[allow(static_mut_refs)] // TODO: Fix this
65+
unsafe {
66+
SOURCE_BUFFER.assume_init_mut()
67+
}
6568
};
6669

6770
//
@@ -118,6 +121,7 @@ fn main() -> ! {
118121
//
119122

120123
// Reset source buffer
124+
#[allow(static_mut_refs)] // TODO: Fix this
121125
let source_buffer = unsafe { SOURCE_BUFFER.assume_init_mut() };
122126
*source_buffer = [0xAABBCCDD; 200];
123127

examples/mdma_bursts.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ fn main() -> ! {
7373
value.as_mut_ptr().write(0x11223344u32);
7474
}
7575
}
76-
unsafe { SOURCE_BUFFER.assume_init_mut() }
76+
#[allow(static_mut_refs)] // TODO: Fix this
77+
unsafe {
78+
SOURCE_BUFFER.assume_init_mut()
79+
}
7780
};
7881

7982
// NOTE(unsafe): TARGET_BUFFER must also be initialised to prevent undefined
@@ -92,8 +95,10 @@ fn main() -> ! {
9295
let mut transfer: Transfer<_, _, MemoryToMemory<u32>, _, _> = {
9396
// unsafe: Both source and destination live at least as long as this
9497
// transfer
98+
#[allow(static_mut_refs)] // TODO: Fix this
9599
let source: &'static mut [u32; 200] =
96100
unsafe { SOURCE_BUFFER.assume_init_mut() };
101+
#[allow(static_mut_refs)] // TODO: Fix this
97102
let target: &'static mut [u32; 200] =
98103
unsafe { TARGET_BUFFER.assume_init_mut() }; // uninitialised memory
99104

examples/sai_dma_passthru.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ fn main() -> ! {
110110
dma::dma::StreamsTuple::new(dp.DMA1, ccdr.peripheral.DMA1);
111111

112112
// dma1 stream 0
113+
#[allow(static_mut_refs)] // TODO: Fix this
113114
let tx_buffer: &'static mut [u32; DMA_BUFFER_LENGTH] =
114115
unsafe { TX_BUFFER.assume_init_mut() }; // uninitialised memory
115116
let dma_config = dma::dma::DmaConfig::default()
@@ -128,6 +129,7 @@ fn main() -> ! {
128129
);
129130

130131
// dma1 stream 1
132+
#[allow(static_mut_refs)] // TODO: Fix this
131133
let rx_buffer: &'static mut [u32; DMA_BUFFER_LENGTH] =
132134
unsafe { RX_BUFFER.assume_init_mut() }; // uninitialised memory
133135
let dma_config = dma_config
@@ -179,6 +181,7 @@ fn main() -> ! {
179181
static mut TRANSFER_DMA1_STR1: MaybeUninit<Option<TransferDma1Str1>> =
180182
MaybeUninit::uninit();
181183
unsafe {
184+
#[allow(static_mut_refs)] // TODO: Fix this
182185
TRANSFER_DMA1_STR1.write(None);
183186
}
184187

@@ -220,6 +223,7 @@ fn main() -> ! {
220223
>;
221224

222225
unsafe {
226+
#[allow(static_mut_refs)] // TODO: Fix this
223227
TRANSFER_DMA1_STR1.write(Some(dma1_str1)); // drops previous None
224228
info!(
225229
"{:?}, {:?}",
@@ -230,13 +234,16 @@ fn main() -> ! {
230234

231235
#[interrupt]
232236
fn DMA1_STR1() {
237+
#[allow(static_mut_refs)] // TODO: Fix this
233238
let tx_buffer: &'static mut [u32; DMA_BUFFER_LENGTH] =
234239
unsafe { TX_BUFFER.assume_init_mut() };
240+
#[allow(static_mut_refs)] // TODO: Fix this
235241
let rx_buffer: &'static mut [u32; DMA_BUFFER_LENGTH] =
236242
unsafe { RX_BUFFER.assume_init_mut() };
237243

238244
let stereo_block_length = tx_buffer.len() / 2;
239245

246+
#[allow(static_mut_refs)] // TODO: Fix this
240247
if let Some(transfer) = unsafe { TRANSFER_DMA1_STR1.assume_init_mut() }
241248
{
242249
let skip = if transfer.get_half_transfer_flag() {

0 commit comments

Comments
 (0)