1. 12 Apr, 2018 1 commit
  2. 09 Feb, 2016 1 commit
  3. 02 Jun, 2015 1 commit
  4. 11 May, 2015 2 commits
    • Philippe Gerum's avatar
      lib: share the common setup and bootstrap code · 83b0f189
      Philippe Gerum authored
      Make pure POSIX applications and Copperplate-based ones share the same
      auto-init mechanism. This means that all applications now
      automatically recognize a set of base common options, which is
      currently:
      
      --cpu-affinity=<cpuset>, --[no-]sanity, --quiet[=level], --silent and
      --version.
      
      Applications which do not want Xenomai to interpose on the main()
      routine transparently for handling these options and bootstrapping the
      service libraries may disable this feature by passing the
      --no-auto-init switch to xeno-config when collecting the linker
      flags. In this configuration, the system must be bootstrapped manually
      by a call to xenomai_init() from the application code though.
      
      This change is C++ friendly, since it also enables the Xenomai high
      level services (e.g. VxWorks, pSOS) before the static constructors
      run, by default.
      83b0f189
    • Philippe Gerum's avatar
      lib: move early setup code to the boilerplate layer · 6ce16cb0
      Philippe Gerum authored
      This is a preparation step to unify the Xenomai setup interface for
      both pure Cobalt/POSIX and Copperplate-based applications.
      
      The goal is to expose a common set of basic command line switches
      which apply to all application programs regardless of the API being
      used (e.g. --dump-config), and a single setup call for bootstrapping
      the core libraries in sequence.
      6ce16cb0
  5. 23 Jan, 2015 1 commit
  6. 17 Aug, 2014 1 commit
  7. 05 Aug, 2014 1 commit
    • Philippe Gerum's avatar
      copperplate: work-around glibc race in cancel state handling · 75cc5dac
      Philippe Gerum authored
      This is a SMP race which seems to affect NPTL-based glibc releases
      (2.9 and 2.18 checked, other releases are likely concerned as
      well). The issue requires SMP setups to pop up, when
      --enable-async-cancel is mentioned on the Xenomai build configuration
      line. It was detected over the Mercury core, not checked on the Cobalt
      core. The work-around will fit both.
      
      The bug creates a situation where
      pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, ...) does not actually
      prevent subsequent asynchronous cancellation of the caller, in the
      following scenario:
      
      threadB has its cancellability set to PTHREAD_CANCEL_ENABLE,
      PTHREAD_CANCEL_ASYNCHRONOUS on entry:
      
      threadA[CPU0]: pthread_cancel(threadB)
      		(SIGCANCEL queued to threadB[CPU1])
      threadB[CPU1]: pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL)
      		(SIGCANCEL delivered to threadB[CPU1])
      		<sigcancel_handler>
      			if (cancel_type(threadB) == PTHREAD_CANCEL_ASYNCHRONOUS)
      				__do_cancel();
      			...
      
      As illustra...
      75cc5dac
  8. 02 Jun, 2014 1 commit
  9. 14 May, 2014 1 commit
    • Philippe Gerum's avatar
      copperplate: systematically check basic IPC inits · edc7d53b
      Philippe Gerum authored
      As Cobalt might fail allocating resources for any basic IPC object
      (i.e. mutex, sem, condvar, event or monitor), we should check the
      return value of each of the related init call.
      
      Very nasty bugs might surface otherwise, haunting the code undetected
      until the core falls short of a critical runtime resource (e.g. heap
      memory shared between the Cobalt core and userland).
      edc7d53b
  10. 30 Apr, 2014 1 commit
  11. 16 Apr, 2014 1 commit
  12. 16 Oct, 2013 1 commit
  13. 01 Oct, 2013 1 commit
  14. 20 Sep, 2013 1 commit
  15. 10 Aug, 2013 1 commit
  16. 28 Jan, 2012 16 commits