Upstream system_properties

This commit is contained in:
topjohnwu 2020-01-27 19:50:03 +08:00
parent 30286f0ea5
commit e395c9442f
8 changed files with 22 additions and 43 deletions

View File

@ -14,8 +14,7 @@
* limitations under the License.
*/
#ifndef ERRNO_RESTORER_H
#define ERRNO_RESTORER_H
#pragma once
#include <errno.h>
@ -37,7 +36,5 @@ class ErrnoRestorer {
private:
int saved_errno_;
DISALLOW_COPY_AND_ASSIGN(ErrnoRestorer);
BIONIC_DISALLOW_COPY_AND_ASSIGN(ErrnoRestorer);
};
#endif // ERRNO_RESTORER_H

View File

@ -25,8 +25,8 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _BIONIC_LOCK_H
#define _BIONIC_LOCK_H
#pragma once
#include <stdatomic.h>
#include "private/bionic_futex.h"
@ -70,25 +70,24 @@ class Lock {
}
void unlock() {
bool shared = process_shared; /* cache to local variable */
if (atomic_exchange_explicit(&state, Unlocked, memory_order_release) == LockedWithWaiter) {
__futex_wake_ex(&state, process_shared, 1);
__futex_wake_ex(&state, shared, 1);
}
}
};
class LockGuard {
public:
LockGuard(Lock& lock) : lock_(lock) {
explicit LockGuard(Lock& lock) : lock_(lock) {
lock_.lock();
}
~LockGuard() {
lock_.unlock();
}
DISALLOW_COPY_AND_ASSIGN(LockGuard);
BIONIC_DISALLOW_COPY_AND_ASSIGN(LockGuard);
private:
Lock& lock_;
};
#endif // _BIONIC_LOCK_H

View File

@ -14,31 +14,17 @@
* limitations under the License.
*/
#ifndef _BIONIC_MACROS_H_
#define _BIONIC_MACROS_H_
#pragma once
#include <stdint.h>
// Frameworks OpenGL code currently leaks this header and allows
// collisions with other declarations, e.g., from libnativehelper.
// TODO: Remove once cleaned up. b/18334516
#if !defined(DISALLOW_COPY_AND_ASSIGN)
// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions.
// It goes in the private: declarations in a class.
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&) = delete; \
#define BIONIC_DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&) = delete; \
void operator=(const TypeName&) = delete
#endif // !defined(DISALLOW_COPY_AND_ASSIGN)
// A macro to disallow all the implicit constructors, namely the
// default constructor, copy constructor and operator= functions.
//
// This should be used in the private: declarations for a class
// that wants to prevent anyone from instantiating it. This is
// especially useful for classes containing only static methods.
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
TypeName() = delete; \
DISALLOW_COPY_AND_ASSIGN(TypeName)
#define BIONIC_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
TypeName() = delete; \
BIONIC_DISALLOW_COPY_AND_ASSIGN(TypeName)
#define BIONIC_ROUND_UP_POWER_OF_2(value) \
((sizeof(value) == 8) \
@ -101,5 +87,3 @@ char (&ArraySizeHelper(T (&array)[N]))[N]; // NOLINT(readability/casting)
#else
#define __BIONIC_FALLTHROUGH
#endif
#endif // _BIONIC_MACROS_H_

View File

@ -42,7 +42,7 @@ class ContextNode {
Unmap();
}
DISALLOW_COPY_AND_ASSIGN(ContextNode);
BIONIC_DISALLOW_COPY_AND_ASSIGN(ContextNode);
bool Open(bool access_rw, bool* fsetxattr_failed);
bool CheckAccessAndOpen();

View File

@ -86,7 +86,7 @@ struct prop_bt {
}
private:
DISALLOW_COPY_AND_ASSIGN(prop_bt);
BIONIC_DISALLOW_COPY_AND_ASSIGN(prop_bt);
};
class prop_area {
@ -138,10 +138,10 @@ class prop_area {
prop_bt* root_node();
prop_bt* find_prop_bt(prop_bt* const bt, const char* name, uint32_t namelen, bool alloc_if_needed);
/* resetprop: Traverse through the trie and find the node */
prop_bt *find_prop_bt(prop_bt *const trie, const char *name, bool alloc_if_needed);
prop_bt *find_prop_bt(prop_bt *const bt, const char* name, bool alloc_if_needed);
prop_bt* find_prop_bt(prop_bt* const bt, const char* name, uint32_t namelen, bool alloc_if_needed);
const prop_info* find_property(prop_bt* const trie, const char* name, uint32_t namelen,
const char* value, uint32_t valuelen, bool alloc_if_needed);
@ -163,5 +163,5 @@ class prop_area {
uint32_t reserved_[28];
char data_[0];
DISALLOW_COPY_AND_ASSIGN(prop_area);
BIONIC_DISALLOW_COPY_AND_ASSIGN(prop_area);
};

View File

@ -84,7 +84,7 @@ struct prop_info {
prop_info(const char* name, uint32_t namelen, uint32_t long_offset);
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(prop_info);
BIONIC_DISALLOW_IMPLICIT_CONSTRUCTORS(prop_info);
};
static_assert(sizeof(prop_info) == 96, "sizeof struct prop_info must be 96 bytes");

View File

@ -52,7 +52,7 @@ class SystemProperties {
explicit SystemProperties(bool initialized) : initialized_(initialized) {
}
DISALLOW_COPY_AND_ASSIGN(SystemProperties);
BIONIC_DISALLOW_COPY_AND_ASSIGN(SystemProperties);
bool Init(const char* filename);
bool AreaInit(const char* filename, bool* fsetxattr_failed);

View File

@ -320,7 +320,6 @@ prop_bt *prop_area::find_prop_bt(prop_bt *const trie, const char *name, bool all
const prop_info* prop_area::find_property(prop_bt* const trie, const char* name, uint32_t namelen,
const char* value, uint32_t valuelen,
bool alloc_if_needed) {
const char* remaining_name = name;
prop_bt* current = find_prop_bt(trie, name, alloc_if_needed);
if (!current)
return nullptr;