1/*-
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 2001, 2013 Oracle and/or its affiliates.  All rights reserved.
5 *
6 * $Id$
7 */
8
9DBPRIVATE
10PREFIX  __rep
11
12INCLUDE #include "db_int.h"
13INCLUDE #include "dbinc/db_page.h"
14INCLUDE #include "dbinc/db_am.h"
15INCLUDE #include "dbinc/mp.h"
16INCLUDE #include "dbinc/txn.h"
17INCLUDE
18
19/*
20 * bulk - message for bulk log records or pages
21 */
22BEGIN_MSG bulk		check_length
23ARG	len		u_int32_t
24ARG	lsn		DB_LSN
25ARG	bulkdata	DBT
26END
27
28/*
29 * control - replication control message
30 */
31BEGIN_MSG control	check_length
32ARG	rep_version	u_int32_t
33ARG	log_version	u_int32_t
34ARG	lsn		DB_LSN
35ARG	rectype		u_int32_t
36ARG	gen		u_int32_t
37ARG	msg_sec		u_int32_t
38ARG	msg_nsec	u_int32_t
39ARG	flags		u_int32_t
40END
41
42/*
43 * egen data
44 */
45BEGIN_MSG egen		check_length
46ARG	egen		u_int32_t
47END
48
49/*
50 * file info
51 *
52 * NOTE:  The order of the DBTs is important and relevant in the
53 * GET_CURINFO macro.
54 */
55BEGIN_MSG fileinfo	alloc check_length version
56ARG	pgsize		u_int32_t
57ARG	pgno		db_pgno_t
58ARG	max_pgno	db_pgno_t
59ARG	filenum		u_int32_t
60ARG	finfo_flags	u_int32_t
61ARG	type		u_int32_t
62ARG	db_flags	u_int32_t
63ARG	uid		DBT
64ARG	info		DBT
65ARG	dir		DBT
66END
67
68BEGIN_MSG fileinfo_v6	alloc check_length version
69ARG	pgsize		u_int32_t
70ARG	pgno		db_pgno_t
71ARG	max_pgno	db_pgno_t
72ARG	filenum		u_int32_t
73ARG	finfo_flags	u_int32_t
74ARG	type		u_int32_t
75ARG	db_flags	u_int32_t
76ARG	uid		DBT
77ARG	info		DBT
78END
79
80/*
81 * grant info - clients send to masters granting a lease.
82 */
83BEGIN_MSG grant_info	check_length
84ARG	msg_sec		u_int32_t
85ARG	msg_nsec	u_int32_t
86END
87
88/*
89 * We do not need to do anything with LOG record data.
90 * It is opaque data to us.
91 */
92
93/*
94 * log request
95 */
96BEGIN_MSG logreq	check_length
97ARG	endlsn		DB_LSN
98END
99
100/*
101 * We do not need to do anything with NEWCLIENT/NEWSITE cdata dbt.
102 * It is user data and the app has to do whatever transformation
103 * it needs to with its own data.
104 */
105/*
106 * newfile version
107 */
108BEGIN_MSG newfile	check_length
109ARG	version		u_int32_t
110END
111
112/*
113 * update - send update information
114 */
115BEGIN_MSG update	alloc check_length version
116ARG	first_lsn	DB_LSN
117ARG	first_vers	u_int32_t
118ARG	num_files	u_int32_t
119END
120
121/*
122 * vote info.  Current version.
123 */
124BEGIN_MSG vote_info	check_length
125ARG	egen		u_int32_t
126ARG	nsites		u_int32_t
127ARG	nvotes		u_int32_t
128ARG	priority	u_int32_t
129ARG	spare_pri	u_int32_t
130ARG	tiebreaker	u_int32_t
131ARG	data_gen	u_int32_t
132END
133/*
134 * vote info old version from REPVERSION 5 and earlier.
135 */
136BEGIN_MSG vote_info_v5	check_length
137ARG	egen		u_int32_t
138ARG	nsites		u_int32_t
139ARG	nvotes		u_int32_t
140ARG	priority	u_int32_t
141ARG	tiebreaker	u_int32_t
142END
143
144/*
145 * LSN history database - key
146 */
147BEGIN_MSG lsn_hist_key
148ARG	version		u_int32_t
149ARG	gen		u_int32_t
150END
151
152/*
153 * LSN history database - data
154 */
155BEGIN_MSG lsn_hist_data
156ARG	envid		u_int32_t
157ARG	lsn		DB_LSN
158ARG	hist_sec	u_int32_t
159ARG	hist_nsec	u_int32_t
160END
161