mariadb/bdb/rpc_server/rpc.src

600 lines
13 KiB
Text
Raw Normal View History

2001-03-05 01:42:05 +01:00
#
# $Id: rpc.src,v 1.30 2000/12/20 21:53:05 ubell Exp $
# Syntax:
# BEGIN function_name RPC # {CODE | NOCLNTCODE | RETCODE | NOFUNC}
# CODE: generate XDR and client code, return status
# Used for functions that just return a status and nothing else.
# RETCODE:generate XDR and client code, call return function
# (generate template return function)
# Used for functions that returns data.
# NOCLNTCODE: generate only XDR and server functions
# Used for functions that are "different" on the client.
# Primarily used for envcreate (which is called from
# the dbenv->set_server method on the client side) and
# dbcreate, which is called from non-generated code.
# NOFUNC: generate a client "unsupported function" with right args
# Used for unsupported functions.
#
# ARG {IGNORE | STRING | INT | DBT | LIST | ID | CONST} C-type varname
# IGNORE: not passed to server
# STRING: string passed to server
# DBT: DBT arg passed to server
# LIST: opaque list passed to server (NULL-terminated opaque list)
# INT: integer passed to server
# ID: cl_id from arg passed to server
# CONST: do not generate COMPQUIET (for NOFUNC only)
# FUNCPROT prototype
# FUNCARG functiontype
# These two *MUST* go together and FUNCPROT *MUST* be first. These
# are for the tricky user-supplied functions to some methods. They
# are not supported in RPC, so will be ignored, but the complicated
# syntax of their argument requires we have a special flag for them
# that contains the verbatim text to use in the prototype and the
# c-type, respectively. The FUNCARG must include the function, and
# must call it 'funcN', where N is the count of functions. Almost
# always it must be func0. A *very* few methods have more than one
# user-supplied functions, in those cases, it must be func0, func1, etc.
#
# All messages automatically return "status" and return that from
# the call to the function. RET's are additional things the server
# may return. RET is like ARG but does not need the IGNORE option.
# RET {STRING | INT | DBT | LIST | ID} varname [STRING | INT | ID]
# STRING: string from server
# DBT: DBT arg from server
# LIST: opaque list from server (NULL-terminated opaque list)
# Must have list type of STRING, ID or INT specified
# INT: integer from server
# ID: id from server stored in cl_id
# END function end.
#
# Environment functions
#
BEGIN env_cachesize 1 CODE
ARG ID DB_ENV * dbenv
ARG INT u_int32_t gbytes
ARG INT u_int32_t bytes
ARG INT int ncache
END
BEGIN env_close 1 RETCODE
ARG ID DB_ENV * dbenv
ARG INT u_int32_t flags
END
BEGIN env_create 1 NOCLNTCODE
ARG INT long timeout
RET ID long env
END
BEGIN set_data_dir 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG STRING const char * dir
END
BEGIN env_set_feedback 1 NOFUNC
ARG ID DB_ENV * dbenv
FUNCPROT void (*)(DB_ENV *, int, int)
FUNCARG void (*func0) __P((DB_ENV *, int, int))
END
BEGIN env_flags 1 CODE
ARG ID DB_ENV * dbenv
ARG INT u_int32_t flags
ARG INT int onoff
END
BEGIN set_lg_bsize 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t bsize
END
BEGIN set_lg_dir 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG STRING const char * dir
END
BEGIN set_lg_max 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t max
END
BEGIN set_lk_conflict 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int8_t * conflicts
ARG INT int modes
END
BEGIN set_lk_detect 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t detect
END
BEGIN set_lk_max 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t max
END
BEGIN set_lk_max_locks 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t max
END
BEGIN set_lk_max_lockers 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t max
END
BEGIN set_lk_max_objects 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t max
END
BEGIN set_mp_mmapsize 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT size_t mmapsize
END
BEGIN set_mutex_locks 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT int do_lock
END
BEGIN env_open 1 RETCODE
ARG ID DB_ENV * dbenv
ARG STRING const char * home
ARG INT u_int32_t flags
ARG INT int mode
END
BEGIN env_paniccall 1 NOFUNC
ARG ID DB_ENV * dbenv
FUNCPROT void (*)(DB_ENV *, int)
FUNCARG void (*func0) __P((DB_ENV *, int))
END
BEGIN set_recovery_init 1 NOFUNC
ARG ID DB_ENV * dbenv
FUNCPROT int (*)(DB_ENV *)
FUNCARG int (*func0) __P((DB_ENV *))
END
BEGIN env_remove 1 RETCODE
ARG ID DB_ENV * dbenv
ARG STRING const char * home
ARG INT u_int32_t flags
END
BEGIN set_shm_key 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT long shm_key
END
BEGIN set_tmp_dir 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG STRING const char * dir
END
BEGIN set_tx_recover 1 NOFUNC
ARG ID DB_ENV * dbenv
FUNCPROT int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops)
FUNCARG int (*func0) __P((DB_ENV *, DBT *, DB_LSN *, db_recops))
END
BEGIN set_tx_max 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t max
END
BEGIN set_tx_timestamp 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT time_t * max
END
BEGIN set_verbose 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t which
ARG INT int onoff
END
#
# Transaction functions
#
BEGIN txn_abort 1 RETCODE
ARG ID DB_TXN * txnp
END
BEGIN txn_begin 1 RETCODE
ARG ID DB_ENV * envp
ARG ID DB_TXN * parent
ARG IGNORE DB_TXN ** txnpp
ARG INT u_int32_t flags
RET ID long txnid
END
BEGIN txn_checkpoint 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t kbyte
ARG INT u_int32_t min
END
BEGIN txn_commit 1 RETCODE
ARG ID DB_TXN * txnp
ARG INT u_int32_t flags
END
BEGIN txn_prepare 1 NOFUNC
ARG ID DB_TXN * txnp
END
BEGIN txn_stat 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_TXN_STAT ** statp
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
END
#
# Database functions
#
BEGIN db_bt_compare 1 NOFUNC
ARG ID DB * dbp
FUNCPROT int (*)(DB *, const DBT *, const DBT *)
FUNCARG int (*func0) __P((DB *, const DBT *, const DBT *))
END
BEGIN db_bt_maxkey 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t maxkey
END
BEGIN db_bt_minkey 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t minkey
END
BEGIN db_bt_prefix 1 NOFUNC
ARG ID DB * dbp
FUNCPROT size_t(*)(DB *, const DBT *, const DBT *)
FUNCARG size_t (*func0) __P((DB *, const DBT *, const DBT *))
END
BEGIN db_set_append_recno 1 NOFUNC
ARG ID DB * dbp
FUNCPROT int (*)(DB *, DBT *, db_recno_t)
FUNCARG int (*func0) __P((DB *, DBT *, db_recno_t))
END
BEGIN db_cachesize 1 NOFUNC
ARG ID DB * dbp
ARG INT u_int32_t gbytes
ARG INT u_int32_t bytes
ARG INT int ncache
END
BEGIN db_close 1 RETCODE
ARG ID DB * dbp
ARG INT u_int32_t flags
END
BEGIN db_create 1 NOCLNTCODE
ARG INT u_int32_t flags
ARG ID DB_ENV * envp
RET ID long dbp
END
BEGIN db_del 1 CODE
ARG ID DB * dbp
ARG ID DB_TXN * txnp
ARG DBT DBT * key
ARG INT u_int32_t flags
END
BEGIN db_extentsize 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t extentsize
END
BEGIN db_fd 1 NOFUNC
ARG ID DB * dbp
ARG IGNORE int * fdp
END
BEGIN db_feedback 1 NOFUNC
ARG ID DB * dbp
FUNCPROT void (*)(DB *, int, int)
FUNCARG void (*func0) __P((DB *, int, int))
END
BEGIN db_flags 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t flags
END
BEGIN db_get 1 RETCODE
ARG ID DB * dbp
ARG ID DB_TXN * txnp
ARG DBT DBT * key
ARG DBT DBT * data
ARG INT u_int32_t flags
RET DBT DBT * key
RET DBT DBT * data
END
BEGIN db_h_ffactor 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t ffactor
END
BEGIN db_h_hash 1 NOFUNC
ARG ID DB * dbp
FUNCPROT u_int32_t(*)(DB *, const void *, u_int32_t)
FUNCARG u_int32_t (*func0) __P((DB *, const void *, u_int32_t))
END
BEGIN db_h_nelem 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t nelem
END
BEGIN db_key_range 1 RETCODE
ARG ID DB * dbp
ARG ID DB_TXN * txnp
ARG DBT DBT * key
ARG IGNORE DB_KEY_RANGE * range
ARG INT u_int32_t flags
RET DBL double less
RET DBL double equal
RET DBL double greater
END
BEGIN db_lorder 1 CODE
ARG ID DB * dbp
ARG INT int lorder
END
BEGIN db_malloc 1 NOFUNC
ARG ID DB * dbp
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
END
# XXX
# The line:
# RET INT u_int32_t dbflags
# should go away when a get_flags method exists. It is
# needed now because Tcl looks at dbp->flags.
#
BEGIN db_open 1 RETCODE
ARG ID DB * dbp
ARG STRING const char * name
ARG STRING const char * subdb
ARG INT DBTYPE type
ARG INT u_int32_t flags
ARG INT int mode
RET INT DBTYPE type
RET INT u_int32_t dbflags
END
BEGIN db_pagesize 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t pagesize
END
BEGIN db_panic 1 NOFUNC
ARG ID DB * dbp
FUNCPROT void (*)(DB_ENV *, int)
FUNCARG void (*func0) __P((DB_ENV *, int))
END
BEGIN db_put 1 RETCODE
ARG ID DB * dbp
ARG ID DB_TXN * txnp
ARG DBT DBT * key
ARG DBT DBT * data
ARG INT u_int32_t flags
RET DBT DBT * key
END
BEGIN db_realloc 1 NOFUNC
ARG ID DB * dbp
FUNCPROT void *(*)(void *, size_t)
FUNCARG void *(*func0) __P((void *, size_t))
END
BEGIN db_re_delim 1 CODE
ARG ID DB * dbp
ARG INT int delim
END
BEGIN db_re_len 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t len
END
BEGIN db_re_pad 1 CODE
ARG ID DB * dbp
ARG INT int pad
END
BEGIN db_re_source 1 NOFUNC
ARG ID DB * dbp
ARG STRING const char * re_source
END
BEGIN db_remove 1 RETCODE
ARG ID DB * dbp
ARG STRING const char * name
ARG STRING const char * subdb
ARG INT u_int32_t flags
END
BEGIN db_rename 1 RETCODE
ARG ID DB * dbp
ARG STRING const char * name
ARG STRING const char * subdb
ARG STRING const char * newname
ARG INT u_int32_t flags
END
BEGIN db_stat 1 RETCODE
ARG ID DB * dbp
ARG IGNORE void * sp
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
ARG INT u_int32_t flags
RET LIST u_int32_t * stats INT
END
BEGIN db_swapped 1 CODE
ARG ID DB * dbp
END
BEGIN db_sync 1 CODE
ARG ID DB * dbp
ARG INT u_int32_t flags
END
BEGIN db_upgrade 1 NOFUNC
ARG ID DB * dbp
ARG STRING const char * fname
ARG INT u_int32_t flags
END
#
# Cursor functions
#
BEGIN db_cursor 1 RETCODE
ARG ID DB * dbp
ARG ID DB_TXN * txnp
ARG IGNORE DBC ** dbcpp
ARG INT u_int32_t flags
RET ID long dbcid
END
BEGIN db_join 1 RETCODE
ARG ID DB * dbp
ARG LIST DBC ** curs ID
ARG IGNORE DBC ** dbcp
ARG INT u_int32_t flags
RET ID long dbcid
END
BEGIN dbc_close 1 RETCODE
ARG ID DBC * dbc
END
BEGIN dbc_count 1 RETCODE
ARG ID DBC * dbc
ARG IGNORE db_recno_t * countp
ARG INT u_int32_t flags
RET INT db_recno_t dupcount
END
BEGIN dbc_del 1 CODE
ARG ID DBC * dbc
ARG INT u_int32_t flags
END
BEGIN dbc_dup 1 RETCODE
ARG ID DBC * dbc
ARG IGNORE DBC ** dbcp
ARG INT u_int32_t flags
RET ID long dbcid
END
BEGIN dbc_get 1 RETCODE
ARG ID DBC * dbc
ARG DBT DBT * key
ARG DBT DBT * data
ARG INT u_int32_t flags
RET DBT DBT * key
RET DBT DBT * data
END
BEGIN dbc_put 1 RETCODE
ARG ID DBC * dbc
ARG DBT DBT * key
ARG DBT DBT * data
ARG INT u_int32_t flags
RET DBT DBT * key
END
#
# Unsupported environment subsystems
#
#
# Locking subsystem
#
BEGIN lock_detect 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t flags
ARG INT u_int32_t atype
ARG IGNORE int * aborted
END
BEGIN lock_get 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t locker
ARG INT u_int32_t flags
ARG CONST const DBT * obj
ARG INT db_lockmode_t mode
ARG IGNORE DB_LOCK * lock
END
BEGIN lock_id 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t * idp
END
BEGIN lock_put 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG ID DB_LOCK * lock
END
BEGIN lock_stat 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_LOCK_STAT ** statp
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
END
BEGIN lock_vec 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT u_int32_t locker
ARG INT u_int32_t flags
ARG IGNORE DB_LOCKREQ * list
ARG INT int nlist
ARG IGNORE DB_LOCKREQ ** elistp
END
#
# Logging subsystem
#
BEGIN log_archive 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE char *** listp
ARG INT u_int32_t flags
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
END
#
# Don't do log_compare. It doesn't have an env we can get at,
# and it doesn't manipulate DB internal information.
#
BEGIN log_file 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG CONST const DB_LSN * lsn
ARG STRING char * namep
ARG INT size_t len
END
BEGIN log_flush 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG CONST const DB_LSN * lsn
END
BEGIN log_get 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_LSN * lsn
ARG DBT DBT * data
ARG INT u_int32_t flags
END
BEGIN log_put 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_LSN * lsn
ARG CONST const DBT * data
ARG INT u_int32_t flags
END
BEGIN log_register 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG ID DB * dbp
ARG CONST const char * namep
END
BEGIN log_stat 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_LOG_STAT ** statp
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
END
BEGIN log_unregister 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG ID DB * dbp
END
#
# Mpool Subsystem
#
BEGIN memp_fclose 1 NOFUNC
ARG ID DB_MPOOLFILE * mpf
END
BEGIN memp_fget 1 NOFUNC
ARG ID DB_MPOOLFILE * mpf
ARG IGNORE db_pgno_t * pgno
ARG INT u_int32_t flags
ARG IGNORE void ** pagep
END
BEGIN memp_fopen 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG CONST const char * file
ARG INT u_int32_t flags
ARG INT int mode
ARG INT size_t pagesize
ARG IGNORE DB_MPOOL_FINFO * finfop
ARG IGNORE DB_MPOOLFILE ** mpf
END
BEGIN memp_fput 1 NOFUNC
ARG ID DB_MPOOLFILE * mpf
ARG IGNORE void * pgaddr
ARG INT u_int32_t flags
END
BEGIN memp_fset 1 NOFUNC
ARG ID DB_MPOOLFILE * mpf
ARG IGNORE void * pgaddr
ARG INT u_int32_t flags
END
BEGIN memp_fsync 1 NOFUNC
ARG ID DB_MPOOLFILE * mpf
END
BEGIN memp_register 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT int ftype
FUNCPROT int (*)(DB_ENV *, db_pgno_t, void *, DBT *)
FUNCARG int (*func0) __P((DB_ENV *, db_pgno_t, void *, DBT *))
FUNCPROT int (*)(DB_ENV *, db_pgno_t, void *, DBT *)
FUNCARG int (*func1) __P((DB_ENV *, db_pgno_t, void *, DBT *))
END
BEGIN memp_stat 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_MPOOL_STAT ** gstatp
ARG IGNORE DB_MPOOL_FSTAT *** fstatp
FUNCPROT void *(*)(size_t)
FUNCARG void *(*func0) __P((size_t))
END
BEGIN memp_sync 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG IGNORE DB_LSN * lsn
END
BEGIN memp_trickle 1 NOFUNC
ARG ID DB_ENV * dbenv
ARG INT int pct
ARG IGNORE int * nwrotep
END