F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Os Namespace Reference

Namespaces

 FileSystem
 
 ValidateFile
 

Classes

class  BareQueueHandle
 
class  BareTaskHandle
 
class  BufferQueue
 A generic buffer queue data structure. More...
 
class  Directory
 
class  Event
 
struct  FIFOQueue
 
class  File
 
class  InterruptLock
 
class  IntervalTimer
 
class  IPCQueue
 
class  LocklessQueue
 
class  Log
 
class  MaxHeap
 A stable max heap data structure. More...
 
class  Mem
 
class  Mutex
 
struct  PriorityQueue
 
class  Queue
 
class  QueueHandle
 
class  QueueRegistry
 
class  QueueString
 
class  Task
 forward declaration More...
 
class  TaskId
 
class  TaskLock
 
class  TaskRegistry
 
class  TaskRunner
 
class  TaskString
 
class  ValidatedFile
 A validated file. More...
 
class  WatchdogTimer
 

Typedefs

typedef bool(* OpenInterceptor) (Os::File::Status &status, const char *fileName, Os::File::Mode mode, void *ptr)
 
typedef bool(* ReadInterceptor) (Os::File::Status &status, void *buffer, NATIVE_INT_TYPE &size, bool waitForFull, void *ptr)
 
typedef bool(* WriteInterceptor) (Os::File::Status &status, const void *buffer, NATIVE_INT_TYPE &size, bool waitForDone, void *ptr)
 
typedef bool(* SeekInterceptor) (Os::File::Status &status, NATIVE_INT_TYPE offset, bool absolute, void *ptr)
 

Enumerations

enum  StatusFileType { FileType, HashFileType }
 

Functions

Queue::QueueStatus bareSendNonBlock (BareQueueHandle &handle, const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority)
 
Queue::QueueStatus bareSendBlock (BareQueueHandle &handle, const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority)
 
Queue::QueueStatus bareReceiveNonBlock (BareQueueHandle &handle, U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority)
 
Queue::QueueStatus bareReceiveBlock (BareQueueHandle &handle, U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority)
 
Queue::QueueStatus sendNonBlockIPCStub (QueueHandle *queueHandle, const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority)
 
Queue::QueueStatus sendBlockIPCStub (QueueHandle *queueHandle, const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority)
 
Queue::QueueStatus receiveNonBlockIPCStub (QueueHandle *queueHandle, U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority)
 
Queue::QueueStatus receiveBlockIPCStub (QueueHandle *queueHandle, U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority)
 
NATIVE_UINT_TYPE checkoutIndex (PriorityQueue *pQueue, NATIVE_UINT_TYPE depth)
 
void returnIndex (PriorityQueue *pQueue, NATIVE_UINT_TYPE depth, NATIVE_UINT_TYPE index)
 
Queue::QueueStatus sendNonBlock (QueueHandle *queueHandle, const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority)
 
Queue::QueueStatus sendBlock (QueueHandle *queueHandle, const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority)
 
Queue::QueueStatus receiveNonBlock (QueueHandle *queueHandle, U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority)
 
Queue::QueueStatus receiveBlock (QueueHandle *queueHandle, U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority)
 
void registerReadInterceptor (ReadInterceptor funcPtr, void *ptr)
 
void clearReadInterceptor (void)
 
void registerWriteInterceptor (WriteInterceptor funcPtr, void *ptr)
 
void clearWriteInterceptor (void)
 
void registerOpenInterceptor (OpenInterceptor funcPtr, void *ptr)
 
void clearOpenInterceptor (void)
 
void registerSeekInterceptor (SeekInterceptor funcPtr, void *ptr)
 
void clearSeekInterceptor (void)
 
void setLastError (NATIVE_INT_TYPE error)
 
File::Status computeHash (const char *fileName, Utils::HashBuffer &hashBuffer)
 
File::Status readHash (const char *hashFileName, Utils::HashBuffer &hashBuffer)
 
File::Status writeHash (const char *hashFileName, Utils::HashBuffer hashBuffer)
 
ValidateFile::Status translateStatus (File::Status status, StatusFileType type)
 

Variables

static ReadInterceptor readInterceptor = 0
 
static void * readInterceptorPtr = 0
 
static WriteInterceptor writeInterceptor = 0
 
static void * writeInterceptorPtr = 0
 
static OpenInterceptor openInterceptor = 0
 
static void * openInterceptorPtr = 0
 
static SeekInterceptor seekInterceptor = 0
 
static void * seekInterceptorPtr = 0
 
static NATIVE_INT_TYPE lastError = 0
 

Detailed Description

IntervalTimer.hpp:

 Interval timer provides timing over a set interval to the caller. It is one of the core Os  package supplied items.

