123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
- * All rights reserved.
- *
- * This software is supplied "AS IS" without any warranties.
- * RDA assumes no responsibility or liability for the use of the software,
- * conveys no license or title under any patent, copyright, or mask work
- * right to the product. RDA reserves the right to make changes in the
- * software without notification. RDA also make no representation or
- * warranty that such application will be suitable for the specified use
- * without further testing or modification.
- */
- #ifndef _DRV_MODEM_LOG_BUF_H_
- #define _DRV_MODEM_LOG_BUF_H_
- #include "osi_compiler.h"
- OSI_EXTERN_C_BEGIN
- /**
- * \brief dummy struct for modem log buf
- *
- * Usually, this is embedded in another data struct. The dummy struct is
- * just a placeholder. Don't access members inside.
- *
- * There should be only one owner for each modem log buf, and then thread
- * safe isn't considered in this module. If needed, caller should take
- * care of thread safe.
- */
- typedef struct
- {
- //! @cond Doxygen_Suppress
- void *dummy1;
- bool dummy2;
- //! @endcond
- } drvModemLogBuf_t;
- /**
- * \brief initialize cp log buffer data structure
- *
- * It will only search the shared memory, and won't check the content in
- * shared memory. It may be called before CP initialization.
- *
- * \param d modem log buf instance, must be valid
- * \return
- * - true on success
- * - false on fail, no shared memory for cp log
- */
- bool drvModemLogBufInitCp(drvModemLogBuf_t *d);
- /**
- * \brief initialize zsp log buffer data structure
- *
- * \param d modem log buf instance, must be valid
- * \return
- * - true on success
- * - false on fail, no shared memory for zsp log
- */
- bool drvModemLogBufInitZsp(drvModemLogBuf_t *d);
- /**
- * \brief initialize mos log buffer data structure
- *
- * \param d modem log buf instance, must be valid
- * \return
- * - true on success
- * - false on fail, no shared memory for mos log
- */
- bool drvModemLogBufInitMos(drvModemLogBuf_t *d);
- /**
- * \brief get linear buffer of modem log buf
- *
- * Typically, modem log buf is a cyclic buffer. \p is_tail will return
- * true when the linear buffer is at the tail, and log data has already
- * wrapped. In this case, the returned linear buffer won't be changed
- * in the following calls. In case there are size control (avoid to
- * process small data) in caller, this case should be handled specially.
- *
- * When modem log buf is invalid, the returned linear buffer size will
- * be 0, the same as buffer empty.
- *
- * The returned linear buffer pointer will be 4 bytes aligned, and size
- * is 4 bytes aligned.
- *
- * \param d modem log buf instance, must be valid
- * \param is_tail return true is the linear buffer is at the tail, and
- * log data has been wrapped.
- * \return
- * - true on success
- * - false on fail, no shared memory for mos log
- */
- osiBuffer_t drvModemLogLinearBuf(drvModemLogBuf_t *d, bool *is_tail);
- /**
- * \brief update reader pointer of modem log buffer
- *
- * \p size should be 4 bytes aligned.
- *
- * \param d modem log buf instance, must be valid
- * \param size bytes to be advanced
- */
- void drvModemLogBufAdvance(drvModemLogBuf_t *d, unsigned size);
- OSI_EXTERN_C_END
- #endif
|