From 0d05107265f762f367ad889c398f6275037fb265 Mon Sep 17 00:00:00 2001 From: Pete Delaney Date: Fri, 5 Oct 2012 00:23:49 -0700 Subject: [PATCH] [MIPS] Add Support timer_create. Signals needed to be mapped. Change-Id: Id0748924f16ac6787b87062d774e837a14d1233c Signed-off-by: Chris Dearman Signed-off-by: Pete Delaney --- ndk/sources/android/libportable/Android.mk | 3 +- .../android/libportable/arch-mips/timer.c | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 ndk/sources/android/libportable/arch-mips/timer.c diff --git a/ndk/sources/android/libportable/Android.mk b/ndk/sources/android/libportable/Android.mk index 70b45a4a5..aa8a5e25c 100644 --- a/ndk/sources/android/libportable/Android.mk +++ b/ndk/sources/android/libportable/Android.mk @@ -42,7 +42,8 @@ libportable_arch_src_files += \ arch-mips/socket.c \ arch-mips/sockopt.c \ arch-mips/stat.c \ - arch-mips/statfs.c + arch-mips/statfs.c \ + arch-mips/timer.c endif ifeq ($(TARGET_ARCH),arm) diff --git a/ndk/sources/android/libportable/arch-mips/timer.c b/ndk/sources/android/libportable/arch-mips/timer.c new file mode 100644 index 000000000..da3092709 --- /dev/null +++ b/ndk/sources/android/libportable/arch-mips/timer.c @@ -0,0 +1,36 @@ +/* + * Copyright 2012, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include + +int timer_create_portable(clockid_t clockid, struct sigevent *portable_evp, + timer_t *timerid) +{ + struct sigevent native_sigevent, *evp = portable_evp; + + if (!invalid_pointer(portable_evp) && + (evp->sigev_notify == SIGEV_SIGNAL || + evp->sigev_notify == SIGEV_THREAD_ID)) { + native_sigevent = *portable_evp; + evp = &native_sigevent; + evp->sigev_signo = map_portable_signum_to_mips(evp->sigev_signo); + } + return timer_create(clockid, evp, timerid); +}