Merge "Remove <asm/page.h>."

This commit is contained in:
Elliott Hughes 2014-02-25 00:01:44 +00:00 committed by Gerrit Code Review
commit ba40a56017
8 changed files with 32 additions and 48 deletions

View file

@ -40,7 +40,7 @@
// getpagesize() and __getpageshift(). Needed for backwards compatibility with old NDK apps.
extern "C" {
unsigned int __page_size = PAGE_SIZE;
unsigned int __page_shift = PAGE_SHIFT;
unsigned int __page_shift = 12;
}
// TODO: remove this backward compatibility hack (for jb-mr1 strace binaries).

View file

@ -480,7 +480,7 @@ void endusershell() {
UNIMPLEMENTED;
}
// Portable code should use sysconf(_SC_PAGESIZE) directly instead.
// Portable code should use sysconf(_SC_PAGE_SIZE) directly instead.
int getpagesize() {
return sysconf(_SC_PAGESIZE);
return sysconf(_SC_PAGE_SIZE);
}

View file

@ -229,8 +229,11 @@ int sysconf(int name) {
#endif
case _SC_ATEXIT_MAX: return SYSTEM_ATEXIT_MAX;
case _SC_IOV_MAX: return SYSTEM_IOV_MAX;
case _SC_PAGESIZE: return PAGE_SIZE;
case _SC_PAGE_SIZE: return PAGE_SIZE;
case _SC_PAGESIZE:
case _SC_PAGE_SIZE:
return PAGE_SIZE;
#ifdef _XOPEN_UNIX
case _SC_XOPEN_UNIX: return _XOPEN_UNIX;
#endif

View file

@ -1,25 +0,0 @@
/*
* Copyright (C) 2013 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.
*/
#ifndef __ASM_PAGE_H
#define __ASM_PAGE_H
/* New code should use sysconf(_SC_PAGESIZE) instead. */
#define PAGE_SHIFT 12
#define PAGE_SIZE (1ULL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE - 1))
#endif

View file

@ -105,9 +105,15 @@
#define ULONG_LONG_MAX ULLONG_MAX
#endif
/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
#ifndef PAGE_SIZE
#define PAGE_SIZE 4096
#endif
#ifndef PAGESIZE
#include <asm/page.h>
#define PAGESIZE PAGE_SIZE
#endif
/* glibc's PAGE_MASK is the bitwise negation of BSD's! TODO: remove? */
#define PAGE_MASK (~(PAGE_SIZE - 1))
#endif /* !_LIMITS_H_ */

View file

@ -31,7 +31,6 @@
#include <sys/cdefs.h>
#include <sys/types.h>
#include <asm/mman.h>
#include <asm/page.h>
__BEGIN_DECLS
@ -44,23 +43,23 @@ __BEGIN_DECLS
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
extern void* mmap(void *, size_t, int, int, int, off_t);
extern void* mmap64(void *, size_t, int, int, int, off64_t);
extern int munmap(void *, size_t);
extern int msync(const void *, size_t, int);
extern int mprotect(const void *, size_t, int);
extern void* mremap(void *, size_t, size_t, unsigned long);
extern void* mmap(void*, size_t, int, int, int, off_t);
extern void* mmap64(void*, size_t, int, int, int, off64_t);
extern int munmap(void*, size_t);
extern int msync(const void*, size_t, int);
extern int mprotect(const void*, size_t, int);
extern void* mremap(void*, size_t, size_t, unsigned long);
extern int mlockall(int);
extern int munlockall(void);
extern int mlock(const void *, size_t);
extern int munlock(const void *, size_t);
extern int madvise(const void *, size_t, int);
extern int mlockall(int);
extern int munlockall(void);
extern int mlock(const void*, size_t);
extern int munlock(const void*, size_t);
extern int madvise(const void*, size_t, int);
extern int mlock(const void *addr, size_t len);
extern int munlock(const void *addr, size_t len);
extern int mlock(const void*, size_t);
extern int munlock(const void*, size_t);
extern int mincore(void* start, size_t length, unsigned char* vec);
extern int mincore(void*, size_t, unsigned char*);
__END_DECLS

View file

@ -30,6 +30,7 @@
#define _SYS_USER_H_
#include <sys/cdefs.h>
#include <limits.h> /* For PAGE_SIZE. */
__BEGIN_DECLS

View file

@ -20,11 +20,11 @@
#include <unistd.h>
TEST(sys_mman, mmap_negative) {
off_t off = -sysconf(_SC_PAGESIZE); // Aligned but negative.
off_t off = -sysconf(_SC_PAGE_SIZE); // Aligned but negative.
ASSERT_EQ(MAP_FAILED, mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, off));
}
TEST(sys_mman, mmap64_negative) {
off64_t off64 = -sysconf(_SC_PAGESIZE); // Aligned but negative.
off64_t off64 = -sysconf(_SC_PAGE_SIZE); // Aligned but negative.
ASSERT_EQ(MAP_FAILED, mmap64(NULL, 4096, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, off64));
}