Skip to content

Commit 94580b4

Browse files
committed
[sam] Fix SAMx7x DMA LinkedListTransfer copy construction and assignment
1 parent 182948d commit 94580b4

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/modm/platform/dma/samx7x/transfer.hpp

+3
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ class LinkedListTransfer : public DmaBase
126126

127127
constexpr LinkedListTransfer();
128128

129+
constexpr LinkedListTransfer(const LinkedListTransfer& other);
130+
constexpr LinkedListTransfer& operator=(const LinkedListTransfer& other);
131+
129132
template<std::size_t index, typename... Ds>
130133
friend auto descriptor(LinkedListTransfer<Ds...>& transfer);
131134

src/modm/platform/dma/samx7x/transfer_impl.hpp

+16
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,22 @@ constexpr LinkedListTransfer<Descriptors...>::LinkedListTransfer()
188188
detail::SetupList<0, std::tuple<Descriptors...>>::setup(descriptors_);
189189
}
190190

191+
template<typename... Descriptors>
192+
constexpr LinkedListTransfer<Descriptors...>::LinkedListTransfer(const LinkedListTransfer& other)
193+
: descriptors_{other.descriptors_}
194+
{
195+
detail::SetupList<0, std::tuple<Descriptors...>>::setAddress(descriptors_);
196+
}
197+
198+
template<typename... Descriptors>
199+
constexpr LinkedListTransfer<Descriptors...>&
200+
LinkedListTransfer<Descriptors...>::operator=(const LinkedListTransfer& other)
201+
{
202+
descriptors_ = other.descriptors_;
203+
detail::SetupList<0, std::tuple<Descriptors...>>::setAddress(descriptors_);
204+
return *this;
205+
}
206+
191207
template<std::size_t index, typename... Descriptors>
192208
auto descriptor(LinkedListTransfer<Descriptors...>& transfer)
193209
{

0 commit comments

Comments
 (0)