Go to the documentation of this file.
18 #ifndef __LIBIPC_MEMORYCHANNEL_H
19 #define __LIBIPC_MEMORYCHANNEL_H
21 #include <FreeNOS/System.h>
88 const bool hardReset =
true);
106 const bool hardReset =
true);
Unidirectional point-to-point messaging channel.
const Size m_maximumMessages
Maximum number of messages that can be stored.
Size index
Index where the ring buffer starts.
Result setVirtual(const Address data, const Address feedback, const bool hardReset=true)
Set memory pages by virtual address.
Result setPhysical(const Address data, const Address feedback, const bool hardReset=true)
Set memory pages by physical address.
Input/Output operations specific to the ARM architecture.
MemoryChannel(const Mode mode, const Size messageSize)
Constructor.
unsigned long Address
A memory address.
Arch::IO m_data
The data page.
Defines in-memory ring header.
virtual ~MemoryChannel()
Destructor.
unsigned int Size
Any sane size indicator cannot go negative.
virtual Result write(const void *buffer)
Write a message.
bool operator!=(const MemoryChannel &ch) const
Unidirectional point-to-point channel using shared memory.
virtual Result flush()
Flush message buffers.
virtual Result read(void *buffer)
Read a message.
Result reset(const bool hardReset)
Reset to initial state.
Arch::IO m_feedback
The feedback page.
Result unmap()
Unmap memory pages from virtual address space.
Result flushPage(const Address page) const
Flush memory page.
RingHead m_head
Local RingHead.
struct MemoryChannel::RingHead RingHead
Defines in-memory ring header.
bool operator==(const MemoryChannel &ch) const