Android-cuttlefish cvd tool
libbase
include
android-base
memory.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 The Android Open Source Project
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#pragma once
18
19
namespace
android
{
20
namespace
base {
21
22
// Use memcpy for access to unaligned data on targets with alignment
23
// restrictions. The compiler will generate appropriate code to access these
24
// structures without generating alignment exceptions.
25
template
<
typename
T>
26
static
inline
T
get_unaligned
(
const
void
* address) {
27
T result;
28
memcpy(&result, address,
sizeof
(T));
29
return
result;
30
}
31
32
template
<
typename
T>
33
static
inline
void
put_unaligned
(
void
* address, T v) {
34
memcpy(address, &v,
sizeof
(T));
35
}
36
37
}
// namespace base
38
}
// namespace android
android::base::put_unaligned
static void put_unaligned(void *address, T v)
Definition:
memory.h:33
android::base::get_unaligned
static T get_unaligned(const void *address)
Definition:
memory.h:26
android
Definition:
map_ptr.h:34
Generated by
1.9.4