9605a945f7
With this change, init sets a property "init.start" to show the CLOCK_BOOTTIME time at which init itself started, and for each service an "init.svc.<name>.start" property to show the CLOCK_BOOTTIME time at which that service was most recently started. These times can be used by tools like bootstat to track boot time. As part of this change, move init over to std::chrono. Also, rather than make the command-line argument handling more complex, I've switched to using an environment variable for communication between first- and second-stage init, and added another environment variable to pass the start time of the first stage through to the second stage. Bug: http://b/32780225 Test: manual Change-Id: Ia65a623e1866ea688b9a5433d6507926ce301dfe
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
/*
|
|
* Copyright (C) 2007 The Android Open Source Project
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#ifndef _INIT_INIT_H
|
|
#define _INIT_INIT_H
|
|
|
|
#include <string>
|
|
|
|
class Action;
|
|
class Service;
|
|
|
|
extern const char *ENV[32];
|
|
extern bool waiting_for_exec;
|
|
extern std::string default_console;
|
|
extern struct selabel_handle *sehandle;
|
|
extern struct selabel_handle *sehandle_prop;
|
|
|
|
void handle_control_message(const std::string& msg, const std::string& arg);
|
|
|
|
void property_changed(const char *name, const char *value);
|
|
|
|
void register_epoll_handler(int fd, void (*fn)());
|
|
|
|
int add_environment(const char* key, const char* val);
|
|
|
|
#endif /* _INIT_INIT_H */
|