Go to the documentation of this file.
18 #ifndef __KERNEL_PROCESSSHARES_H
19 #define __KERNEL_PROCESSSHARES_H
virtual ~ProcessShares()
Destructor function.
Size tagId
Share tag id is defined by the application.
Virtual memory abstract interface.
ProcessID pid
Remote process id for this share.
Represents a process which may run on the host.
Index is a N-sized array of pointers to items of type T.
u32 ProcessID
Process Identification Number.
unsigned long Address
A memory address.
static const Size MaximumMemoryShares
Maximum number of memory shares that a single process can have.
Memory::Range range
Physical memory address range.
Size coreId
CoreId for the other process.
ProcessShares(ProcessID pid)
Constructor.
unsigned int Size
Any sane size indicator cannot go negative.
Unidirectional point-to-point channel using shared memory.
Result readShare(MemoryShare *share)
Read memory share by Process, Core and Tag IDs.
Result createShare(ProcessShares &instance, MemoryShare *share)
MemoryShare * findShare(const ProcessID pid, const Size coreId, const Size tagId)
Retrieve MemoryShare object.
bool attached
True if the share is attached (used by both processes)
MemoryContext * getMemoryContext()
Get MemoryContext object.
Result releaseShare(MemoryShare *share, Size idx)
Release one memory share.
const ProcessID getProcessID() const
Get process.
Index< MemoryShare, MaximumMemoryShares > m_shares
Contains all memory shares.
MemoryContext * m_memory
MemoryContext instance.
Result removeShares(ProcessID pid)
Remove all shares for the given ProcessID.
Result setMemoryContext(MemoryContext *context)
Set MemoryContext.
ProcessID m_pid
ProcessID associated to these shares.
Manages memory shares for a Process.