Motr  M0
parity_ops.c
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2011-2021 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 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_SNS
24 #include "lib/trace.h"
25 #include "lib/misc.h"
26 #include "lib/memory.h"
27 #include "lib/assert.h"
28 #include "sns/parity_ops.h"
29 
32 {
33  m0_parity_elem_t ret = x;
34  int i = 1;
35 
36  if (p == 0)
37  return 1;
38 
39  for (i = 1; i < p; ++i)
40  ret = m0_parity_mul(ret, x);
41 
42  return ret;
43 }
44 
45 #undef M0_TRACE_SUBSYSTEM
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  */
static struct m0_addb2_philter p
Definition: consumer.c:40
static bool x
Definition: sm.c:168
int i
Definition: dir.c:1033
M0_INTERNAL m0_parity_elem_t m0_parity_pow(m0_parity_elem_t x, m0_parity_elem_t p)
Definition: parity_ops.c:30
int m0_parity_elem_t
Definition: parity_ops.h:36
static m0_parity_elem_t m0_parity_mul(m0_parity_elem_t x, m0_parity_elem_t y)
Definition: parity_ops.h:51