Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Side by Side Diff: native_client_sdk/src/libraries/utils/macros.h

Issue 11190066: [NaCl SDK] nacl-mounts example. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix windows Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « native_client_sdk/src/libraries/nacl_mounts/kernel_wrap.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 */ 4 */
5 #ifndef LIBRARIES_UTILS_MACROS_H_ 5 #ifndef LIBRARIES_UTILS_MACROS_H_
6 #define LIBRARIES_UTILS_MACROS_H_ 6 #define LIBRARIES_UTILS_MACROS_H_
7 7
8 /** 8 /**
9 * A macro to disallow the evil copy constructor and operator= functions 9 * A macro to disallow the evil copy constructor and operator= functions
10 * This should be used in the private: declarations for a class. 10 * This should be used in the private: declarations for a class.
11 */ 11 */
12 #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ 12 #define DISALLOW_COPY_AND_ASSIGN(TypeName) \
13 TypeName(const TypeName&); \ 13 TypeName(const TypeName&); \
14 void operator=(const TypeName&) 14 void operator=(const TypeName&)
15 15
16 /** returns the size of a member of a struct. */ 16 /** returns the size of a member of a struct. */
17 #define MEMBER_SIZE(struct_name, member) sizeof(((struct_name*)0)->member) 17 #define MEMBER_SIZE(struct_name, member) sizeof(((struct_name*)0)->member)
18 18
19 /** 19 /**
20 * Macros to prevent name mangling of defnitions, allowing them to be 20 * Macros to prevent name mangling of defnitions, allowing them to be
21 * referenced from C. 21 * referenced from C.
22 */ 22 */
23 #ifdef __cplusplus 23 #ifdef __cplusplus
24 # define EXTERN_C_BEGIN extern "C" { 24 # define EXTERN_C_BEGIN extern "C" {
25 # define EXTERN_C_END } 25 # define EXTERN_C_END }
26 #else 26 #else
27 # define EXTERN_C_BEGIN 27 # define EXTERN_C_BEGIN
28 # define EXEERN_C_END 28 # define EXTERN_C_END
29 #endif /* __cplusplus */ 29 #endif /* __cplusplus */
30 30
31 /**
32 * Macros to help force linkage of symbols that otherwise would not be
33 * included.
34 *
35 * // In a source file that you want to force linkage (file scope):
36 * FORCE_LINK_THIS(myfilename);
37 *
38 * // In a source file that you are sure will be linked (file scope):
39 * FORCE_LINK_THAT(myfilename)
40 *
41 */
42 #define FORCE_LINK_THIS(x) int force_link_##x = 0;
43 #define FORCE_LINK_THAT(x) \
44 void force_link_function_##x() { \
45 extern int force_link_##x; \
46 force_link_##x = 1; \
47 }
31 48
32 #endif /* LIBRARIES_UTILS_MACROS_H_ */ 49 #endif /* LIBRARIES_UTILS_MACROS_H_ */
OLDNEW
« no previous file with comments | « native_client_sdk/src/libraries/nacl_mounts/kernel_wrap.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698