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