system/corennnnn
リビジョン | ebefc48e61a7d5cf2a3228e6c8729feeeb42d1b4 (tree) |
---|---|
日時 | 2009-05-29 21:45:04 |
作者 | David 'Digit' Turner <digit@goog...> |
コミッター | David 'Digit' Turner |
Expose the stable/frozen log-related definitions of <cutils/logd.h> into a new header: <android/log.h>
This is in order to expose the correponding functions in the 1.5 Native Development Kit, to allow
applicative native code to send messages to the log.
@@ -0,0 +1,128 @@ | ||
1 | +/* | |
2 | + * Copyright (C) 2009 The Android Open Source Project | |
3 | + * | |
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + * you may not use this file except in compliance with the License. | |
6 | + * You may obtain a copy of the License at | |
7 | + * | |
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + * | |
10 | + * Unless required by applicable law or agreed to in writing, software | |
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + * See the License for the specific language governing permissions and | |
14 | + * limitations under the License. | |
15 | + */ | |
16 | + | |
17 | +#ifndef _ANDROID_LOG_H | |
18 | +#define _ANDROID_LOG_H | |
19 | + | |
20 | +/****************************************************************** | |
21 | + * | |
22 | + * IMPORTANT NOTICE: | |
23 | + * | |
24 | + * This file is part of Android's set of stable system headers | |
25 | + * exposed by the Android NDK (Native Development Kit) since | |
26 | + * platform release 1.5 | |
27 | + * | |
28 | + * Third-party source AND binary code relies on the definitions | |
29 | + * here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES. | |
30 | + * | |
31 | + * - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES) | |
32 | + * - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS | |
33 | + * - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY | |
34 | + * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES | |
35 | + */ | |
36 | + | |
37 | +/* | |
38 | + * Support routines to send messages to the Android in-kernel log buffer, | |
39 | + * which can later be accessed through the 'logcat' utility. | |
40 | + * | |
41 | + * Each log message must have | |
42 | + * - a priority | |
43 | + * - a log tag | |
44 | + * - some text | |
45 | + * | |
46 | + * The tag normally corresponds to the component that emits the log message, | |
47 | + * and should be reasonably small. | |
48 | + * | |
49 | + * Log message text may be truncated to less than an implementation-specific | |
50 | + * limit (e.g. 1023 characters max). | |
51 | + * | |
52 | + * Note that a newline character ("\n") will be appended automatically to your | |
53 | + * log message, if not already there. It is not possible to send several messages | |
54 | + * and have them appear on a single line in logcat. | |
55 | + * | |
56 | + * PLEASE USE LOGS WITH MODERATION: | |
57 | + * | |
58 | + * - Sending log messages eats CPU and slow down your application and the | |
59 | + * system. | |
60 | + * | |
61 | + * - The circular log buffer is pretty small (<64KB), sending many messages | |
62 | + * might push off other important log messages from the rest of the system. | |
63 | + * | |
64 | + * - In release builds, only send log messages to account for exceptional | |
65 | + * conditions. | |
66 | + * | |
67 | + * NOTE: These functions MUST be implemented by /system/lib/liblog.so | |
68 | + */ | |
69 | + | |
70 | +#include <stdarg.h> | |
71 | + | |
72 | +#ifdef __cplusplus | |
73 | +extern "C" { | |
74 | +#endif | |
75 | + | |
76 | +/* | |
77 | + * Android log priority values, in ascending priority order. | |
78 | + */ | |
79 | +typedef enum android_LogPriority { | |
80 | + ANDROID_LOG_UNKNOWN = 0, | |
81 | + ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ | |
82 | + ANDROID_LOG_VERBOSE, | |
83 | + ANDROID_LOG_DEBUG, | |
84 | + ANDROID_LOG_INFO, | |
85 | + ANDROID_LOG_WARN, | |
86 | + ANDROID_LOG_ERROR, | |
87 | + ANDROID_LOG_FATAL, | |
88 | + ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */ | |
89 | +} android_LogPriority; | |
90 | + | |
91 | +/* | |
92 | + * Send a simple string to the log. | |
93 | + */ | |
94 | +int __android_log_write(int prio, const char *tag, const char *text); | |
95 | + | |
96 | +/* | |
97 | + * Send a formatted string to the log, used like printf(fmt,...) | |
98 | + */ | |
99 | +int __android_log_print(int prio, const char *tag, const char *fmt, ...) | |
100 | +#if defined(__GNUC__) | |
101 | + __attribute__ ((format(printf, 3, 4))) | |
102 | +#endif | |
103 | + ; | |
104 | + | |
105 | +/* | |
106 | + * A variant of __android_log_print() that takes a va_list to list | |
107 | + * additional parameters. | |
108 | + */ | |
109 | +int __android_log_vprint(int prio, const char *tag, | |
110 | + const char *fmt, va_list ap); | |
111 | + | |
112 | +/* | |
113 | + * Log an assertion failure and SIGTRAP the process to have a chance | |
114 | + * to inspect it, if a debugger is attached. This uses the FATAL priority. | |
115 | + */ | |
116 | +void __android_log_assert(const char *cond, const char *tag, | |
117 | + const char *fmt, ...) | |
118 | +#if defined(__GNUC__) | |
119 | + __attribute__ ((noreturn)) | |
120 | + __attribute__ ((format(printf, 3, 4))) | |
121 | +#endif | |
122 | + ; | |
123 | + | |
124 | +#ifdef __cplusplus | |
125 | +} | |
126 | +#endif | |
127 | + | |
128 | +#endif /* _ANDROID_LOG_H */ |
@@ -1,5 +1,5 @@ | ||
1 | 1 | /* |
2 | - * Copyright (C) 2006 The Android Open Source Project | |
2 | + * Copyright (C) 2009 The Android Open Source Project | |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
@@ -17,6 +17,12 @@ | ||
17 | 17 | #ifndef _ANDROID_CUTILS_LOGD_H |
18 | 18 | #define _ANDROID_CUTILS_LOGD_H |
19 | 19 | |
20 | +/* the stable/frozen log-related definitions have been | |
21 | + * moved to this header, which is exposed by the NDK | |
22 | + */ | |
23 | +#include <android/log.h> | |
24 | + | |
25 | +/* the rest is only used internally by the system */ | |
20 | 26 | #include <time.h> |
21 | 27 | #include <stdio.h> |
22 | 28 | #include <unistd.h> |
@@ -32,45 +38,10 @@ | ||
32 | 38 | extern "C" { |
33 | 39 | #endif |
34 | 40 | |
35 | -/* | |
36 | - * Priority values, in ascending priority order. | |
37 | - */ | |
38 | -typedef enum android_LogPriority { | |
39 | - ANDROID_LOG_UNKNOWN = 0, | |
40 | - ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ | |
41 | - ANDROID_LOG_VERBOSE, | |
42 | - ANDROID_LOG_DEBUG, | |
43 | - ANDROID_LOG_INFO, | |
44 | - ANDROID_LOG_WARN, | |
45 | - ANDROID_LOG_ERROR, | |
46 | - ANDROID_LOG_FATAL, | |
47 | - ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */ | |
48 | -} android_LogPriority; | |
49 | - | |
50 | -int __android_log_write(int prio, const char *tag, const char *text); | |
51 | - | |
52 | -int __android_log_vprint(int prio, const char *tag, | |
53 | - const char *fmt, va_list ap); | |
54 | - | |
55 | 41 | int __android_log_bwrite(int32_t tag, const void *payload, size_t len); |
56 | 42 | int __android_log_btwrite(int32_t tag, char type, const void *payload, |
57 | 43 | size_t len); |
58 | 44 | |
59 | -int __android_log_print(int prio, const char *tag, const char *fmt, ...) | |
60 | -#if defined(__GNUC__) | |
61 | - __attribute__ ((format(printf, 3, 4))) | |
62 | -#endif | |
63 | - ; | |
64 | - | |
65 | - | |
66 | -void __android_log_assert(const char *cond, const char *tag, | |
67 | - const char *fmt, ...) | |
68 | -#if defined(__GNUC__) | |
69 | - __attribute__ ((noreturn)) | |
70 | - __attribute__ ((format(printf, 3, 4))) | |
71 | -#endif | |
72 | - ; | |
73 | - | |
74 | 45 | #ifdef __cplusplus |
75 | 46 | } |
76 | 47 | #endif |