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
ash / components / arc / mojom / timer.mojom [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Next min version: 2
module arc.mojom;
import "mojo/public/mojom/base/time.mojom";
[Extensible]
enum ArcTimerResult {
SUCCESS = 0,
FAILURE = 1,
};
[Extensible]
enum ClockId {
REALTIME_ALARM = 0,
BOOTTIME_ALARM = 1,
};
struct CreateTimerRequest {
// Type of the clock for which a timer needs to be created. This value
// corresponds to the clock ids used by timerfd_create.
ClockId clock_id;
// File descriptor to write to when the timer is expired. This indicates to
// the instance that the timer is expired. This fd is owned by the host.
handle expiration_fd;
};
// Next method ID: 3
interface TimerHost {
// Creates timers with the given arguments. Returns |ArcTimerResult::SUCCESS|
// iff timers corresponding to all clocks in |timer_requests| are created.
CreateTimers@0(array<CreateTimerRequest> timer_requests)
=> (ArcTimerResult result);
// Starts the timer of type |clock_id| to run at |absolute_expiration_time| in
// the future. If the timer is already running, it will be replaced.
// Notification will be performed as an 8-byte write to the associated
// expiration fd. Returns |ArcTimerResult::SUCCESS| if the timer can be
// started and |ArcTimerResult::FAILURE| otherwise.
StartTimer@1(ClockId clock_id,
mojo_base.mojom.TimeTicks absolute_expiration_time)
=> (ArcTimerResult result);
// Requests the host to set system clock time. The request is rejected if
// delta between requested time and current time is greater than 24 hours.
[MinVersion=1] SetTime@2(mojo_base.mojom.Time time)
=> (ArcTimerResult result);
};
// Next method ID: 1
interface TimerInstance {
// Establishes full-duplex communication with the host.
Init@0(pending_remote<TimerHost> host_remote) => ();
};