Init basesystem source codes.
[staging/basesystem.git] / vehicleservice / positioning_base_library / library / src / _pbProcMng.cpp
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
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 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
18  File name      : _pbProcMng.cpp
19  System name    :
20  Subsystem name :
21  Title          :
22 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
23
24 #include <fcntl.h>
25 #include <sys/procfs.h>
26 #include <vehicle_service/positioning_base_library.h>
27 #include "WPF_STD_private.h"
28 #include "_pbInternalProc.h"
29 #include "_pbWaitforsingleobject.h"
30
31 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
32  * MODULE    : ExitProcess
33  * ABSTRACT  : Terminate one process and all threads belonging to that process.
34  * NOTE      :
35  * ARGUMENT  :
36  * RETURN    : VOID defined
37  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
38 VOID ExitProcess(UINT u_exit_code) {  // LCOV_EXCL_START 8:dead code
39     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
40     exit(u_exit_code);
41 }
42 // LCOV_EXCL_STOP
43
44 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
45  * MODULE    : GetCurrentProcess
46  * ABSTRACT  : Get a pseudo handle for the current process.
47  * NOTE      :
48  * ARGUMENT  :
49  * RETURN    : HANDLE defined
50  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
51 /* QAC 3460 */
52 HANDLE GetCurrentProcess(void) {  // LCOV_EXCL_START 8:dead code
53     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
54     return reinterpret_cast<HANDLE>(getpid());
55 }
56 // LCOV_EXCL_STOP
57
58 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
59  * MODULE    : GetCurrentProcessId
60  * ABSTRACT  : Get the process identifier of the calling process.
61  * NOTE      :
62  * ARGUMENT  :
63  * RETURN    : DWORD defined
64  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
65 /* QAC 3460 */
66 DWORD GetCurrentProcessId(void) {  // LCOV_EXCL_START 8:dead code
67     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
68     return (DWORD)getpid();
69 }
70 // LCOV_EXCL_STOP
71
72 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
73  * MODULE    : _pb_ExitThread
74  * ABSTRACT  : Terminate a thread
75  * NOTE      :
76  * ARGUMENT  :
77  * RETURN    : VOID defined
78  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
79 VOID _pb_ExitThread(DWORD dw_exit_code) {   // LCOV_EXCL_START 8:dead code  // NOLINT(whitespace/line_length)  // NOLINT(readability/nolint)  WPF_SYSAPI.h API
80     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
81     /* Delete handle type */
82     WaitObjectDel(reinterpret_cast<HANDLE*>(pthread_self()));
83
84     return pthread_exit (reinterpret_cast<void*>(dw_exit_code));
85 }
86 // LCOV_EXCL_STOP
87
88 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
89  * MODULE    : TerminateThread
90  * ABSTRACT  : Terminate a thread
91  * NOTE      :
92  * ARGUMENT  :
93  * RETURN    : BOOL defined
94  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
95 BOOL TerminateThread(HANDLE h_thread, DWORD dw_exit_code) {  // LCOV_EXCL_START 8:dead code
96     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
97     int32    lret = EOK;
98     BOOL    bret = TRUE;
99
100     /* Delete handle type */
101     WaitObjectDel(h_thread);
102
103     /* When an error occurs */
104     if (lret == EOK) {
105         bret = FALSE;
106     }
107
108     return bret;
109 }
110 // LCOV_EXCL_STOP
111
112 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
113  * MODULE    : GetExitCodeThread
114  * ABSTRACT  : Get the exit status of the specified thread.
115  * NOTE      :
116  * ARGUMENT  :
117  * RETURN    : BOOL defined
118  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
119 BOOL GetExitCodeThread(HANDLE h_thread, LPDWORD lp_exit_code) {  // LCOV_EXCL_START 8:dead code
120     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
121     return TRUE;
122 }
123 // LCOV_EXCL_STOP
124
125 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
126  * MODULE    : WaitExitThread
127  * ABSTRACT  : Wait for the thread to terminate.
128  * NOTE      : It can only be used for a thread in the same process according to PosixBasedOS001.
129  * ARGUMENT  :
130  * RETURN    : BOOL defined
131  *         RET_NORMAL        : Normal completion
132  *         RET_ERROR        : ABEND
133  *         RET_ERRTIMEOUT    : Timeout occurred
134  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
135 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)
136     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
137     return RET_NORMAL;    /* Coverity CID: 18759 compliant */
138 }
139 // LCOV_EXCL_STOP
140
141 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
142  * MODULE    : GetCurrentThread
143  * ABSTRACT  : Get a pseudo handle for the current thread.
144  * NOTE      :
145  * ARGUMENT  :
146  * RETURN    : HANDLE defined
147  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
148 /* QAC 3460 */
149 HANDLE GetCurrentThread(void) {  // LCOV_EXCL_START 8:dead code
150     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
151     return (HANDLE)pthread_self();
152 }
153 // LCOV_EXCL_STOP
154
155 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
156  * MODULE    : GetCurrentThreadId
157  * ABSTRACT  : Get the thread identifier of the calling thread.
158  * NOTE      :
159  * ARGUMENT  :
160  * RETURN    : DWORD defined
161  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
162 /* QAC 3460 */
163 DWORD GetCurrentThreadId(void) {  // LCOV_EXCL_START 8:dead code
164     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
165     return (DWORD)pthread_self();
166 }
167 // LCOV_EXCL_STOP
168
169 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
170  * MODULE    : GetThreadTimes
171  * ABSTRACT  : Get time information about the specified thread.
172  * NOTE      :
173  * ARGUMENT  :
174  * RETURN    : BOOL defined
175  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
176 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)
177     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
178     return TRUE;    /* Coverity CID: 18765 compliant */
179 }
180 // LCOV_EXCL_STOP
181
182 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
183  * MODULE    : ResumeThread
184  * ABSTRACT  : Decrease the thread suspend count by 1.
185  * NOTE      : Always return 0 because no suspend operation is supported according to PosixBasedOS001.
186  * ARGUMENT  :
187  * RETURN    : DWORD defined
188  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
189 DWORD ResumeThread(HANDLE h_thread) {  // LCOV_EXCL_START 8:dead code
190     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
191     return 0;
192 }
193 // LCOV_EXCL_STOP
194
195 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
196  * MODULE    : SuspendThread
197  * ABSTRACT  : Suspend execution of the specified thread.
198  * NOTE      : Always return 0 because no suspend operation is supported according to PosixBasedOS001.
199  * ARGUMENT  :
200  * RETURN    : DWORD defined
201  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
202 DWORD SuspendThread(HANDLE h_thread) {  // LCOV_EXCL_START 8:dead code
203     AGL_ASSERT_NOT_TESTED();  // LCOV_EXCL_LINE 200: test assert
204     return 0;
205 }
206 // LCOV_EXCL_STOP
207