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

Author: Philippe Gerum <r...@xenomai.org>
Date:   Sat Jan  4 12:21:22 2014 +0100

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

---

 doc/asciidoc/MIGRATION.adoc |  207 +++++++++++++++++++++++--------------------
 1 file changed, 111 insertions(+), 96 deletions(-)

diff --git a/doc/asciidoc/MIGRATION.adoc b/doc/asciidoc/MIGRATION.adoc
index 775784f..73d49d1 100644
--- a/doc/asciidoc/MIGRATION.adoc
+++ b/doc/asciidoc/MIGRATION.adoc
@@ -6,30 +6,39 @@ 
http://www.xenomai.org/documentation/xenomai-forge/html/MIGRATION/[this address]
 For questions, corrections and improvements, write to
 mailto:xeno...@xenomai.org[the mailing list].
 
-== File renames ==
+== Configuration ==
 
-=== Real-time suitable STDIO support ===
+.User programs and libraries
 
-The former +include/rtdk.h+ header is gone in Xenomai
-3.x. Applications should include +include/stdio.h+ instead.
+- As with Xenomai 2.x, +xeno-config+ is available for retrieving the
+compilation and link flags for building Xenomai 3.x applications. This
+script will work for both the Cobalt and Mercury environments
+indifferently.
 
-Similarly, the real-time suitable STDIO routines are now part of
-+libcobalt+.
+ * The +--skin=+ option specifier has become optional. For instance,
+  mentioning +--skin=psos+ or +--psos+ on the command line is strictly
+  equivalent.
 
-=== RTDM header files ===
+ * Specifying +--[skin=]cobalt+ or +--[skin=]posix+ on the command line
+  is strictly equivalent. However, this does not make sense with
+  _Mercury_ which does not define these switches.
 
-- Redundant prefixes were removed from the following files:
+ * +--[skin=]alchemy+ replaces the former +--skin=native+ switch.
 
-[normal]
-rtdm/rtdm_driver.h -> rtdm/driver.h
-[normal]
-rtdm/rtcan.h -> rtdm/can.h
-[normal]
-rtdm/rtserial.h -> rtdm/serial.h
-[normal]
-rtdm/rttesting.h -> rtdm/testing.h
-[normal]
-rtdm/rtipc.h -> rtdm/ipc.h
+ * +--core+ can be used to retrieve the name of the Xenomai core system
+  for which +xeno-config+ was generated. Possible output values are
+  +cobalt+ and +mercury+.
+
+ * +--no-auto-init+ can be passed to disable automatic initialization
+  of the Copperplate library when the application process enters the
+  +main()+ routine. In such a case, the application code using any API
+  based on the Copperplate layer, shall call the +copperplate_init()+
+  routine manually, as part of its initialization process, _before_
+  any real-time service is invoked.
+
+ * +--enable-x86-sep+ was renamed to +--enable-x86-vsyscall+ to fix a
+  misnomer. This option should be left enabled (default), unless
+  *linuxthreads* are used instead of *NPTL*.
 
 == Getting the system state ==
 
@@ -206,33 +215,26 @@ back to the user-defined application entry point.
 This behavior may be disabled by passing the +--no-auto-init+ option
 (see the next section).
 
-== Compilation helper script (xeno-config) ==
-
-As with Xenomai 2.x, +xeno-config+ is available for retrieving the
-compilation and link flags for building Xenomai 3.x applications. This
-script will work for both the Cobalt and Mercury environments
-indifferently.
+== RTDM interface changes ==
 
-- The +--skin=+ option specifier has become optional. For instance,
-  mentioning +--skin=psos+ or +--psos+ on the command line is strictly
-  equivalent.
+.File renames
 
-- Specifying +--[skin=]cobalt+ or +--[skin=]posix+ on the command line
-  is strictly equivalent. However, this does not make sense with
-  _Mercury_ which does not define these switches.
+- Redundant prefixes were removed from the following files:
 
-- +--[skin=]alchemy+ replaces the former +--skin=native+ switch.
+[normal]
+rtdm/rtdm_driver.h -> rtdm/driver.h
+[normal]
+rtdm/rtcan.h -> rtdm/can.h
+[normal]
+rtdm/rtserial.h -> rtdm/serial.h
+[normal]
+rtdm/rttesting.h -> rtdm/testing.h
+[normal]
+rtdm/rtipc.h -> rtdm/ipc.h
 
-- +--core+ can be used to retrieve the name of the Xenomai core system
-  for which +xeno-config+ was generated. Possible output values are
-  +cobalt+ and +mercury+.
+.Driver API
 
-- +--no-auto-init+ can be passed to disable automatic initialization
-  of the Copperplate library when the application process enters the
-  +main()+ routine. In such a case, the application code using any API
-  based on the Copperplate layer, shall call the +copperplate_init()+
-  routine manually, as part of its initialization process, _before_
-  any real-time service is invoked.
+- rtdm_task_init() shall be called from secondary mode.
 
 == POSIX interface changes ==
 
@@ -420,6 +422,12 @@ 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).
 
+.Process management
+
+- In a +fork()+ -> +exec()+ sequence, all Cobalt API objects created
+  by the child process before it calls +exec()+ are automatically
+  flushed by the Xenomai core.
+
 .Real-time signals
 
 - Support for Xenomai real-time signals is available.
@@ -504,63 +512,12 @@ int pthread_make_periodic_np(pthread_t thread, clockid_t 
clk_id,
 - +mq_send()+ now enforces a maximum priority value for messages
   (32768).
 
-== pSOS interface changes ==
-
-.Memory regions
-
-- +rn_create()+ may return ERR_NOSEG if the region control block
-  cannot be allocated internally.
-
-.Scheduling
-
-- 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.
-
-------------------------------------------------------------
-int psos_task_normalize_priority(unsigned long psos_prio);
-
-unsigned long psos_task_denormalize_priority(int core_prio);
-------------------------------------------------------------
-
-[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.
-
-== VxWorks interface changes ==
+.Real-time suitable STDIO
 
-.Task management
-
-- +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, each time reading the
-+status+ field is required.
-
-.Scheduling
-
-- 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);
-------------------------------------------------------------
+The former +include/rtdk.h+ header is gone in Xenomai
+3.x. Applications should include +include/stdio.h+ instead.
+Similarly, the real-time suitable STDIO routines are now part of
++libcobalt+.
 
 == Former Native interface changes (now Alchemy) ==
 
@@ -768,3 +725,61 @@ instead.
 
 - +rt_pipe_read_until()+ is a new call for waiting for input from a
   pipe, specifying an absolute timeout date.
+
+== pSOS interface changes ==
+
+.Memory regions
+
+- +rn_create()+ may return ERR_NOSEG if the region control block
+  cannot be allocated internally.
+
+.Scheduling
+
+- 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.
+
+------------------------------------------------------------
+int psos_task_normalize_priority(unsigned long psos_prio);
+
+unsigned long psos_task_denormalize_priority(int core_prio);
+------------------------------------------------------------
+
+[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.
+
+== VxWorks interface changes ==
+
+.Task management
+
+- +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, each time reading the
++status+ field is required.
+
+.Scheduling
+
+- 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