X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=os%2Fos-android.h;h=a81cd815e1a7df5b0328fbda515edbfa10f40042;hb=cb765e413e4d124355c3eec47f7ac8cd314a6951;hp=bb590e4786fe3f713ed7e1a1914963ecc9dc1276;hpb=496b1f9ee8b6e18991b2dce0bd20a6fd19d6dd2c;p=fio.git diff --git a/os/os-android.h b/os/os-android.h index bb590e47..a81cd815 100644 --- a/os/os-android.h +++ b/os/os-android.h @@ -18,7 +18,6 @@ #include #include "./os-linux-syscall.h" -#include "binject.h" #include "../file.h" #ifndef __has_builtin // Optional of course. @@ -59,6 +58,12 @@ #define MAP_HUGETLB 0x40000 /* arch specific */ #endif +#ifdef CONFIG_PTHREAD_GETAFFINITY +#define FIO_HAVE_GET_THREAD_AFFINITY +#define fio_get_thread_affinity(mask) \ + pthread_getaffinity_np(pthread_self(), sizeof(mask), &(mask)) +#endif + #ifndef CONFIG_NO_SHM /* * Bionic doesn't support SysV shared memeory, so implement it using ashmem @@ -66,11 +71,15 @@ #include #include #include +#include +#if __ANDROID_API__ >= __ANDROID_API_O__ +#include +#else +#define ASHMEM_DEVICE "/dev/ashmem" +#endif #define shmid_ds shmid64_ds #define SHM_HUGETLB 04000 -#define ASHMEM_DEVICE "/dev/ashmem" - static inline int shmctl(int __shmid, int __cmd, struct shmid_ds *__buf) { int ret=0; @@ -84,6 +93,16 @@ static inline int shmctl(int __shmid, int __cmd, struct shmid_ds *__buf) return ret; } +#if __ANDROID_API__ >= __ANDROID_API_O__ +static inline int shmget(key_t __key, size_t __size, int __shmflg) +{ + char keybuf[11]; + + sprintf(keybuf, "%d", __key); + + return ASharedMemory_create(keybuf, __size + sizeof(uint64_t)); +} +#else static inline int shmget(key_t __key, size_t __size, int __shmflg) { int fd,ret; @@ -109,6 +128,7 @@ error: close(fd); return ret; } +#endif static inline void *shmat(int __shmid, const void *__shmaddr, int __shmflg) { @@ -202,23 +222,6 @@ static inline unsigned long long os_phys_mem(void) return (unsigned long long) pages * (unsigned long long) pagesize; } -typedef struct { unsigned short r[3]; } os_random_state_t; - -static inline void os_random_seed(unsigned long seed, os_random_state_t *rs) -{ - rs->r[0] = seed & 0xffff; - seed >>= 16; - rs->r[1] = seed & 0xffff; - seed >>= 16; - rs->r[2] = seed & 0xffff; - seed48(rs->r); -} - -static inline long os_random_long(os_random_state_t *rs) -{ - return nrand48(rs->r); -} - #ifdef O_NOATIME #define FIO_O_NOATIME O_NOATIME #else