Exemplo n.º 1
0
void
OSInitMessageQueueEx(OSMessageQueue *queue, OSMessage *messages, int32_t size, const char *name)
{
   queue->tag = OSMessageQueue::Tag;
   queue->name = name;
   queue->messages = messages;
   queue->size = size;
   queue->first = 0;
   queue->used = 0;
   OSInitThreadQueueEx(&queue->sendQueue, queue);
   OSInitThreadQueueEx(&queue->recvQueue, queue);
}
Exemplo n.º 2
0
void
OSInitCondEx(OSCondition *condition, const char *name)
{
   condition->tag = OSCondition::Tag;
   condition->name = name;
   OSInitThreadQueueEx(&condition->queue, condition);
}
Exemplo n.º 3
0
/**
* Initialise an alarm structure.
*/
void
OSCreateAlarmEx(OSAlarm *alarm, const char *name)
{
    memset(alarm, 0, sizeof(OSAlarm));
    alarm->tag = OSAlarm::Tag;
    alarm->name = name;
    OSInitThreadQueueEx(&alarm->threadQueue, alarm);
}
Exemplo n.º 4
0
void
OSInitSemaphoreEx(OSSemaphore *semaphore, int32_t count, char *name)
{
   semaphore->tag = OSSemaphore::Tag;
   semaphore->name = name;
   semaphore->count = count;
   OSInitThreadQueueEx(&semaphore->queue, semaphore);
}
Exemplo n.º 5
0
/**
 * Initialise a condition variable structure with a name.
 */
void
OSInitCondEx(virt_ptr<OSCondition> condition,
             virt_ptr<const char> name)
{
   condition->tag = OSCondition::Tag;
   condition->name = name;
   OSInitThreadQueueEx(virt_addrof(condition->queue), condition);
}
Exemplo n.º 6
0
/**
* Initialises an event structure.
*/
void
OSInitEventEx(OSEvent *event, bool value, OSEventMode mode, char *name)
{
   event->tag = OSEvent::Tag;
   event->mode = mode;
   event->value = value;
   event->name = name;
   OSInitThreadQueueEx(&event->queue, event);
}
Exemplo n.º 7
0
void
OSInitMutexEx(OSMutex *mutex, const char *name)
{
   mutex->tag = OSMutex::Tag;
   mutex->name = name;
   mutex->owner = nullptr;
   mutex->count = 0;
   OSInitThreadQueueEx(&mutex->queue, mutex);
   OSInitQueueLink(&mutex->link);
}
Exemplo n.º 8
0
/**
 * Initialise a mutex structure with a name.
 */
void
OSInitMutexEx(virt_ptr<OSMutex> mutex,
              virt_ptr<const char> name)
{
   mutex->tag = OSMutex::Tag;
   mutex->name = name;
   mutex->owner = nullptr;
   mutex->count = 0;
   OSInitThreadQueueEx(virt_addrof(mutex->queue), mutex);
   MutexQueue::initLink(mutex);
}
Exemplo n.º 9
0
/**
 * Initialise an alarm structure.
 */
void
OSCreateAlarmEx(OSAlarm *alarm, const char *name)
{
   // Holding the alarm here is neccessary since its valid to call
   // Create on an already active alarm, as long as its not set.
   internal::acquireIdLock(sAlarmLock, alarm);

   memset(alarm, 0, sizeof(OSAlarm));
   alarm->tag = OSAlarm::Tag;
   alarm->name = name;
   OSInitThreadQueueEx(&alarm->threadQueue, alarm);

   internal::releaseIdLock(sAlarmLock, alarm);
}