MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / create

Function create

erpc_c/setup/erpc_setup_mbf_static.cpp:59–82  ·  view source on GitHub ↗

! * @brief This function creates new message buffer. * * @return MessageBuffer New created MessageBuffer. */

Source from the content-addressed store, hash-verified

57 * @return MessageBuffer New created MessageBuffer.
58 */
59 virtual MessageBuffer create(void)
60 {
61 uint8_t idx = 0;
62#if !ERPC_THREADS_IS(NONE)
63 m_semaphore.get();
64#endif
65 while (((m_freeBufferBitmap[idx >> 3U] & (1U << (idx & 0x7U))) == 0U) && (idx < ERPC_DEFAULT_BUFFERS_COUNT))
66 {
67 idx++;
68 }
69
70 erpc_assert(idx < ERPC_DEFAULT_BUFFERS_COUNT);
71
72 m_freeBufferBitmap[idx >> 3U] &= ~(1U << (idx & 0x7U));
73#if !ERPC_THREADS_IS(NONE)
74 m_semaphore.put();
75#endif
76
77 uint8_t *buf;
78 buf = reinterpret_cast<uint8_t *>(m_buffers[idx]);
79
80 erpc_assert(NULL != buf);
81 return MessageBuffer(buf, ERPC_DEFAULT_BUFFER_SIZE);
82 }
83
84 /*!
85 * @brief This function disposes message buffer.

Callers 3

createMethod · 0.85
addMessageLoggerMethod · 0.85

Calls 3

MessageBufferClass · 0.85
getMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected