100f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project/* //device/libs/telephony/ril_event.h 200f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project** 300f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project** Copyright 2008, The Android Open Source Project 400f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project** 57f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** Licensed under the Apache License, Version 2.0 (the "License"); 67f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** you may not use this file except in compliance with the License. 77f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** You may obtain a copy of the License at 800f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project** 97f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** http://www.apache.org/licenses/LICENSE-2.0 1000f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project** 117f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** Unless required by applicable law or agreed to in writing, software 127f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** distributed under the License is distributed on an "AS IS" BASIS, 137f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 147f8568086f2ea14885b0091c793e14c2656f0da2Wink Saville** See the License for the specific language governing permissions and 1500f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project** limitations under the License. 1600f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project*/ 1700f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 1800f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Max number of fd's we watch at any one time. Increase if necessary. 1900f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project#define MAX_FD_EVENTS 8 2000f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 2100f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projecttypedef void (*ril_event_cb)(int fd, short events, void *userdata); 2200f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 2300f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectstruct ril_event { 2400f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project struct ril_event *next; 2500f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project struct ril_event *prev; 2600f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 2700f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project int fd; 2800f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project int index; 2900f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project bool persist; 3000f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project struct timeval timeout; 3100f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project ril_event_cb func; 3200f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project void *param; 3300f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project}; 3400f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 3500f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Initialize internal data structs 3600f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectvoid ril_event_init(); 3700f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 3800f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Initialize an event 3900f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectvoid ril_event_set(struct ril_event * ev, int fd, bool persist, ril_event_cb func, void * param); 4000f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 4100f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Add event to watch list 4200f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectvoid ril_event_add(struct ril_event * ev); 4300f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 4400f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Add timer event 4500f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectvoid ril_timer_add(struct ril_event * ev, struct timeval * tv); 4600f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 4700f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Remove event from watch list 4800f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectvoid ril_event_del(struct ril_event * ev); 4900f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 5000f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project// Event loop 5100f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Projectvoid ril_event_loop(); 5200f06fc3fdb05d4276e76091cacb42b6f6862222The Android Open Source Project 53