~mir-team/mir/in-process-egl+input-conglomeration

« back to all changes in this revision

Viewing changes to 3rd_party/android-input/android/frameworks/native/include/utils/ThreadDefs.h

Merged trunk and fixed issues

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2007 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 _LIBS_UTILS_THREAD_DEFS_H
18
 
#define _LIBS_UTILS_THREAD_DEFS_H
19
 
 
20
 
#include <stdint.h>
21
 
#include <sys/types.h>
22
 
#include <system/graphics.h>
23
 
 
24
 
// ---------------------------------------------------------------------------
25
 
// C API
26
 
 
27
 
#ifdef __cplusplus
28
 
extern "C" {
29
 
#endif
30
 
 
31
 
typedef void* android_thread_id_t;
32
 
 
33
 
typedef int (*android_thread_func_t)(void*);
34
 
 
35
 
enum {
36
 
    /*
37
 
     * ***********************************************
38
 
     * ** Keep in sync with android.os.Process.java **
39
 
     * ***********************************************
40
 
     * 
41
 
     * This maps directly to the "nice" priorities we use in Android.
42
 
     * A thread priority should be chosen inverse-proportionally to
43
 
     * the amount of work the thread is expected to do. The more work
44
 
     * a thread will do, the less favorable priority it should get so that 
45
 
     * it doesn't starve the system. Threads not behaving properly might
46
 
     * be "punished" by the kernel.
47
 
     * Use the levels below when appropriate. Intermediate values are
48
 
     * acceptable, preferably use the {MORE|LESS}_FAVORABLE constants below.
49
 
     */
50
 
    ANDROID_PRIORITY_LOWEST         =  19,
51
 
 
52
 
    /* use for background tasks */
53
 
    ANDROID_PRIORITY_BACKGROUND     =  10,
54
 
    
55
 
    /* most threads run at normal priority */
56
 
    ANDROID_PRIORITY_NORMAL         =   0,
57
 
    
58
 
    /* threads currently running a UI that the user is interacting with */
59
 
    ANDROID_PRIORITY_FOREGROUND     =  -2,
60
 
 
61
 
    /* the main UI thread has a slightly more favorable priority */
62
 
    ANDROID_PRIORITY_DISPLAY        =  -4,
63
 
    
64
 
    /* ui service treads might want to run at a urgent display (uncommon) */
65
 
    ANDROID_PRIORITY_URGENT_DISPLAY =  HAL_PRIORITY_URGENT_DISPLAY,
66
 
    
67
 
    /* all normal audio threads */
68
 
    ANDROID_PRIORITY_AUDIO          = -16,
69
 
    
70
 
    /* service audio threads (uncommon) */
71
 
    ANDROID_PRIORITY_URGENT_AUDIO   = -19,
72
 
 
73
 
    /* should never be used in practice. regular process might not 
74
 
     * be allowed to use this level */
75
 
    ANDROID_PRIORITY_HIGHEST        = -20,
76
 
 
77
 
    ANDROID_PRIORITY_DEFAULT        = ANDROID_PRIORITY_NORMAL,
78
 
    ANDROID_PRIORITY_MORE_FAVORABLE = -1,
79
 
    ANDROID_PRIORITY_LESS_FAVORABLE = +1
80
 
};
81
 
 
82
 
#ifdef __cplusplus
83
 
} // extern "C"
84
 
#endif
85
 
 
86
 
// ---------------------------------------------------------------------------
87
 
// C++ API
88
 
#ifdef __cplusplus
89
 
namespace android {
90
 
// ---------------------------------------------------------------------------
91
 
 
92
 
typedef android_thread_id_t thread_id_t;
93
 
typedef android_thread_func_t thread_func_t;
94
 
 
95
 
enum {
96
 
    PRIORITY_LOWEST         = ANDROID_PRIORITY_LOWEST,
97
 
    PRIORITY_BACKGROUND     = ANDROID_PRIORITY_BACKGROUND,
98
 
    PRIORITY_NORMAL         = ANDROID_PRIORITY_NORMAL,
99
 
    PRIORITY_FOREGROUND     = ANDROID_PRIORITY_FOREGROUND,
100
 
    PRIORITY_DISPLAY        = ANDROID_PRIORITY_DISPLAY,
101
 
    PRIORITY_URGENT_DISPLAY = ANDROID_PRIORITY_URGENT_DISPLAY,
102
 
    PRIORITY_AUDIO          = ANDROID_PRIORITY_AUDIO,
103
 
    PRIORITY_URGENT_AUDIO   = ANDROID_PRIORITY_URGENT_AUDIO,
104
 
    PRIORITY_HIGHEST        = ANDROID_PRIORITY_HIGHEST,
105
 
    PRIORITY_DEFAULT        = ANDROID_PRIORITY_DEFAULT,
106
 
    PRIORITY_MORE_FAVORABLE = ANDROID_PRIORITY_MORE_FAVORABLE,
107
 
    PRIORITY_LESS_FAVORABLE = ANDROID_PRIORITY_LESS_FAVORABLE
108
 
};
109
 
 
110
 
// ---------------------------------------------------------------------------
111
 
} // namespace android
112
 
#endif  // __cplusplus
113
 
// ---------------------------------------------------------------------------
114
 
 
115
 
 
116
 
#endif // _LIBS_UTILS_THREAD_DEFS_H