SolidSyslog coverage report
Current view: top level - Core/Source - SolidSyslogSharedScratch.c (source / functions) Coverage Total Hit
Test: SolidSyslog Lines: 100.0 % 16 16
Test Date: 2026-11-12 23:14:35 Functions: 100.0 % 4 4

            Line data    Source code
       1              : /* SPDX-FileCopyrightText: Copyright 2026 Cozens Software Solutions Limited
       2              :  * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0 OR LicenseRef-COSOSO-Commercial
       3              :  */
       4              : 
       5              : #include "SolidSyslogSharedScratch.h"
       6              : 
       7              : #include <stddef.h>
       8              : 
       9              : #include "SolidSyslogError.h"
      10              : #include "SolidSyslogMutex.h"
      11              : #include "SolidSyslogScratch.h"
      12              : #include "SolidSyslogSharedScratchErrors.h"
      13              : #include "SolidSyslogSharedScratchPrivate.h"
      14              : #include "SolidSyslogStackScratch.h"
      15              : #include "SolidSyslogTunables.h"
      16              : 
      17              : const struct SolidSyslogErrorSource SolidSyslogSharedScratchErrorSource = {
      18              :     "SharedScratch",
      19              :     SolidSyslogSharedScratchErrors_Name
      20              : };
      21              : 
      22              : static void SharedScratch_WithScratch(struct SolidSyslogScratch* base, SolidSyslogScratchUser use, void* context);
      23              : 
      24              : static inline struct SolidSyslogSharedScratch* SharedScratch_SelfFromBase(struct SolidSyslogScratch* base);
      25              : 
      26           23 : void SolidSyslogSharedScratch_Initialise(struct SolidSyslogScratch* base, struct SolidSyslogMutex* mutex)
      27              : {
      28           23 :     struct SolidSyslogSharedScratch* self = SharedScratch_SelfFromBase(base);
      29           23 :     self->Base.WithScratch = SharedScratch_WithScratch;
      30           23 :     self->Mutex = mutex;
      31           23 : }
      32              : 
      33           23 : void SolidSyslogSharedScratch_Cleanup(struct SolidSyslogScratch* base)
      34              : {
      35              :     /* A stale handle formats on the stack after Destroy, which is safe, rather
      36              :      * than through a NULL function pointer or a mutex that may be gone. */
      37           23 :     *base = *SolidSyslogStackScratch_Get();
      38           23 : }
      39              : 
      40           10 : static void SharedScratch_WithScratch(struct SolidSyslogScratch* base, SolidSyslogScratchUser use, void* context)
      41              : {
      42           10 :     struct SolidSyslogSharedScratch* self = SharedScratch_SelfFromBase(base);
      43           10 :     SolidSyslogMutex_Lock(self->Mutex);
      44           10 :     use(self->Storage, SOLIDSYSLOG_MAX_MESSAGE_SIZE, context);
      45           10 :     SolidSyslogMutex_Unlock(self->Mutex);
      46           10 : }
      47              : 
      48           33 : static inline struct SolidSyslogSharedScratch* SharedScratch_SelfFromBase(struct SolidSyslogScratch* base)
      49              : {
      50           33 :     return (struct SolidSyslogSharedScratch*) base;
      51              : }
        

Generated by: LCOV version 2.0-1