NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TimerProtocol Struct Reference

#include <service_timer.h>

Inheritance diagram for TimerProtocol:
GenericProtocol ParentProtocol TimerHelper

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 &timestamp)
 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 ()
Utcbinit_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 Utcbinit_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

Member Enumeration Documentation

anonymous enum
Enumerator:
TYPE_REQUEST_TIMER 
TYPE_REQUEST_TIME 
TYPE_REQUEST_LAST_TIMEOUT 

Constructor & Destructor Documentation

TimerProtocol::TimerProtocol ( unsigned  cap_base,
unsigned  instance = 0 
)
inline

Member Function Documentation

unsigned TimerProtocol::time ( Utcb utcb,
timevalue wallclocktime,
timevalue timestamp 
)
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.

unsigned TimerProtocol::timer ( Utcb utcb,
timevalue  abstime 
)
inline

Program timer for timer.abstime.

unsigned TimerProtocol::triggered_timeouts ( Utcb utcb,
unsigned &  count 
)
inline

Member Data Documentation

const unsigned long TimerProtocol::WALLCLOCK_FREQUENCY = Config::WALLCLOCK_FREQUENCY
static

Timer infrastructure.

There is no frequency and clock here, as all is based on the same clocksource.


The documentation for this struct was generated from the following file: