patacongo opened a new pull request #980:
URL: https://github.com/apache/incubator-nuttx/pull/980


   ## Summary
   
   In the past a very low effort interface was used:
   
   - All parmeters were treated as though they were type uinptr_t, and
   - The maximum number of parmeters (6) was passed in all cases.
   
   The first is potentially wrong and the second is very inefficient.  This 
commit improves this by:
   
   - Making tools/mksyscall.c more intelligent, and
   - Extending the syntax for variadic functions.
   
   For example, in syscall.cvs, the open() API was represened like this:
   
       "open","fcntl.h","","int","const char*","int","..."
   
   In reality, open may take only a single optional argument of type mode_t 
which is not the same size as uintptr_t.  And there is not reason to pass 6 
parameters in that case.
   
   And this has been extended to:
   
       "open","fcntl.h","","int","const char*","int","...","mode_t"
   
   The existence of the "mode_t" tells tools/mksyscall that there is at most 
one optional parameter and, if present, it is of type mode_t.
   
   ## Impact
   
   This change has no effect in the FLAT build but could effect PROTECTED and 
KERNEL mode builds.  Those are the only build modes that require stubs and 
proxies.
   
   ## Testing
   
   Verififed witih stm32f4disovery:kostest
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to