2001-05-23 15:26:42 +02:00
|
|
|
/*
|
|
|
|
* PROGRAM: JRD Access Method
|
|
|
|
* MODULE: jrd_proto.h
|
|
|
|
* DESCRIPTION: Prototype header file for jrd.c
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the Interbase Public
|
|
|
|
* License Version 1.0 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy
|
|
|
|
* of the License at http://www.Inprise.com/IPL.html
|
|
|
|
*
|
|
|
|
* Software distributed under the License is distributed on an
|
|
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
|
|
|
|
* or implied. See the License for the specific language governing
|
|
|
|
* rights and limitations under the License.
|
|
|
|
*
|
|
|
|
* The Original Code was created by Inprise Corporation
|
|
|
|
* and its predecessors. Portions created by Inprise Corporation are
|
|
|
|
* Copyright (C) Inprise Corporation.
|
|
|
|
*
|
|
|
|
* All Rights Reserved.
|
|
|
|
* Contributor(s): ______________________________________.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef JRD_JRD_PROTO_H
|
|
|
|
#define JRD_JRD_PROTO_H
|
|
|
|
|
2001-12-24 03:51:06 +01:00
|
|
|
#ifndef __cplusplus
|
|
|
|
|
2001-05-23 15:26:42 +02:00
|
|
|
/* included for the bid structure */
|
|
|
|
#ifndef WIN_NT
|
|
|
|
#include "../jrd/blb.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* included for the svc structure */
|
|
|
|
#ifndef WIN_NT
|
|
|
|
#include "../jrd/svc.h"
|
|
|
|
#endif
|
|
|
|
|
2001-12-24 03:51:06 +01:00
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
2001-05-23 15:26:42 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_attach_database(ISC_STATUS *, SSHORT, TEXT *,
|
2003-03-31 19:41:18 +02:00
|
|
|
struct att **, SSHORT, UCHAR *,
|
|
|
|
TEXT *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_blob_info(ISC_STATUS *, struct blb **, SSHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SCHAR *, SSHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_cancel_blob(ISC_STATUS *, struct blb **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_cancel_events(ISC_STATUS *, struct att **, SLONG *);
|
2001-05-23 15:26:42 +02:00
|
|
|
#ifdef CANCEL_OPERATION
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_cancel_operation(ISC_STATUS *, struct att **,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT);
|
|
|
|
#endif
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_close_blob(ISC_STATUS *, struct blb **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_commit_transaction(ISC_STATUS *, struct jrd_tra **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_commit_retaining(ISC_STATUS *, struct jrd_tra **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_compile_request(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_req **, SSHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_create_blob2(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, struct blb **,
|
2001-05-23 15:26:42 +02:00
|
|
|
struct bid *, USHORT, UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_create_database(ISC_STATUS *, USHORT, TEXT *,
|
2001-05-23 15:26:42 +02:00
|
|
|
struct att **, USHORT, UCHAR *,
|
2003-03-31 19:41:18 +02:00
|
|
|
USHORT, TEXT *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_database_info(ISC_STATUS *, struct att **, SSHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SCHAR *, SSHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_ddl(ISC_STATUS *, struct att **, struct jrd_tra **,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_detach_database(ISC_STATUS *, struct att **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_drop_database(ISC_STATUS *, struct att **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_get_segment(ISC_STATUS *, struct blb **, USHORT *,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT, UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_get_slice(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, SLONG *, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
UCHAR *, USHORT, UCHAR *, SLONG,
|
|
|
|
UCHAR *, SLONG *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_open_blob2(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, struct blb **,
|
2001-05-23 15:26:42 +02:00
|
|
|
struct bid *, USHORT, UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_prepare_transaction(ISC_STATUS *, struct jrd_tra **,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT, UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_put_segment(ISC_STATUS *, struct blb **, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_put_slice(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, SLONG *, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
UCHAR *, USHORT, UCHAR *, SLONG,
|
|
|
|
UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_que_events(ISC_STATUS *, struct att **, SLONG *,
|
2001-05-23 15:26:42 +02:00
|
|
|
SSHORT, UCHAR *, FPTR_VOID, void *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_receive(ISC_STATUS *, struct jrd_req **, USHORT, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SCHAR *, SSHORT);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_reconnect_transaction(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, SSHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
UCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_release_request(ISC_STATUS *, struct jrd_req **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_request_info(ISC_STATUS *, struct jrd_req **, SSHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SSHORT, SCHAR *, SSHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_rollback_transaction(ISC_STATUS *, struct jrd_tra **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_rollback_retaining(ISC_STATUS *, struct jrd_tra **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_seek_blob(ISC_STATUS *, struct blb **, SSHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SLONG, SLONG *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_send(ISC_STATUS *, struct jrd_req **, USHORT, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SCHAR *, SSHORT);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_service_attach(ISC_STATUS *, USHORT, SCHAR *,
|
2001-05-23 15:26:42 +02:00
|
|
|
struct svc **, USHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_service_detach(ISC_STATUS *, struct svc **);
|
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_service_query(ISC_STATUS *, struct svc **, ULONG *,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT, SCHAR *, USHORT, SCHAR *,
|
|
|
|
USHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_service_start(ISC_STATUS *, struct svc **, ULONG *,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT, SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_start_and_send(ISC_STATUS *, struct jrd_req **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, USHORT, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
SCHAR *, SSHORT);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_start_request(ISC_STATUS *, struct jrd_req **,
|
2003-02-10 14:28:35 +01:00
|
|
|
struct jrd_tra **, SSHORT);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_start_multiple(ISC_STATUS *, struct jrd_tra **, USHORT,
|
2001-05-23 15:26:42 +02:00
|
|
|
struct teb *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_start_transaction(ISC_STATUS *, struct jrd_tra **,
|
2001-05-23 15:26:42 +02:00
|
|
|
SSHORT, ...);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_transaction_info(ISC_STATUS *, struct jrd_tra **,
|
2001-05-23 15:26:42 +02:00
|
|
|
SSHORT, SCHAR *, SSHORT,
|
|
|
|
SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_transact_request(ISC_STATUS *, struct att **,
|
2002-11-21 00:18:16 +01:00
|
|
|
struct jrd_tra **, USHORT, SCHAR *,
|
2001-05-23 15:26:42 +02:00
|
|
|
USHORT, SCHAR *, USHORT,
|
|
|
|
SCHAR *);
|
2003-04-10 08:49:16 +02:00
|
|
|
extern ISC_STATUS DLL_EXPORT jrd8_unwind_request(ISC_STATUS *, struct jrd_req **, SSHORT);
|
2001-05-23 15:26:42 +02:00
|
|
|
extern void jrd_vtof(const char*, char*, SSHORT);
|
|
|
|
|
|
|
|
#ifdef SERVER_SHUTDOWN
|
|
|
|
/* Defines for paramater 3 of JRD_num_attachments */
|
|
|
|
#define JRD_info_drivemask 1
|
|
|
|
#define JRD_info_dbnames 2
|
|
|
|
|
|
|
|
extern TEXT *JRD_num_attachments(TEXT *, USHORT, USHORT, USHORT *, USHORT *);
|
|
|
|
extern ULONG JRD_shutdown_all();
|
|
|
|
#endif /* SERVER_SHUTDOWN */
|
|
|
|
|
|
|
|
extern void JRD_set_cache_default(ULONG *);
|
|
|
|
extern void JRD_blocked(struct att *, struct btb **);
|
|
|
|
extern void JRD_mutex_lock(struct mutx_t *);
|
|
|
|
extern void JRD_mutex_unlock(struct mutx_t *);
|
|
|
|
extern BOOLEAN JRD_reschedule(struct tdbb *, SLONG, BOOLEAN);
|
|
|
|
extern void JRD_restore_context(void);
|
|
|
|
extern void JRD_set_context(struct tdbb *);
|
|
|
|
extern void JRD_unblock(struct btb **);
|
|
|
|
extern void JRD_wlck_lock(struct mutx_t *);
|
|
|
|
extern void JRD_wlck_unlock(struct mutx_t *);
|
|
|
|
|
|
|
|
#ifdef SUPERSERVER
|
|
|
|
extern void JRD_print_all_counters(TEXT *);
|
|
|
|
extern USHORT JRD_getdir(TEXT *, USHORT);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} /* extern "C" */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* JRD_JRD_PROTO_H */
|