#
#  $Id$
#

This file contains questions to be answered on the port of the OpenPalm
package to RTEMS.

--joel
14 December 2000

New Questions
=============
+ What is rc?
Questions
=========
+ What is the startup sequence?  RTEMS applications are statically linked
  and start from an "init task".

+ What do this in bmp.h mean?
  #undef	OS_USEHDIB

+ Comments on fb.h appreciated.  We will not be able to hard code a
  frame buffer size or bpp.  Is this OK?  We will be asking a
  frame buffer abstraction layer that is ported to each target environment.

+ What to do about fnt.h?  I don't even know what it does.

+ What do you do about DLLs on a system without dynamic download? (launch.h)

+ What are the parameters RAM and ROM size used for (see mem.h)?  

+ How is pwrResetIdleTimer() really used?  In RTEMS when execution gets
  to the IDLE task, it will go into low power mode.  So the key is just
  to let tasks go to sleep.

+ What does GetCurrentTicks() really do?  We have a "ticks since boot" that
  is an integer increment on each clock tick.  Is this the same meaning?

+ In mtWaitCond is toTicks interval or absolute time specification?

+ Is types.h the master include file for the port?

+ POSIX does not have "pthread_join_timedwait" -- only pthread_join.  I
  can easily add this to RTEMS but this is a general hole.

+ Thread Local Storage -- Is there a limit on how many (void *)'s are
  needed per thread?  

+ Thread Local Storage -- Is it guaranteed that mtAllocTls() will be
  called first?

+ Thread Local Storage -- Comment. The RTEMS indices will be thread
  specific.  The index will only be valid for that thread.  Is this
  the intent?

+ Is include__CPU__ required?  I can write all these in terms of RTEMS
  primitives and its portable interface.  Is it OK to define these in
  in __include__RTEMS__/os/types.h?  Any other ideas?  

+ include__CPU__/cpu/swab.h.  Is the intent to swap between endians
  or to always take "native endian" to "big endian"?  In other words,
  is the implementation to swap only if CPU is little endian 

  (a) inline __u16 __swab16(__u16 x) {
      #if CPU_LITTLE_ENDIAN
        return CPU_swap_u16( x );
      #else
        return x;
      #endif
      }

   OR to swap all the time..

   (b) inline __u16 __swab16(__u16 x) {
         return CPU_swap_u16( x );
       }
