OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_OS_H_ | 5 #ifndef VM_OS_H_ |
6 #define VM_OS_H_ | 6 #define VM_OS_H_ |
7 | 7 |
8 #include "vm/globals.h" | 8 #include "vm/globals.h" |
9 | 9 |
10 // Forward declarations. | 10 // Forward declarations. |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 // Returns the stack size limit. | 55 // Returns the stack size limit. |
56 static uword GetStackSizeLimit(); | 56 static uword GetStackSizeLimit(); |
57 | 57 |
58 // Returns number of available processor cores. | 58 // Returns number of available processor cores. |
59 static int NumberOfAvailableProcessors(); | 59 static int NumberOfAvailableProcessors(); |
60 | 60 |
61 // Sleep the currently executing thread for millis ms. | 61 // Sleep the currently executing thread for millis ms. |
62 static void Sleep(int64_t millis); | 62 static void Sleep(int64_t millis); |
63 | 63 |
64 // Print formatted output to stdout/stderr for debugging. | 64 // Print formatted output to stdout/stderr for debugging. |
65 static void Print(const char* format, ...); | 65 static void Print(const char* format, ...) PRINTF_ATTRIBUTE(1, 2); |
66 static void PrintErr(const char* format, ...); | 66 static void PrintErr(const char* format, ...) PRINTF_ATTRIBUTE(1, 2); |
67 static void VFPrint(FILE* stream, const char* format, va_list args); | 67 static void VFPrint(FILE* stream, const char* format, va_list args); |
68 // Print formatted output info a buffer. | 68 // Print formatted output info a buffer. |
69 // | 69 // |
70 // Does not write more than size characters (including the trailing '\0'). | 70 // Does not write more than size characters (including the trailing '\0'). |
71 // | 71 // |
72 // Returns the number of characters (excluding the trailing '\0') | 72 // Returns the number of characters (excluding the trailing '\0') |
73 // that would been written if the buffer had been big enough. If | 73 // that would been written if the buffer had been big enough. If |
74 // the return value is greater or equal than the given size then the | 74 // the return value is greater or equal than the given size then the |
75 // output has been truncated. The return value is never negative. | 75 // output has been truncated. The return value is never negative. |
76 // | 76 // |
77 // The buffer will always be terminated by a '\0', unless the buffer | 77 // The buffer will always be terminated by a '\0', unless the buffer |
78 // is of size 0. The buffer might be NULL if the size is 0. | 78 // is of size 0. The buffer might be NULL if the size is 0. |
79 // | 79 // |
80 // This specification conforms to C99 standard which is implemented | 80 // This specification conforms to C99 standard which is implemented |
81 // by glibc 2.1+ with one exception: the C99 standard allows a | 81 // by glibc 2.1+ with one exception: the C99 standard allows a |
82 // negative return value. We will terminate the vm rather than let | 82 // negative return value. We will terminate the vm rather than let |
83 // that occur. | 83 // that occur. |
84 static int SNPrint(char* str, size_t size, const char* format, ...); | 84 static int SNPrint(char* str, size_t size, const char* format, ...) |
| 85 PRINTF_ATTRIBUTE(3, 4); |
85 static int VSNPrint(char* str, size_t size, | 86 static int VSNPrint(char* str, size_t size, |
86 const char* format, | 87 const char* format, |
87 va_list args); | 88 va_list args); |
88 | 89 |
89 // Converts a C string which represents a valid dart integer into a 64 bit | 90 // Converts a C string which represents a valid dart integer into a 64 bit |
90 // value. | 91 // value. |
91 // Returns false if it is unable to convert the string to a 64 bit value, | 92 // Returns false if it is unable to convert the string to a 64 bit value, |
92 // the failure could be because of underflow/overflow or invalid characters. | 93 // the failure could be because of underflow/overflow or invalid characters. |
93 // On success the function returns true and 'value' contains the converted | 94 // On success the function returns true and 'value' contains the converted |
94 // value. | 95 // value. |
95 static bool StringToInt64(const char* str, int64_t* value); | 96 static bool StringToInt64(const char* str, int64_t* value); |
96 | 97 |
97 // Initialize the OS class. | 98 // Initialize the OS class. |
98 static void InitOnce(); | 99 static void InitOnce(); |
99 | 100 |
100 // Shut down the OS class. | 101 // Shut down the OS class. |
101 static void Shutdown(); | 102 static void Shutdown(); |
102 | 103 |
103 static void Abort(); | 104 static void Abort(); |
104 | 105 |
105 static void Exit(int code); | 106 static void Exit(int code); |
106 }; | 107 }; |
107 | 108 |
108 } // namespace dart | 109 } // namespace dart |
109 | 110 |
110 #endif // VM_OS_H_ | 111 #endif // VM_OS_H_ |
OLD | NEW |