Motr
M0
varr.c
Go to the documentation of this file.
1
/* -*- C -*- */
2
/*
3
* Copyright (c) 2013-2020 Seagate Technology LLC and/or its Affiliates
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
* For any questions about this software or licensing,
18
* please email opensource@seagate.com or cortx-questions@seagate.com.
19
*
20
*/
21
22
23
#include "
lib/varr.h
"
/* m0_varr */
24
#include "
lib/varr_private.h
"
25
#include "
lib/bob.h
"
/* m0_bob_type */
26
#include "
lib/types.h
"
/* Includes appropriate types header. */
27
#include "
lib/memory.h
"
/* m0_alloc(), m0_free() */
28
#include <linux/pagemap.h>
29
30
M0_EXTERN
void
*
m0_varr_buf_alloc
(
size_t
bufsize)
31
{
32
if
(bufsize ==
PAGE_SIZE
)
33
return
(
void
*)get_zeroed_page(GFP_KERNEL);
34
else
35
return
m0_alloc
(bufsize);
36
}
37
38
M0_EXTERN
void
m0_varr_buf_free
(
void
*
buf
,
size_t
bufsize)
39
{
40
M0_PRE
(
buf
!=
NULL
);
41
if
(bufsize ==
PAGE_SIZE
)
42
free_page((
unsigned
long
)
buf
);
43
else
44
m0_free
(
buf
);
45
}
46
47
/*
48
* Local variables:
49
* c-indentation-style: "K&R"
50
* c-basic-offset: 8
51
* tab-width: 8
52
* fill-column: 80
53
* scroll-step: 1
54
* End:
55
*/
M0_PRE
#define M0_PRE(cond)
types.h
memory.h
NULL
#define NULL
Definition:
misc.h:38
varr.h
PAGE_SIZE
#define PAGE_SIZE
Definition:
lnet_ut.c:277
buf
Definition:
sock.c:887
m0_varr_buf_alloc
M0_EXTERN void * m0_varr_buf_alloc(size_t bufsize)
Definition:
varr.c:30
m0_varr_buf_free
M0_EXTERN void m0_varr_buf_free(void *buf, size_t bufsize)
Definition:
varr.c:38
m0_alloc
void * m0_alloc(size_t size)
Definition:
memory.c:126
bob.h
m0_free
void m0_free(void *data)
Definition:
memory.c:146
varr_private.h
lib
linux_kernel
varr.c
Generated on Thu Apr 14 2022 14:02:56 for Motr by
1.8.14