1 /* Copyright (c) 2003-2007 MySQL AB
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with this program; if not, write to the Free Software
14 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
19 #include "SignalData.hpp"
22 * Used by ACC and TUX scan.
38 STATIC_CONST( SignalLength
= 8 );
55 * Previously there where also a scan type
57 static Uint32
getLockMode(const Uint32
& requestInfo
);
58 static Uint32
getReadCommittedFlag(const Uint32
& requestInfo
);
59 static Uint32
getDescendingFlag(const Uint32
& requestInfo
);
61 static void setLockMode(Uint32
& requestInfo
, Uint32 lockMode
);
62 static void setReadCommittedFlag(Uint32
& requestInfo
, Uint32 readCommitted
);
63 static void setDescendingFlag(Uint32
& requestInfo
, Uint32 descending
);
65 static Uint32
getNoDiskScanFlag(const Uint32
& requestInfo
);
66 static void setNoDiskScanFlag(Uint32
& requestInfo
, Uint32 nodisk
);
68 static Uint32
getNRScanFlag(const Uint32
& requestInfo
);
69 static void setNRScanFlag(Uint32
& requestInfo
, Uint32 nr
);
71 static Uint32
getLcpScanFlag(const Uint32
& requestInfo
);
72 static void setLcpScanFlag(Uint32
& requestInfo
, Uint32 nr
);
78 * l = Lock Mode - 1 Bit 2
79 * h = Read Committed - 1 Bit 5
80 * z = Descending (TUX) - 1 Bit 6
81 * d = No disk scan - 1 Bit 7
82 * n = Node recovery scan - 1 Bit 8
83 * c = LCP scan - 1 Bit 9
85 * 1111111111222222222233
86 * 01234567890123456789012345678901
89 #define AS_LOCK_MODE_SHIFT (2)
90 #define AS_LOCK_MODE_MASK (1)
91 #define AS_READ_COMMITTED_SHIFT (5)
92 #define AS_DESCENDING_SHIFT (6)
93 #define AS_NO_DISK_SCAN (7)
94 #define AS_NR_SCAN (8)
95 #define AS_LCP_SCAN (9)
99 AccScanReq::getLockMode(const Uint32
& requestInfo
){
100 return (requestInfo
>> AS_LOCK_MODE_SHIFT
) & AS_LOCK_MODE_MASK
;
105 AccScanReq::getReadCommittedFlag(const Uint32
& requestInfo
){
106 return (requestInfo
>> AS_READ_COMMITTED_SHIFT
) & 1;
111 AccScanReq::getDescendingFlag(const Uint32
& requestInfo
){
112 return (requestInfo
>> AS_DESCENDING_SHIFT
) & 1;
117 AccScanReq::setLockMode(UintR
& requestInfo
, UintR val
){
118 ASSERT_MAX(val
, AS_LOCK_MODE_MASK
, "AccScanReq::setLockMode");
119 requestInfo
|= (val
<< AS_LOCK_MODE_SHIFT
);
124 AccScanReq::setReadCommittedFlag(UintR
& requestInfo
, UintR val
){
125 ASSERT_BOOL(val
, "AccScanReq::setReadCommittedFlag");
126 requestInfo
|= (val
<< AS_READ_COMMITTED_SHIFT
);
131 AccScanReq::setDescendingFlag(UintR
& requestInfo
, UintR val
){
132 ASSERT_BOOL(val
, "AccScanReq::setDescendingFlag");
133 requestInfo
|= (val
<< AS_DESCENDING_SHIFT
);
138 AccScanReq::getNoDiskScanFlag(const Uint32
& requestInfo
){
139 return (requestInfo
>> AS_NO_DISK_SCAN
) & 1;
144 AccScanReq::setNoDiskScanFlag(UintR
& requestInfo
, UintR val
){
145 ASSERT_BOOL(val
, "AccScanReq::setNoDiskScanFlag");
146 requestInfo
|= (val
<< AS_NO_DISK_SCAN
);
151 AccScanReq::getNRScanFlag(const Uint32
& requestInfo
){
152 return (requestInfo
>> AS_NR_SCAN
) & 1;
157 AccScanReq::setNRScanFlag(UintR
& requestInfo
, UintR val
){
158 ASSERT_BOOL(val
, "AccScanReq::setNoDiskScanFlag");
159 requestInfo
|= (val
<< AS_NR_SCAN
);
164 AccScanReq::getLcpScanFlag(const Uint32
& requestInfo
){
165 return (requestInfo
>> AS_LCP_SCAN
) & 1;
170 AccScanReq::setLcpScanFlag(UintR
& requestInfo
, UintR val
){
171 ASSERT_BOOL(val
, "AccScanReq::setNoDiskScanFlag");
172 requestInfo
|= (val
<< AS_LCP_SCAN
);
190 ZNOT_EMPTY_FRAGMENT
= 1
194 STATIC_CONST( SignalLength
= 8 );
214 ZNOT_CHECK_LCP_STOP
= 1
217 STATIC_CONST( SignalLength
= 2 );
219 Uint32 accPtr
; // scanptr.i in ACC or TUX
220 Uint32 checkLcpStop
; // from enum