]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/m2/gm2-libs-log/BlockOps.def
Update copyright years.
[thirdparty/gcc.git] / gcc / m2 / gm2-libs-log / BlockOps.def
CommitLineData
1eee94d3
GM
1(* BlockOps.def provides a Logitech compatible module for block moves.
2
a945c346 3Copyright (C) 2005-2024 Free Software Foundation, Inc.
1eee94d3
GM
4Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
5
6This file is part of GNU Modula-2.
7
8GNU Modula-2 is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Modula-2 is distributed in the hope that it will be useful, but
14WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16General Public License for more details.
17
18Under Section 7 of GPL version 3, you are granted additional
19permissions described in the GCC Runtime Library Exception, version
203.1, as published by the Free Software Foundation.
21
22You should have received a copy of the GNU General Public License and
23a copy of the GCC Runtime Library Exception along with this program;
24see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25<http://www.gnu.org/licenses/>. *)
26
27DEFINITION MODULE BlockOps ;
28
29FROM SYSTEM IMPORT ADDRESS ;
30
31
32(*
33 MoveBlockForward - moves, n, bytes from, src, to, dest.
34 Starts copying from src and keep copying
35 until, n, bytes have been copied.
36*)
37
38PROCEDURE BlockMoveForward (dest, src: ADDRESS; n: CARDINAL) ;
39
40
41(*
42 MoveBlockBackward - moves, n, bytes from, src, to, dest.
43 Starts copying from src+n and keeps copying
44 until, n, bytes have been copied.
45 The last datum to be copied will be the byte
46 at address, src.
47*)
48
49PROCEDURE BlockMoveBackward (dest, src: ADDRESS; n: CARDINAL) ;
50
51
52(*
53 BlockClear - fills, block..block+n-1, with zero's.
54*)
55
56PROCEDURE BlockClear (block: ADDRESS; n: CARDINAL) ;
57
58
59(*
60 BlockSet - fills, n, bytes starting at, block, with a pattern
61 defined at address pattern..pattern+patternSize-1.
62*)
63
64PROCEDURE BlockSet (block: ADDRESS; n: CARDINAL;
65 pattern: ADDRESS; patternSize: CARDINAL) ;
66
67
68(*
69 BlockEqual - returns TRUE if the blocks defined, a..a+n-1, and,
70 b..b+n-1 contain the same bytes.
71*)
72
73PROCEDURE BlockEqual (a, b: ADDRESS; n: CARDINAL) : BOOLEAN ;
74
75
76(*
77 BlockPosition - searches for a pattern as defined by
78 pattern..patternSize-1 in the block,
79 block..block+blockSize-1. It returns
80 the offset from block indicating the
81 first occurence of, pattern.
82 MAX(CARDINAL) is returned if no match
83 is detected.
84*)
85
86PROCEDURE BlockPosition (block: ADDRESS; blockSize: CARDINAL;
87 pattern: ADDRESS; patternSize: CARDINAL) : CARDINAL ;
88
89
90END BlockOps.