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