Module: xenomai-forge
Branch: next
Commit: 8d3b5e8d84f9e14f4e4d170b2cb8e2c7e65039f6
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=8d3b5e8d84f9e14f4e4d170b2cb8e2c7e65039f6

Author: Philippe Gerum <r...@xenomai.org>
Date:   Wed Jan  1 18:33:28 2014 +0100

doc: more preliminary 2.x -> 3.x migration info

---

 doc/asciidoc/MIGRATION.adoc |   80 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 72 insertions(+), 8 deletions(-)

diff --git a/doc/asciidoc/MIGRATION.adoc b/doc/asciidoc/MIGRATION.adoc
index 00c0d90..8b9a586 100644
--- a/doc/asciidoc/MIGRATION.adoc
+++ b/doc/asciidoc/MIGRATION.adoc
@@ -389,9 +389,9 @@ using the Cobalt core.
   thread stuck in a tight loop, from locking out the delayed Xenomai
   thread indefinitely.
 
-- The default POSIX thread stack size was raised to `PTHREAD_STACK_MIN
-  * 4`. The minimum stack size enforced by the +libcobalt+ library is
-  `PTHREAD_STACK_MIN + getpagesize()`.
+- The default POSIX thread stack size was raised to
+  `PTHREAD_STACK_MIN * 4`. The minimum stack size enforced by the
+  +libcobalt+ library is `PTHREAD_STACK_MIN + getpagesize()`.
 
 - Support for Xenomai real-time signals is available.
 
@@ -447,8 +447,9 @@ This behavior also applies to the new Cobalt-based 
replacement for the
 
 - If the thread signaled by a POSIX timer exits, the timer is
   automatically stopped at the first subsequent timeout which fails
-  sending the notification. The timer lingers until it is deleted or
-  when the process exits, whichever comes first.
+  sending the notification. The timer lingers until it is deleted by a
+  call to +timer_delete()+ or when the process exits, whichever comes
+  first.
 
 - timer_settime() may be called from a regular thread (i.e. which is
   not Xenomai-enabled).
@@ -457,15 +458,78 @@ This behavior also applies to the new Cobalt-based 
replacement for the
   substituted in the corresponding situation.
 
 - The clock to be used for enabling periodic timing for a thread may
-  now be specified in the call to pthread_make_periodic_np():
+  now be specified in the call to +pthread_make_periodic_np()+:
 
 ---------------------------------------------------------------
 int pthread_make_periodic_np(pthread_t thread, clockid_t clk_id,
     struct timespec *starttp, struct timespec *periodtp);
 ---------------------------------------------------------------
 
-- mq_open() default attributes align on the regular kernel values,
+- +mq_open()+ default attributes align on the regular kernel values,
   i.e. 10 msg x 8192 bytes (instead of 128 x 128).
 
-- mq_send() now enforces a maximum priority value for messages
+- +mq_send()+ now enforces a maximum priority value for messages
   (32768).
+
+- pthread_set_mode_np() now accepts PTHREAD_DISABLE_LOCKBREAK, which
+disallows breaking the scheduler lock. When unset (default case), a
+thread which holds the scheduler lock drops it temporarily while
+sleeping.
+
+[WARNING]
+A Xenomai thread running with PTHREAD_DISABLE_LOCKBREAK and
+PTHREAD_LOCK_SCHED both set may enter a runaway loop when attempting
+to sleep on a resource or synchronization object (e.g. mutex,
+condition variable).
+
+pSOS interface changes
+----------------------
+
+- +rn_create()+ may return ERR_NOSEG if the region control block
+  cannot be allocated internally.
+
+- The emulator converts priority levels between the core POSIX and
+  pSOS scales using normalization (pSOS -> POSIX) and denormalization
+  (POSIX -> pSOS) handlers.
+
+[normal]
+Applications may override the default priority
+normalization/denormalization handlers, by implementing the following
+routines.
+
+[normal]
+Over Cobalt, the POSIX scale is extended to 257 levels, which allows
+to map pSOS over the POSIX scale 1:1, leaving
+normalization/denormalization handlers as no-ops by default.
+
+------------------------------------------------------------
+int psos_task_normalize_priority(unsigned long psos_prio);
+
+unsigned long psos_task_denormalize_priority(int core_prio);
+------------------------------------------------------------
+
+VxWorks interface changes
+-------------------------
+
+- +WIND_*+ status bits are synced to the user-visible TCB only as a
+result of a call to +taskTcb()+ or +taskGetInfo()+.
+
+[normal]
+As a consequence of this change, any reference to a user-visible TCB
+should be refreshed by calling +taskTcb()+ anew, prior to reading the
++status+ field member.
+
+- The emulator converts priority levels between the core POSIX and
+  VxWorks scales using normalization (VxWorks -> POSIX) and
+  denormalization (POSIX -> VxWorks) handlers.
+
+[normal]
+Applications may override the default priority
+normalization/denormalization handlers, by implementing the following
+routines.
+
+------------------------------------------------------------
+int wind_task_normalize_priority(int wind_prio);
+
+int wind_task_denormalize_priority(int core_prio);
+------------------------------------------------------------


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to