NOVA User-Level Environment
Version testbox/changed-memory-timing-317-g320d8b5
|
#include <service_timer.h>
Classes | |
struct | MessageTime |
struct | MessageTimer |
Public Types | |
enum | { TYPE_REQUEST_TIMER = ParentProtocol::TYPE_GENERIC_END, TYPE_REQUEST_TIME, TYPE_REQUEST_LAST_TIMEOUT } |
Public Types inherited from GenericProtocol | |
enum | { CAP_PSEUDONYM, CAP_LOCK, CAP_SERVER_SESSION, CAP_SERVER_PT } |
Client capabilities used to talk to the service. More... | |
Public Types inherited from ParentProtocol | |
enum | { TYPE_INVALID = 0, TYPE_OPEN, TYPE_CLOSE, TYPE_GENERIC_END, TYPE_GET_PORTAL, TYPE_REGISTER, TYPE_UNREGISTER, TYPE_GET_QUOTA, TYPE_SINGLETON, TYPE_REQ_KILL, TYPE_SIGNAL } |
Protocol operations (message types). More... | |
enum | { CAP_CHILD_ID = Config::CAP_PARENT_BEGIN, CAP_SC_USAGE, CAP_CHILD_EC, CAP_PARENT_ID, CAP_PT_PERCPU, CAP_PT_IDLE_SCS = CAP_PT_PERCPU + Config::MAX_CPUS } |
Capabilities used by parent to construct child. More... |
Public Member Functions | |
unsigned | triggered_timeouts (Utcb &utcb, unsigned &count) |
unsigned | time (Utcb &utcb, timevalue &wallclocktime, timevalue ×tamp) |
Returns the wall clock time in microseconds. | |
unsigned | timer (Utcb &utcb, timevalue abstime) |
Program timer for timer.abstime. | |
TimerProtocol (unsigned cap_base, unsigned instance=0) | |
Public Member Functions inherited from GenericProtocol | |
unsigned | call_server (Utcb &utcb, bool drop_frame) |
Call the server in a loop to resolve all faults. | |
unsigned | call_server_drop (Utcb &utcb) |
unsigned | call_server_keep (Utcb &utcb) |
template<class T > | |
void | destroy (Utcb &utcb, unsigned portal_num, T *obj) |
Destroy the object. | |
void | close (Utcb &utcb, unsigned portal_num, bool revoke_lock=true, bool _release_pseudonym=true) |
Close the session to the parent. | |
unsigned | get_notify_sm () |
Utcb & | init_frame (Utcb &utcb, unsigned op) |
GenericProtocol (const char *service, unsigned instance, unsigned cap_base, bool blocking, unsigned session_base=~0u) | |
Public Member Functions inherited from ParentProtocol | |
static_assert ((CAP_PT_PERCPU+Config::MAX_CPUS)< (1U<< Config::CAP_RESERVED_ORDER),"Capability Space misconfiguration.") |
Static Public Attributes | |
static const unsigned long | WALLCLOCK_FREQUENCY = Config::WALLCLOCK_FREQUENCY |
Timer infrastructure. |
Additional Inherited Members | |
Static Public Member Functions inherited from GenericProtocol | |
static Utcb & | init_frame_noid (Utcb &utcb, unsigned op) |
Protected Attributes inherited from GenericProtocol | |
const char * | _service |
unsigned | _instance |
unsigned | _cap_base |
Base of the capability range. This cap refers to CAP_PSEUDONYM. | |
unsigned | _session_base |
Base of the session portals. | |
Semaphore | _lock |
bool | _blocking |
bool | _disabled |
|
inline |
|
inline |
Returns the wall clock time in microseconds.
It also contains a timestamp of the Motherboard clock in microseconds, to be able to adjust to the time already passed and to detect out-of-date values.
Program timer for timer.abstime.
|
inline |
|
static |
Timer infrastructure.
There is no frequency and clock here, as all is based on the same clocksource.