mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 12:56:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (C) 2006 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
 | 
						|
 | 
						|
   This program is free software; you can redistribute it and/or modify
 | 
						|
   it under the terms of the GNU General Public License as published by
 | 
						|
   the Free Software Foundation; version 2 of the License.
 | 
						|
 | 
						|
   This program is distributed in the hope that it will be useful,
 | 
						|
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
   GNU General Public License for more details.
 | 
						|
 | 
						|
   You should have received a copy of the GNU General Public License
 | 
						|
   along with this program; if not, write to the Free Software
 | 
						|
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
 | 
						|
 | 
						|
/*
 | 
						|
  WL#3234 Maria control file
 | 
						|
  First version written by Guilhem Bichot on 2006-04-27.
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef _ma_control_file_h
 | 
						|
#define _ma_control_file_h
 | 
						|
 | 
						|
C_MODE_START
 | 
						|
 | 
						|
#define CONTROL_FILE_BASE_NAME "aria_log_control"
 | 
						|
/*
 | 
						|
  Major version for control file. Should only be changed when doing
 | 
						|
  big changes that made the new control file incompatible with all
 | 
						|
  older versions of Maria.
 | 
						|
*/
 | 
						|
#define CONTROL_FILE_VERSION   1
 | 
						|
 | 
						|
/* Here is the interface of this module */
 | 
						|
 | 
						|
/*
 | 
						|
  LSN of the last checkoint
 | 
						|
  (if last_checkpoint_lsn == LSN_IMPOSSIBLE then there was never a checkpoint)
 | 
						|
*/
 | 
						|
extern volatile LSN last_checkpoint_lsn;
 | 
						|
/*
 | 
						|
  Last log number (if last_logno == FILENO_IMPOSSIBLE then there is no log
 | 
						|
  file yet)
 | 
						|
*/
 | 
						|
extern uint32 last_logno;
 | 
						|
 | 
						|
extern TrID max_trid_in_control_file, max_long_trid;
 | 
						|
 | 
						|
extern uint8 recovery_failures;
 | 
						|
 | 
						|
extern my_bool maria_multi_threaded, maria_in_recovery;
 | 
						|
 | 
						|
typedef enum enum_control_file_error {
 | 
						|
  CONTROL_FILE_OK= 0,
 | 
						|
  CONTROL_FILE_TOO_SMALL,
 | 
						|
  CONTROL_FILE_TOO_BIG,
 | 
						|
  CONTROL_FILE_BAD_MAGIC_STRING,
 | 
						|
  CONTROL_FILE_BAD_VERSION,
 | 
						|
  CONTROL_FILE_BAD_CHECKSUM,
 | 
						|
  CONTROL_FILE_BAD_HEAD_CHECKSUM,
 | 
						|
  CONTROL_FILE_MISSING,
 | 
						|
  CONTROL_FILE_INCONSISTENT_INFORMATION,
 | 
						|
  CONTROL_FILE_WRONG_BLOCKSIZE,
 | 
						|
  CONTROL_FILE_LOCKED,
 | 
						|
  CONTROL_FILE_UNKNOWN_ERROR /* any other error */
 | 
						|
} CONTROL_FILE_ERROR;
 | 
						|
 | 
						|
 | 
						|
CONTROL_FILE_ERROR ma_control_file_open(my_bool create_if_missing,
 | 
						|
                                        my_bool print_error,
 | 
						|
                                        my_bool wait_for_lock,
 | 
						|
                                        int open_flags);
 | 
						|
int ma_control_file_write_and_force(LSN last_checkpoint_lsn_arg,
 | 
						|
                                    uint32 last_logno_arg, TrID max_trid_arg,
 | 
						|
                                    uint8 recovery_failures_arg);
 | 
						|
/* For simple programs that creates Aria files*/
 | 
						|
CONTROL_FILE_ERROR ma_control_file_open_or_create();
 | 
						|
int ma_control_file_end(void);
 | 
						|
my_bool ma_control_file_inited(void);
 | 
						|
my_bool print_aria_log_control(void);
 | 
						|
C_MODE_END
 | 
						|
#endif
 |