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  */
#define M0_PRE(cond)
#define NULL
Definition: misc.h:38
#define PAGE_SIZE
Definition: lnet_ut.c:277
Definition: sock.c:887
M0_EXTERN void * m0_varr_buf_alloc(size_t bufsize)
Definition: varr.c:30
M0_EXTERN void m0_varr_buf_free(void *buf, size_t bufsize)
Definition: varr.c:38
void * m0_alloc(size_t size)
Definition: memory.c:126
void m0_free(void *data)
Definition: memory.c:146