]> git.ipfire.org Git - thirdparty/glibc.git/blame - db2/include/os_func.h
Update.
[thirdparty/glibc.git] / db2 / include / os_func.h
CommitLineData
cc3fa755
UD
1/*-
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 1997
5 * Sleepycat Software. All rights reserved.
6 *
7 * @(#)os_func.h 10.2 (Sleepycat) 10/28/97
8 */
9
10/* Calls which can be replaced by the application. */
11struct __db_jumptab {
12 void *(*db_calloc) __P((size_t, size_t)); /* DB_FUNC_CALLOC */
13 int (*db_close) __P((int)); /* DB_FUNC_CLOSE */
14 void (*db_dirfree) __P((char **, int)); /* DB_FUNC_DIRFREE */
15 int (*db_dirlist) /* DB_FUNC_DIRLIST */
16 __P((const char *, char ***, int *));
17 int (*db_exists) /* DB_FUNC_EXISTS */
18 __P((const char *, int *));
19 void (*db_free) __P((void *)); /* DB_FUNC_FREE */
20 int (*db_fsync) __P((int)); /* DB_FUNC_FSYNC */
21 int (*db_ioinfo) /* DB_FUNC_IOINFO */
22 __P((const char *, int, off_t *, off_t *));
23 void *(*db_malloc) __P((size_t)); /* DB_FUNC_MALLOC */
24 int (*db_map) /* DB_FUNC_MAP */
25 __P((int, size_t, int, int, void **));
26 int (*db_open) /* DB_FUNC_OPEN */
27 __P((const char *, int, ...));
28 ssize_t (*db_read) __P((int, void *, size_t)); /* DB_FUNC_READ */
29 void *(*db_realloc) __P((void *, size_t)); /* DB_FUNC_REALLOC */
30 int (*db_seek) /* DB_FUNC_SEEK */
31 __P((int, size_t, db_pgno_t, u_long, int));
32 int (*db_sleep) __P((u_long, u_long)); /* DB_FUNC_SLEEP */
33 char *(*db_strdup) __P((const char *)); /* DB_FUNC_STRDUP */
34 int (*db_unlink) __P((const char *)); /* DB_FUNC_UNLINK */
35 int (*db_unmap) __P((void *, size_t)); /* DB_FUNC_UNMAP */
36 ssize_t (*db_write) /* DB_FUNC_WRITE */
37 __P((int, const void *, size_t));
38 int (*db_yield) __P((void)); /* DB_FUNC_YIELD */
39};
40
41extern struct __db_jumptab __db_jump;
42
43/*
44 * Names used by DB to call through the jump table.
45 *
46 * The naming scheme goes like this: if the functionality the application can
47 * replace is the same as the DB functionality, e.g., calloc, or dirlist, then
48 * we use the name __db_XXX, and the application is expected to replace the
49 * complete functionality, which may or may not map directly to an ANSI C or
50 * POSIX 1003.1 interface. If the functionality that the aplication replaces
51 * only underlies what the DB os directory exports to other parts of DB, e.g.,
52 * read, then the name __os_XXX is used, and the application can only replace
53 * the underlying functionality. Under most circumstances, the os directory
54 * part of DB is the only code that should use the __os_XXX names, all other
55 * parts of DB should be calling __db_XXX functions.
56 */
57#define __db_calloc __db_jump.db_calloc
58#define __os_close __db_jump.db_close /* __db_close is a wrapper. */
59#define __db_dirfree __db_jump.db_dirfree
60#define __db_dirlist __db_jump.db_dirlist
61#define __db_exists __db_jump.db_exists
62#define __db_free __db_jump.db_free
63#define __os_fsync __db_jump.db_fsync /* __db_fsync is a wrapper. */
64#define __db_ioinfo __db_jump.db_ioinfo
65#define __db_malloc __db_jump.db_malloc
66#define __db_map __db_jump.db_map
67#define __os_open __db_jump.db_open /* __db_open is a wrapper. */
68#define __os_read __db_jump.db_read /* __db_read is a wrapper. */
69#define __db_realloc __db_jump.db_realloc
70#define __db_seek __db_jump.db_seek
71#define __db_sleep __db_jump.db_sleep
72#define __db_strdup __db_jump.db_strdup
73#define __os_unlink __db_jump.db_unlink /* __db_unlink is a wrapper. */
74#define __db_unmap __db_jump.db_unmap
75#define __os_write __db_jump.db_write /* __db_write is a wrapper. */
76#define __db_yield __db_jump.db_yield