Line data Source code
1 : /*
2 : * Copyright (c) 2014-2016 ISPRAS (http://www.ispras.ru)
3 : * Institute for System Programming of the Russian Academy of Sciences
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 : * ee the License for the specific language governing permissions and
15 : * limitations under the License.
16 : */
17 :
18 : #include <verifier/common.h>
19 : #include <verifier/nondet.h>
20 :
21 : struct clk;
22 :
23 : /* NOTE Initialize counter to zero */
24 1 : int ldv_counter = 0;
25 :
26 : /* MODEL_FUNC Release */
27 : void ldv_clk_disable(struct clk *clk)
28 : {
29 : /* ASSERT The clk must be freed only once */
30 0 : ldv_assert("linux:drivers:clk2::less initial decrement", ldv_counter == 1);
31 : /* NOTE Increase counter */
32 0 : ldv_counter = 0;
33 0 : }
34 :
35 : /* MODEL_FUNC Reset counter */
36 : int ldv_clk_enable(void)
37 : {
38 0 : int retval = ldv_undef_int();
39 0 : if (!retval) {
40 : /* NOTE Increase counter */
41 0 : ldv_counter = 1;
42 : }
43 0 : return retval;
44 : }
|