~jlukas79/+junk/mysql-server

« back to all changes in this revision

Viewing changes to storage/maria/ma_control_file.h

manual merge 6.0-main --> 6.0-bka-review

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (C) 2006 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
 
2
 
 
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.
 
6
 
 
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.
 
11
 
 
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
15
 
 
16
/*
 
17
  WL#3234 Maria control file
 
18
  First version written by Guilhem Bichot on 2006-04-27.
 
19
*/
 
20
 
 
21
#ifndef _ma_control_file_h
 
22
#define _ma_control_file_h
 
23
 
 
24
#define CONTROL_FILE_BASE_NAME "maria_log_control"
 
25
/*
 
26
  Major version for control file. Should only be changed when doing
 
27
  big changes that made the new control file incompatible with all
 
28
  older versions of Maria.
 
29
*/
 
30
#define CONTROL_FILE_VERSION   1
 
31
 
 
32
/* Here is the interface of this module */
 
33
 
 
34
/*
 
35
  LSN of the last checkoint
 
36
  (if last_checkpoint_lsn == LSN_IMPOSSIBLE then there was never a checkpoint)
 
37
*/
 
38
extern LSN last_checkpoint_lsn;
 
39
/*
 
40
  Last log number (if last_logno == FILENO_IMPOSSIBLE then there is no log
 
41
  file yet)
 
42
*/
 
43
extern uint32 last_logno;
 
44
 
 
45
extern TrID max_trid_in_control_file;
 
46
 
 
47
extern uint8 recovery_failures;
 
48
 
 
49
extern my_bool maria_multi_threaded, maria_in_recovery;
 
50
 
 
51
typedef enum enum_control_file_error {
 
52
  CONTROL_FILE_OK= 0,
 
53
  CONTROL_FILE_TOO_SMALL,
 
54
  CONTROL_FILE_TOO_BIG,
 
55
  CONTROL_FILE_BAD_MAGIC_STRING,
 
56
  CONTROL_FILE_BAD_VERSION,
 
57
  CONTROL_FILE_BAD_CHECKSUM,
 
58
  CONTROL_FILE_BAD_HEAD_CHECKSUM,
 
59
  CONTROL_FILE_MISSING,
 
60
  CONTROL_FILE_INCONSISTENT_INFORMATION,
 
61
  CONTROL_FILE_WRONG_BLOCKSIZE,
 
62
  CONTROL_FILE_UNKNOWN_ERROR /* any other error */
 
63
} CONTROL_FILE_ERROR;
 
64
 
 
65
C_MODE_START
 
66
CONTROL_FILE_ERROR ma_control_file_open(my_bool create_if_missing,
 
67
                                        my_bool print_error);
 
68
int ma_control_file_write_and_force(LSN last_checkpoint_lsn_arg,
 
69
                                    uint32 last_logno_arg, TrID max_trid_arg,
 
70
                                    uint8 recovery_failures_arg);
 
71
int ma_control_file_end(void);
 
72
my_bool ma_control_file_inited(void);
 
73
C_MODE_END
 
74
#endif