summaryrefslogtreecommitdiffstats
path: root/c-user/config/msg-queue-buffer.rst
blob: 8d40149e7ca340d64222e4983fb91159f456d9d8 (plain) (blame)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
.. SPDX-License-Identifier: CC-BY-SA-4.0

.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)

Message Queue Buffer Configuration
==================================

This section describes the configuration parameters related to specifying the
amount of memory reserved for message queue message buffers.  See
:ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES` and
:ref:`CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`.

.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
.. index:: configure message queue buffer memory

.. _CONFIGURE_MESSAGE_BUFFER_MEMORY:

CONFIGURE_MESSAGE_BUFFER_MEMORY
-------------------------------

CONSTANT:
    ``CONFIGURE_MESSAGE_BUFFER_MEMORY``

DATA TYPE:
    integer summation macro

RANGE:
    undefined (zero) or calculation resulting in a positive integer

DEFAULT VALUE:
    This is not defined by default, and zero (0) memory is reserved.

DESCRIPTION:
    This macro is set to the number of bytes the application requires to be
    reserved for pending Classic API Message Queue buffers.

NOTES:
    The following illustrates how the help macro
    :ref:`CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE` can be used to assist in
    calculating the message buffer memory required.  In this example, there are
    two message queues used in this application.  The first message queue has
    maximum of 24 pending messages with the message structure defined by the
    type ``one_message_type``.  The other message queue has maximum of 500
    pending messages with the message structure defined by the type
    ``other_message_type``.

    .. code-block:: c

        #define CONFIGURE_MESSAGE_BUFFER_MEMORY \
                    (CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( \
                         24, sizeof(one_message_type) \
                     ) + \
                     CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( \
                         500, sizeof(other_message_type) \
                     )

.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
.. index:: memory for a single message queue's buffers

.. _CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE:

CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
-----------------------------------

CONSTANT:
    ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)``

DATA TYPE:
    Unsigned integer (``size_t``).

RANGE:
    Positive.

DEFAULT VALUE:
    The default value is None.

DESCRIPTION:
    This is a helper macro which is used to assist in computing the total
    amount of memory required for message buffers.  Each message queue will
    have its own configuration with maximum message size and maximum number of
    pending messages.

    The interface for this macro is as follows:

    .. code-block:: c

        CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)

    Where ``max_messages`` is the maximum number of pending messages and
    ``size_per`` is the size in bytes of the user message.

NOTES:
    This macro is only used in support of :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.