xref: /titanic_54/usr/src/common/getgen/getgen.h (revision 629337b39ee9656c3872d30188fc6a73d4d9d4af)
1372a60c3SAndreas Jaekel #ifndef __GETGEN_H__
2372a60c3SAndreas Jaekel #define __GETGEN_H__
3372a60c3SAndreas Jaekel 
4372a60c3SAndreas Jaekel #include <sys/types.h>
5372a60c3SAndreas Jaekel #include <sys/param.h>
6372a60c3SAndreas Jaekel 
7372a60c3SAndreas Jaekel #define GGIOC			('g' << 8)
8372a60c3SAndreas Jaekel #define GG_IOC_GET_GENERATION	(GGIOC | 1)
9*629337b3SArne Jansen #define GG_IOC_GET_TXG		(GGIOC | 2)
10372a60c3SAndreas Jaekel 
11372a60c3SAndreas Jaekel #pragma pack(1)
12372a60c3SAndreas Jaekel typedef struct gg_ioc_get_generation {
13372a60c3SAndreas Jaekel 	/* input */
14372a60c3SAndreas Jaekel 	uint64_t	inode;
15372a60c3SAndreas Jaekel 	uint32_t	fd;	/* open fd to any object on the same fs */
16372a60c3SAndreas Jaekel 	/* noput */
17372a60c3SAndreas Jaekel 	uint32_t	padding;
18372a60c3SAndreas Jaekel 	/* output */
19372a60c3SAndreas Jaekel 	uint64_t	generation;
20372a60c3SAndreas Jaekel 	uint64_t	crtime;
21372a60c3SAndreas Jaekel 	uint64_t	guid;
22372a60c3SAndreas Jaekel 	char		dataset[MAXPATHLEN];
23372a60c3SAndreas Jaekel } gg_ioctl_get_generation_t;
24372a60c3SAndreas Jaekel #pragma pack()
25372a60c3SAndreas Jaekel 
26*629337b3SArne Jansen #pragma pack(1)
27*629337b3SArne Jansen typedef struct gg_ioc_get_txg {
28*629337b3SArne Jansen 	/* output */
29*629337b3SArne Jansen 	uint64_t	txg;
30*629337b3SArne Jansen 	/* input */
31*629337b3SArne Jansen 	char		dataset[MAXPATHLEN];
32*629337b3SArne Jansen } gg_ioctl_get_txg_t;
33*629337b3SArne Jansen #pragma pack()
34*629337b3SArne Jansen 
35372a60c3SAndreas Jaekel #endif
36372a60c3SAndreas Jaekel 
37