diff options
author | José Fonseca <[email protected]> | 2008-02-04 17:02:08 +0900 |
---|---|---|
committer | José Fonseca <[email protected]> | 2008-02-06 12:56:35 +0900 |
commit | 5e2d0517b1b42c6f94fa69bf4e32a19d00fd519f (patch) | |
tree | 6fc7e74533de3676248d807e9ee3d7c4584c273b | |
parent | e39fccc34c07a015d8713841a69037e32187dd6d (diff) |
gallium: Portability guidelines.
-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 00000000000..c70ca774da0 --- /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 + |