diff options
author | José Fonseca <jrfonseca@tungstengraphics.com> | 2008-02-04 17:02:08 +0900 |
---|---|---|
committer | Ben Skeggs <skeggsb@gmail.com> | 2008-02-15 13:50:31 +1100 |
commit | 152ea0b42484c4173eb5eb4d8ecd6a79207b2310 (patch) | |
tree | fb38be156a93f1a557e87366d3520a1384666238 /src/mesa/pipe | |
parent | d154f6a24b7c7265306d43fcb3b43dc759ad9bd2 (diff) |
gallium: Portability guidelines.
Diffstat (limited to 'src/mesa/pipe')
-rw-r--r-- | src/mesa/pipe/README.portability | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/mesa/pipe/README.portability b/src/mesa/pipe/README.portability new file mode 100644 index 0000000000..c70ca774da --- /dev/null +++ b/src/mesa/pipe/README.portability @@ -0,0 +1,43 @@ + CROSS-PLATFORM PORTABILITY GUIDELINES FOR GALLIUM3D + + += General Considerations = + +The state tracker and winsys driver support a rather limited number of +platforms. However, the pipe drivers are meant to run in a wide number of +platforms. Hence the pipe drivers, the auxiliary modules, and all public +headers in general, should stricly follow these guidelines to ensure + + += Compiler Support = + +* Include the p_compiler.h. + +* Don't use the 'inline' keyword, use the INLINE macro in p_compiler.h instead. + +* Cast explicitly when converting to integer types of smaller sizes. + +* Cast explicitly when converting between float, double and integral types. + +* Don't use named struct initializers. + +* Don't use variable number of macro arguments. Use static inline functions +instead. + + += Standard Library = + +* Avoid including standard library headers. Most standard library functions are +not available in Windows Kernel Mode. Use the appropriate p_*.h include. + +== Memory Allocation == + +* Use MALLOC, CALLOC, FREE instead of the malloc, calloc, free functions. + +* Use align_pointer() function defined in p_util.h for aligning pointers in a +portable way. + +== Debugging == + +TODO + |