mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
112 lines
2.9 KiB
Text
112 lines
2.9 KiB
Text
|
/*-
|
||
|
* See the file LICENSE for redistribution information.
|
||
|
*
|
||
|
* Copyright (c) 2001-2002
|
||
|
* Sleepycat Software. All rights reserved.
|
||
|
*
|
||
|
* $Id: fileops.src,v 1.8 2002/04/06 18:25:55 bostic Exp $
|
||
|
*/
|
||
|
|
||
|
PREFIX __fop
|
||
|
DBPRIVATE
|
||
|
|
||
|
INCLUDE #include "db_config.h"
|
||
|
INCLUDE
|
||
|
INCLUDE #ifndef NO_SYSTEM_INCLUDES
|
||
|
INCLUDE #include <sys/types.h>
|
||
|
INCLUDE
|
||
|
INCLUDE #include <ctype.h>
|
||
|
INCLUDE #include <string.h>
|
||
|
INCLUDE #endif
|
||
|
INCLUDE
|
||
|
INCLUDE #include "db_int.h"
|
||
|
INCLUDE #include "dbinc/crypto.h"
|
||
|
INCLUDE #include "dbinc/db_page.h"
|
||
|
INCLUDE #include "dbinc/db_dispatch.h"
|
||
|
INCLUDE #include "dbinc/db_am.h"
|
||
|
INCLUDE #include "dbinc/log.h"
|
||
|
INCLUDE #include "dbinc/rep.h"
|
||
|
INCLUDE #include "dbinc/txn.h"
|
||
|
INCLUDE #include "dbinc/fop.h"
|
||
|
INCLUDE
|
||
|
|
||
|
/*
|
||
|
* create -- create a file system object.
|
||
|
*
|
||
|
* name: name in the file system
|
||
|
* appname: indicates if the name needs to go through __db_appname
|
||
|
* mode: file system mode
|
||
|
*/
|
||
|
BEGIN create 143
|
||
|
DBT name DBT s
|
||
|
ARG appname u_int32_t lu
|
||
|
ARG mode u_int32_t o
|
||
|
END
|
||
|
|
||
|
/*
|
||
|
* remove -- remove a file system object.
|
||
|
*
|
||
|
* name: name in the file system
|
||
|
* appname: indicates if the name needs to go through __db_appname
|
||
|
*/
|
||
|
BEGIN remove 144
|
||
|
DBT name DBT s
|
||
|
DBT fid DBT s
|
||
|
ARG appname u_int32_t lu
|
||
|
END
|
||
|
|
||
|
/*
|
||
|
* write: log the writing of data into an object.
|
||
|
*
|
||
|
* name: file containing the page.
|
||
|
* appname: indicates if the name needs to go through __db_appname
|
||
|
* offset: offset in the file.
|
||
|
* page: the actual meta-data page.
|
||
|
* flag: non-0 indicates that this is a tempfile, so we needn't undo
|
||
|
* these modifications (we'll toss the file).
|
||
|
*/
|
||
|
BEGIN write 145
|
||
|
DBT name DBT s
|
||
|
ARG appname u_int32_t lu
|
||
|
ARG offset u_int32_t lu
|
||
|
PGDBT page DBT s
|
||
|
ARG flag u_int32_t lu
|
||
|
END
|
||
|
|
||
|
/*
|
||
|
* rename: move a file from one name to another.
|
||
|
* The appname value indicates if this is a path name that should be used
|
||
|
* directly (i.e., no interpretation) or if it is a pathname that should
|
||
|
* be interpreted via calls to __db_appname. The fileid is the 20-byte
|
||
|
* DB fileid of the file being renamed. We need to check it on recovery
|
||
|
* so that we don't inadvertently overwrite good files.
|
||
|
*/
|
||
|
BEGIN rename 146
|
||
|
DBT oldname DBT s
|
||
|
DBT newname DBT s
|
||
|
DBT fileid DBT s
|
||
|
ARG appname u_int32_t lu
|
||
|
END
|
||
|
|
||
|
/*
|
||
|
* File removal record. This is a DB-level log record that indicates
|
||
|
* we've just completed some form of file removal. The purpose of this
|
||
|
* log record is to logically identify the particular instance of the
|
||
|
* named file so that during recovery, in deciding if we should roll-forward
|
||
|
* a remove or a rename, we can make sure that we don't roll one forward and
|
||
|
* delete or overwrite the wrong file.
|
||
|
* real_fid: The 20-byte unique file identifier of the original file being
|
||
|
* removed.
|
||
|
* tmp_fid: The unique fid of the tmp file that is removed.
|
||
|
* name: The pre- __db_appname name of the file
|
||
|
* child: The transaction that removed or renamed the file.
|
||
|
*/
|
||
|
*/
|
||
|
BEGIN file_remove 141
|
||
|
DBT real_fid DBT s
|
||
|
DBT tmp_fid DBT s
|
||
|
DBT name DBT s
|
||
|
ARG appname u_int32_t lu
|
||
|
ARG child u_int32_t lx
|
||
|
END
|