1/* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#ifndef BEGET_UTILS_API_H 17#define BEGET_UTILS_API_H 18 19#include <inttypes.h> 20 21#ifdef __cplusplus 22#if __cplusplus 23extern "C" { 24#endif 25#endif 26 27#define STARTUP_SERVICE_CTL "startup.service.ctl" 28 29typedef enum { 30 SERVICE_IDLE = 0, // service add 31 SERVICE_STARTING, // service start 32 SERVICE_STARTED, // 2 service ok running 33 SERVICE_READY, // 3 service ok running 34 SERVICE_STOPPING, 35 SERVICE_STOPPED, // 5 36 SERVICE_ERROR, 37 SERVICE_SUSPENDED, 38 SERVICE_FREEZED, 39 SERVICE_DISABLED, 40 SERVICE_CRITICAL 41} ServiceStatus; 42 43enum ServiceAction { 44 START = 0, 45 STOP = 1, 46 RESTART = 2, 47}; 48 49int ServiceControlWithExtra(const char *serviceName, int action, const char *extArgv[], int extArgc); 50int ServiceControl(const char *serviceName, int action); 51int ServiceWaitForStatus(const char *serviceName, ServiceStatus status, int waitTimeout); 52int ServiceSetReady(const char *serviceName); 53int StartServiceByTimer(const char *serviceName, uint64_t timeout); 54int StopServiceTimer(const char *serviceName); 55#ifdef __cplusplus 56#if __cplusplus 57} 58#endif 59#endif 60#endif 61