IntervalTimerCommon.cpp:

Contains the common functions for interval timer. This set of functions makes no assumption on the format of the RawTime objects and thus it operates through functions that abstract that implementation away, or it is working on the raw values, as raw values.

Note: If the RawTime object is using U32 upper to store seconds and U32 lower to store nano seconds, then X86/IntervalTimer.cpp can be used, and the implementor need only fill in the getRawTime function for the specific OS.

File: Os/Log.hpp Description: this file provides an implementation of the Fw::Logger class that is backed by the Os abstraction layer.

File: Os/LogPrintf.cpp Description: an implementation on the Os::Log abstraction that routes log messages into standard printf calls.

Posix/IntervalTimer.cpp:

The Posix implementation of the interval timer shares the same raw setup as other X86 implementations. That is: the lower U32 of the RawTime is nano-seconds, and the upper U32 of RawTime object is seconds. Thus only the "getRawTime" function differes from the base X86 version of this file.

Queue.hpp:

Queues are used internally to F prime in order to support the messaging between components. The Queue class is used to abstract away from the standard OS-based queue, allowing F prime support multiple OSes in a consistent way.

Like most items in the OS package, the implementation is done in two parts. One part is the file QueueCommon.cpp. It contains the shared code for queues regardless of the OS. The other is a .cpp file containing the OS specific backends for defined functions. (i.e. Posix/Queue.cpp).

X86/IntervalTimer.cpp:

This file supports the core functions of the IntervalTimer for X86 implementations that support the following specification for the "RawTime" object:

RawTime.lower = nanoseconds of time RawTime.upper = seconds of time.

Any implementation that fills "RawTime" via this specification can use these basic implementations.

Note: this file is cloned from the original Linux implementation.

Typedef Documentation

◆ OpenInterceptor

typedef bool(* Os::OpenInterceptor) (Os::File::Status &status, const char *fileName, Os::File::Mode mode, void *ptr)

Definition at line 24 of file FileStubs.hpp.

◆ ReadInterceptor

typedef bool(* Os::ReadInterceptor) (Os::File::Status &status, void *buffer, NATIVE_INT_TYPE &size, bool waitForFull, void *ptr)

Definition at line 25 of file FileStubs.hpp.

◆ SeekInterceptor

typedef bool(* Os::SeekInterceptor) (Os::File::Status &status, NATIVE_INT_TYPE offset, bool absolute, void *ptr)

Definition at line 27 of file FileStubs.hpp.

◆ WriteInterceptor

typedef bool(* Os::WriteInterceptor) (Os::File::Status &status, const void *buffer, NATIVE_INT_TYPE &size, bool waitForDone, void *ptr)

Definition at line 26 of file FileStubs.hpp.

Enumeration Type Documentation

◆ StatusFileType

Enumerator
FileType 
HashFileType 

Definition at line 117 of file ValidateFileCommon.cpp.

Function Documentation

◆ bareReceiveBlock()

Queue::QueueStatus Os::bareReceiveBlock ( BareQueueHandle handle,
U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority 
)

Definition at line 175 of file Queue.cpp.

◆ bareReceiveNonBlock()

Queue::QueueStatus Os::bareReceiveNonBlock ( BareQueueHandle handle,
U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority 
)

Definition at line 144 of file Queue.cpp.

◆ bareSendBlock()

Queue::QueueStatus Os::bareSendBlock ( BareQueueHandle handle,
const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority 
)

Helper function for sending blocking requests. WARNING: since this is for baremetal, this always ASSERTS

Definition at line 102 of file Queue.cpp.

◆ bareSendNonBlock()

Queue::QueueStatus Os::bareSendNonBlock ( BareQueueHandle handle,
const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority 
)

Helper function for sending non-blocking requests.

Definition at line 87 of file Queue.cpp.

◆ checkoutIndex()

NATIVE_UINT_TYPE Os::checkoutIndex ( PriorityQueue pQueue,
NATIVE_UINT_TYPE  depth 
)

Definition at line 43 of file PriorityBufferQueue.cpp.

◆ clearOpenInterceptor()

void Os::clearOpenInterceptor ( void  )

Definition at line 55 of file FileStub.cpp.

◆ clearReadInterceptor()

void Os::clearReadInterceptor ( void  )

Definition at line 37 of file FileStub.cpp.

◆ clearSeekInterceptor()

void Os::clearSeekInterceptor ( void  )

Definition at line 64 of file FileStub.cpp.

◆ clearWriteInterceptor()

void Os::clearWriteInterceptor ( void  )

Definition at line 46 of file FileStub.cpp.

◆ computeHash()

File::Status Os::computeHash ( const char *  fileName,
Utils::HashBuffer hashBuffer 
)

