kmp_wrapper_getpid.h

Go to the documentation of this file.
00001 /*
00002  * kmp_wrapper_getpid.h -- getpid() declaration.
00003  * $Revision: 42181 $
00004  * $Date: 2013-03-26 15:04:45 -0500 (Tue, 26 Mar 2013) $
00005  */
00006 
00007 /* <copyright>
00008     Copyright (c) 1997-2013 Intel Corporation.  All Rights Reserved.
00009 
00010     Redistribution and use in source and binary forms, with or without
00011     modification, are permitted provided that the following conditions
00012     are met:
00013 
00014       * Redistributions of source code must retain the above copyright
00015         notice, this list of conditions and the following disclaimer.
00016       * Redistributions in binary form must reproduce the above copyright
00017         notice, this list of conditions and the following disclaimer in the
00018         documentation and/or other materials provided with the distribution.
00019       * Neither the name of Intel Corporation nor the names of its
00020         contributors may be used to endorse or promote products derived
00021         from this software without specific prior written permission.
00022 
00023     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00026     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
00027     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00028     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00029     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00030     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00031     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00033     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034 
00035 
00036 ------------------------------------------------------------------------
00037 
00038     Portions of this software are protected under the following patents:
00039         U.S. Patent 5,812,852
00040         U.S. Patent 6,792,599
00041         U.S. Patent 7,069,556
00042         U.S. Patent 7,328,433
00043         U.S. Patent 7,500,242
00044 
00045 </copyright> */
00046 
00047 #ifndef KMP_WRAPPER_GETPID_H
00048 #define KMP_WRAPPER_GETPID_H
00049 
00050 #if KMP_OS_UNIX
00051 
00052     // On Unix-like systems (Linux* OS and OS X*) getpid() is declared in standard headers.
00053     #include <sys/types.h>
00054     #include <unistd.h>
00055 
00056 #elif KMP_OS_WINDOWS
00057 
00058     // On Windows* OS _getpid() returns int (not pid_t) and is declared in "process.h".
00059     #include <process.h>
00060     // Let us simulate Unix.
00061     typedef int pid_t;
00062     #define getpid _getpid
00063 
00064 #else
00065 
00066     #error Unknown or unsupported OS.
00067 
00068 #endif
00069 
00070 /*
00071     TODO: All the libomp source code uses pid_t type for storing the result of getpid(), it is good.
00072     But often it printed as "%d", that is not good, because it ignores pid_t definition (may pid_t
00073     be longer that int?). It seems all pid prints should be rewritten as
00074 
00075         printf( "%" KMP_UINT64_SPEC, (kmp_uint64) pid );
00076 
00077     or (at least) as
00078 
00079         printf( "%" KMP_UINT32_SPEC, (kmp_uint32) pid );
00080 
00081     (kmp_uint32, kmp_uint64, KMP_UINT64_SPEC, and KMP_UNIT32_SPEC are defined in "kmp_os.h".)
00082 
00083 */
00084 
00085 #endif // KMP_WRAPPER_GETPID_H
00086 
00087 // end of file //

Generated on 25 Aug 2013 for libomp_oss by  doxygen 1.6.1