summaryrefslogtreecommitdiff
path: root/ACE/ace/Message_Queue_Vx.inl
blob: e54c62f6f233c99b8287ff54f1663972a52794bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// -*- C++ -*-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL

#if defined (ACE_VXWORKS)
// Specialization to use native VxWorks Message Queues.

ACE_INLINE MSG_Q_ID
ACE_Message_Queue_Vx::msgq (void)
{
  // Hijack the tail_ field to store the MSG_Q_ID.
  return static_cast<MSG_Q_ID> (
#if defined __LP64__ && defined __RTP__
  // In RTP-mode only MSG_Q_ID is an int; in a 64-bit build the size of MSG_Q_ID
  // doesn't match the size of a pointer, tail_, so first treat it as 64-bit.
                                reinterpret_cast<long> (tail_)
#elif defined __RTP__
                                reinterpret_cast<int> (tail_)
#else
                                reinterpret_cast<MSG_Q_ID> (tail_)
#endif /* __RTP__ */
                                );
}

ACE_INLINE int
ACE_Message_Queue_Vx::peek_dequeue_head (ACE_Message_Block *&,
                                         ACE_Time_Value *)
{
  ACE_NOTSUP_RETURN (-1);
}

#endif /* ACE_VXWORKS */

ACE_END_VERSIONED_NAMESPACE_DECL