< gets the size of the file (in bytes) at location path

Definition at line 8 of file ValidateFileCommon.cpp.

◆ readHash()

File::Status Os::readHash ( const char *  hashFileName,
Utils::HashBuffer hashBuffer 
)

Definition at line 63 of file ValidateFileCommon.cpp.

◆ receiveBlock()

Queue::QueueStatus Os::receiveBlock ( QueueHandle queueHandle,
U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority 
)

Definition at line 257 of file Queue.cpp.

◆ receiveBlockIPCStub()

Queue::QueueStatus Os::receiveBlockIPCStub ( QueueHandle queueHandle,
U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority 
)

Definition at line 256 of file IPCQueueStub.cpp.

◆ receiveNonBlock()

Queue::QueueStatus Os::receiveNonBlock ( QueueHandle queueHandle,
U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority 
)

Definition at line 201 of file Queue.cpp.

◆ receiveNonBlockIPCStub()

Queue::QueueStatus Os::receiveNonBlockIPCStub ( QueueHandle queueHandle,
U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority 
)

Definition at line 200 of file IPCQueueStub.cpp.

◆ registerOpenInterceptor()

void Os::registerOpenInterceptor ( OpenInterceptor  funcPtr,
void *  ptr 
)

Definition at line 50 of file FileStub.cpp.

◆ registerReadInterceptor()

void Os::registerReadInterceptor ( ReadInterceptor  funcPtr,
void *  ptr 
)

Definition at line 32 of file FileStub.cpp.

◆ registerSeekInterceptor()

void Os::registerSeekInterceptor ( SeekInterceptor  funcPtr,
void *  ptr 
)

Definition at line 59 of file FileStub.cpp.

◆ registerWriteInterceptor()

void Os::registerWriteInterceptor ( WriteInterceptor  funcPtr,
void *  ptr 
)

Definition at line 41 of file FileStub.cpp.

◆ returnIndex()

void Os::returnIndex ( PriorityQueue pQueue,
NATIVE_UINT_TYPE  depth,
NATIVE_UINT_TYPE  index 
)

Definition at line 54 of file PriorityBufferQueue.cpp.

◆ sendBlock()

Queue::QueueStatus Os::sendBlock ( QueueHandle queueHandle,
const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority 
)

Definition at line 132 of file Queue.cpp.

◆ sendBlockIPCStub()

Queue::QueueStatus Os::sendBlockIPCStub ( QueueHandle queueHandle,
const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority 
)

Definition at line 131 of file IPCQueueStub.cpp.

◆ sendNonBlock()

Queue::QueueStatus Os::sendNonBlock ( QueueHandle queueHandle,
const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority 
)

Definition at line 94 of file Queue.cpp.

◆ sendNonBlockIPCStub()

Queue::QueueStatus Os::sendNonBlockIPCStub ( QueueHandle queueHandle,
const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority 
)

Definition at line 93 of file IPCQueueStub.cpp.

◆ setLastError()

void Os::setLastError ( NATIVE_INT_TYPE  error)

Definition at line 68 of file FileStub.cpp.

◆ translateStatus()

ValidateFile::Status Os::translateStatus ( File::Status  status,
StatusFileType  type 
)

Definition at line 122 of file ValidateFileCommon.cpp.

◆ writeHash()

File::Status Os::writeHash ( const char *  hashFileName,
Utils::HashBuffer  hashBuffer 
)

Definition at line 93 of file ValidateFileCommon.cpp.

Variable Documentation

◆ lastError

NATIVE_INT_TYPE Os::lastError = 0
static

Definition at line 30 of file FileStub.cpp.

◆ openInterceptor

OpenInterceptor Os::openInterceptor = 0
static

Definition at line 24 of file FileStub.cpp.

◆ openInterceptorPtr

void* Os::openInterceptorPtr = 0
static

Definition at line 25 of file FileStub.cpp.

◆ readInterceptor

ReadInterceptor Os::readInterceptor = 0
static

Definition at line 18 of file FileStub.cpp.

◆ readInterceptorPtr

void* Os::readInterceptorPtr = 0
static

Definition at line 19 of file FileStub.cpp.

◆ seekInterceptor

SeekInterceptor Os::seekInterceptor = 0
static

Definition at line 27 of file FileStub.cpp.

◆ seekInterceptorPtr

void* Os::seekInterceptorPtr = 0
static

Definition at line 28 of file FileStub.cpp.

◆ writeInterceptor

WriteInterceptor Os::writeInterceptor = 0
static

Definition at line 21 of file FileStub.cpp.

◆ writeInterceptorPtr

void* Os::writeInterceptorPtr = 0
static

Definition at line 22 of file FileStub.cpp.