1 /* //device/system/reference-ril/misc.c
2 **
3 ** Copyright 2006, 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 #include <sys/system_properties.h>
18 
19 #include <fcntl.h>
20 #include "misc.h"
21 /** returns 1 if line starts with prefix, 0 if it does not */
strStartsWith(const char * line,const char * prefix)22 int strStartsWith(const char *line, const char *prefix)
23 {
24     for ( ; *line != '\0' && *prefix != '\0' ; line++, prefix++) {
25         if (*line != *prefix) {
26             return 0;
27         }
28     }
29 
30     return *prefix == '\0';
31 }
32 
33 // Returns true iff running this process in an emulator VM
isInEmulator(void)34 bool isInEmulator(void) {
35   static int inQemu = -1;
36   if (inQemu < 0) {
37       char propValue[PROP_VALUE_MAX];
38       inQemu = (__system_property_get("ro.boot.qemu", propValue) != 0);
39   }
40   return inQemu == 1;
41 }
42 
qemu_open_modem_port()43 int qemu_open_modem_port() {
44     char propValue[PROP_VALUE_MAX];
45     if (__system_property_get("vendor.qemu.vport.modem", propValue) <= 0) {
46         return -1;
47     }
48     int fd = open(propValue, O_RDWR);
49     return fd;
50 }
51