|
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.