summaryrefslogtreecommitdiffstats
path: root/positioning_base_library/library/src/_pbProcMng.cpp
blob: df4c02e4f4a092542d8147a15192f377d74390c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/*
 * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 File name      : _pbProcMng.cpp
 System name    :
 Subsystem name :
 Title          :
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#include <fcntl.h>
#include <sys/procfs.h>
#include <vehicle_service/positioning_base_library.h>
#include "WPF_STD_private.h"
#include "_pbInternalProc.h"
#include "_pbWaitforsingleobject.h"

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : ExitProcess
 * ABSTRACT  : Terminate one process and all threads belonging to that process.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : VOID defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
VOID ExitProcess(UINT u_exit_code) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    exit(u_exit_code);
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : GetCurrentProcess
 * ABSTRACT  : Get a pseudo handle for the current process.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : HANDLE defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* QAC 3460 */
HANDLE GetCurrentProcess(void) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return reinterpret_cast<HANDLE>(getpid());
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : GetCurrentProcessId
 * ABSTRACT  : Get the process identifier of the calling process.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : DWORD defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* QAC 3460 */
DWORD GetCurrentProcessId(void) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return (DWORD)getpid();
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : _pb_ExitThread
 * ABSTRACT  : Terminate a thread
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : VOID defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
VOID _pb_ExitThread(DWORD dw_exit_code) {   // LCOV_EXCL_START 8:dead code  // NOLINT(whitespace/line_length)  // NOLINT(readability/nolint)  WPF_SYSAPI.h API
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    /* Delete handle type */
    WaitObjectDel(reinterpret_cast<HANDLE*>(pthread_self()));

    return pthread_exit (reinterpret_cast<void*>(dw_exit_code));
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : TerminateThread
 * ABSTRACT  : Terminate a thread
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : BOOL defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL TerminateThread(HANDLE h_thread, DWORD dw_exit_code) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    int32    lret = EOK;
    BOOL    bret = TRUE;

    /* Delete handle type */
    WaitObjectDel(h_thread);

    /* When an error occurs */
    if (lret == EOK) {
        bret = FALSE;
    }

    return bret;
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : GetExitCodeThread
 * ABSTRACT  : Get the exit status of the specified thread.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : BOOL defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL GetExitCodeThread(HANDLE h_thread, LPDWORD lp_exit_code) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return TRUE;
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : WaitExitThread
 * ABSTRACT  : Wait for the thread to terminate.
 * NOTE      : It can only be used for a thread in the same process according to PosixBasedOS001.
 * ARGUMENT  :
 * RETURN    : BOOL defined
 *         RET_NORMAL        : Normal completion
 *         RET_ERROR        : ABEND
 *         RET_ERRTIMEOUT    : Timeout occurred
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
RET_API WaitExitThread(HANDLE h_handle, u_int32 ul_mill_seconds, u_int32* pul_exit_code) {  // LCOV_EXCL_START 8:dead code  // NOLINT(whitespace/line_length)
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return RET_NORMAL;    /* Coverity CID: 18759 compliant */
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : GetCurrentThread
 * ABSTRACT  : Get a pseudo handle for the current thread.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : HANDLE defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* QAC 3460 */
HANDLE GetCurrentThread(void) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return (HANDLE)pthread_self();
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : GetCurrentThreadId
 * ABSTRACT  : Get the thread identifier of the calling thread.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : DWORD defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* QAC 3460 */
DWORD GetCurrentThreadId(void) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return (DWORD)pthread_self();
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : GetThreadTimes
 * ABSTRACT  : Get time information about the specified thread.
 * NOTE      :
 * ARGUMENT  :
 * RETURN    : BOOL defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL GetThreadTimes(HANDLE h_process, HANDLE h_thread, LPFILETIME lp_creation_time, LPFILETIME lp_exit_time, LPFILETIME lp_kernel_time, LPFILETIME lp_user_time) {  // LCOV_EXCL_START 8:dead code  // NOLINT(whitespace/line_length)
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return TRUE;    /* Coverity CID: 18765 compliant */
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : ResumeThread
 * ABSTRACT  : Decrease the thread suspend count by 1.
 * NOTE      : Always return 0 because no suspend operation is supported according to PosixBasedOS001.
 * ARGUMENT  :
 * RETURN    : DWORD defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
DWORD ResumeThread(HANDLE h_thread) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return 0;
}
// LCOV_EXCL_STOP

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * MODULE    : SuspendThread
 * ABSTRACT  : Suspend execution of the specified thread.
 * NOTE      : Always return 0 because no suspend operation is supported according to PosixBasedOS001.
 * ARGUMENT  :
 * RETURN    : DWORD defined
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
DWORD SuspendThread(HANDLE h_thread) {  // LCOV_EXCL_START 8:dead code
    AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
    return 0;
}
// LCOV_EXCL_STOP