1/* //device/libs/telephony/ril_event.h
2**
3** Copyright 2008, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9**     http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18// Max number of fd's we watch at any one time.  Increase if necessary.
19#define MAX_FD_EVENTS 8
20
21typedef void (*ril_event_cb)(int fd, short events, void *userdata);
22
23struct ril_event {
24    struct ril_event *next;
25    struct ril_event *prev;
26
27    int fd;
28    int index;
29    bool persist;
30    struct timeval timeout;
31    ril_event_cb func;
32    void *param;
33};
34
35// Initialize internal data structs
36void ril_event_init();
37
38// Initialize an event
39void ril_event_set(struct ril_event * ev, int fd, bool persist, ril_event_cb func, void * param);
40
41// Add event to watch list
42void ril_event_add(struct ril_event * ev);
43
44// Add timer event
45void ril_timer_add(struct ril_event * ev, struct timeval * tv);
46
47// Remove event from watch list
48void ril_event_del(struct ril_event * ev);
49
50// Event loop
51void ril_event_loop();
52
53