diff options
author | David Hendricks <dhendrix@chromium.org> | 2016-02-25 15:33:11 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-02-29 18:20:07 -0800 |
commit | 7b43197449dc864c184c28c644d7b6cb62a688a1 (patch) | |
tree | d6ed4773aedb9c54906f1d59d8e038cd734d7892 | |
parent | ee86be472d74c3245c0443171b3552fcbdde8929 (diff) | |
download | chrome-ec-7b43197449dc864c184c28c644d7b6cb62a688a1.tar.gz |
Add library for working with Android
This adds a couple of helper functions for working within Android:
- in_android(): Crude test that uses getenv() to see if an Android-
specific environment variable is defined.
- android_tmpdir_path(): Android doesn't have the usual locations for
temporary file storage such as /tmp or even /var/run/locks. And to
make matters worse, there isn't even a standard location for
temporary files so it must be determined at run time.
This will be used in a follow-up patch.
BUG=chrome-os-partner:49527
BRANCH=none
TEST=tested on smaug
Change-Id: Ifb5fb4067fffb7c8cb2d4350ca4a223e884d3aa5
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/329299
Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r-- | util/lock/android.c | 51 | ||||
-rw-r--r-- | util/lock/android.h | 54 | ||||
-rw-r--r-- | util/lock/build.mk | 1 |
3 files changed, 106 insertions, 0 deletions
diff --git a/util/lock/android.c b/util/lock/android.c new file mode 100644 index 0000000000..8472b6db68 --- /dev/null +++ b/util/lock/android.c @@ -0,0 +1,51 @@ +/* + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, this software may be distributed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + */ + +#include <stdlib.h> + +#include "android.h" + +int in_android(void) +{ + if (getenv("ANDROID_ROOT")) + return 1; + + return 0; +} + +char *android_tmpdir_path(void) +{ + return getenv("TMPDIR"); +} diff --git a/util/lock/android.h b/util/lock/android.h new file mode 100644 index 0000000000..bb08486919 --- /dev/null +++ b/util/lock/android.h @@ -0,0 +1,54 @@ +/* + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, this software may be distributed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + */ + +#ifndef ANDROID_H__ +#define ANDROID_H__ + +/* + * in_android - Test to see if the underlying OS is Android + * + * returns boolean 1 to indicate true, 0 otherwise + */ +extern int in_android(void); + +/** + * Determine where temporary files go. + * + * @return A pointer to value of directory containing temporary files if + * successful, or NULL otherwise + */ +extern char *android_tmpdir_path(void); + +#endif diff --git a/util/lock/build.mk b/util/lock/build.mk index 91987d4d43..6cf595b995 100644 --- a/util/lock/build.mk +++ b/util/lock/build.mk @@ -7,3 +7,4 @@ # util-lock-objs=csem.o ipc_lock.o gec_lock.o +util-lock-objs+=android.o |