This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new b5144afd03 drivers/video/vnc: Replace direct semcount access with 
nxsem_get_value
b5144afd03 is described below

commit b5144afd03d32ab2805026d9c56576fa821481a7
Author: Jukka Laitinen <jukka.laiti...@tii.ae>
AuthorDate: Wed Apr 16 08:15:50 2025 +0300

    drivers/video/vnc: Replace direct semcount access with nxsem_get_value
    
    Use the dedicated nuttx internal interface for debugging semaphore value,
    instead of accessing it directly.
    
    Signed-off-by: Jukka Laitinen <jukka.laiti...@tii.ae>
---
 drivers/video/vnc/vnc_updater.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/video/vnc/vnc_updater.c b/drivers/video/vnc/vnc_updater.c
index 54749eeb2f..bed219ebd7 100644
--- a/drivers/video/vnc/vnc_updater.c
+++ b/drivers/video/vnc/vnc_updater.c
@@ -127,8 +127,8 @@ static void vnc_sem_debug(FAR struct vnc_session_s *session,
   nqueued      = sq_count(&session->updqueue);
   nfree        = sq_count(&session->updfree);
 
-  freesem      = session->freesem.semcount;
-  queuesem     = session->queuesem.semcount;
+  nxsem_get_value(&session->freesem, &freesem);
+  nxsem_get_value(&session->queuesem, &queuesem);
 
   freecount    = freesem  > 0 ? freesem   : 0;
   queuecount   = queuesem > 0 ? queuesem  : 0;
@@ -225,6 +225,7 @@ static void vnc_free_update(FAR struct vnc_session_s 
*session,
                             FAR struct vnc_fbupdate_s *update)
 {
   irqstate_t flags;
+  int sval;
 
   /* Reserve one element from the free list.  Lock the scheduler to assure
    * that the sq_addlast() and the nxsem_post() are atomic.
@@ -243,7 +244,9 @@ static void vnc_free_update(FAR struct vnc_session_s 
*session,
 
   leave_critical_section(flags);
   vnc_sem_debug(session, "After free", 0);
-  DEBUGASSERT(session->freesem.semcount <= CONFIG_VNCSERVER_NUPDATES);
+
+  DEBUGASSERT(nxsem_get_value(&session->freesem, &sval) == 0 &&
+              sval <= CONFIG_VNCSERVER_NUPDATES);
 }
 
 /****************************************************************************
@@ -322,6 +325,7 @@ static void vnc_add_queue(FAR struct vnc_session_s *session,
                           FAR struct vnc_fbupdate_s *rect)
 {
   irqstate_t flags;
+  int sval;
 
   /* Lock the scheduler to assure that the sq_addlast() and the nxsem_post()
    * are atomic.
@@ -342,7 +346,9 @@ static void vnc_add_queue(FAR struct vnc_session_s *session,
 
   leave_critical_section(flags);
   vnc_sem_debug(session, "After add", 0);
-  DEBUGASSERT(session->queuesem.semcount <= CONFIG_VNCSERVER_NUPDATES);
+
+  DEBUGASSERT(nxsem_get_value(&session->queuesem, &sval) == 0 &&
+              sval <= CONFIG_VNCSERVER_NUPDATES);
 }
 
 /****************************************************************************

Reply via email to