gallium: Portability guidelines.
This commit is contained in:
43
src/mesa/pipe/README.portability
Normal file
43
src/mesa/pipe/README.portability
Normal file
@@ -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
|
||||||
|
|
Reference in New Issue
Block a user