OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [src_processor/] [aeMB/] [sw/] [aemb/] [semaphore.hh] - Diff between revs 17 and 48

Show entire file | Details | Blame | View Log

Rev 17 Rev 48
Line 47... Line 47...
  /**
  /**
     Software Semaphore Signal.
     Software Semaphore Signal.
 
 
     Increment the semaphore and run. This is a software mechanism.
     Increment the semaphore and run. This is a software mechanism.
  */
  */
  inline void aembSignal(volatile semaphore _sem)
  static inline void aembSignal(volatile semaphore _sem)
  {
  {
    _aembLockMTX();
    _aembLockMTX();
    _sem++;
    _sem++;
    _aembFreeMTX();
    _aembFreeMTX();
  }
  }
Line 60... Line 60...
     Software Semaphore Wait.
     Software Semaphore Wait.
 
 
     Decrement the semaphore and block if < 0. This is a software
     Decrement the semaphore and block if < 0. This is a software
     mechanism.
     mechanism.
  */
  */
  inline void aembWait(volatile semaphore _sem)
  static inline void aembWait(volatile semaphore _sem)
  {
  {
    _aembLockMTX();
    _aembLockMTX();
    _sem--;
    _sem--;
    _aembFreeMTX();
    _aembFreeMTX();
    while (_sem < 0);
    while (_sem < 0);
  }
  }
 
 
  semaphore __mutex_rendezvous0 = 0; ///< internal rendezvous mutex
 
  semaphore __mutex_rendezvous1 = 1; ///< internal rendezvous mutex
 
 
 
  /**
  /**
     Implements a simple rendezvous mechanism
     Implements a simple rendezvous mechanism
   */
   */
  /*
  /*
  inline void aembRendezvous()
  static inline void aembRendezvous()
  {
  {
    if (isThread1())
    if (isThread1())
      {
      {
        wait(__mutex_rendezvous0);
        wait(__mutex_rendezvous0);
        signal(__mutex_rendezvous1);
        signal(__mutex_rendezvous1);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.