blob: 92b89c06411e825dafd3a94f546ad4e18ddf584f [file] [log] [blame]
Nick Kralevicha67e4de2013-01-14 11:28:26 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
Ben Cheng655a7c02013-10-16 16:09:24 -070019#ifndef _NFSD_CLD_H
20#define _NFSD_CLD_H
Christopher Ferris525ce912017-07-26 13:12:53 -070021#include <linux/types.h>
Christopher Ferris9584fa42019-12-09 15:36:13 -080022#define CLD_UPCALL_VERSION 2
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define NFS4_OPAQUE_LIMIT 1024
Christopher Ferris9584fa42019-12-09 15:36:13 -080024#ifndef SHA256_DIGEST_SIZE
25#define SHA256_DIGEST_SIZE 32
26#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070027enum cld_command {
Tao Baod7db5942015-01-28 10:07:51 -080028 Cld_Create,
29 Cld_Remove,
30 Cld_Check,
Tao Baod7db5942015-01-28 10:07:51 -080031 Cld_GraceDone,
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -070032 Cld_GraceStart,
Christopher Ferris9584fa42019-12-09 15:36:13 -080033 Cld_GetVersion,
Ben Cheng655a7c02013-10-16 16:09:24 -070034};
35struct cld_name {
Christopher Ferris525ce912017-07-26 13:12:53 -070036 __u16 cn_len;
Tao Baod7db5942015-01-28 10:07:51 -080037 unsigned char cn_id[NFS4_OPAQUE_LIMIT];
Ben Cheng655a7c02013-10-16 16:09:24 -070038} __attribute__((packed));
Christopher Ferris9584fa42019-12-09 15:36:13 -080039struct cld_princhash {
40 __u8 cp_len;
41 unsigned char cp_data[SHA256_DIGEST_SIZE];
42} __attribute__((packed));
43struct cld_clntinfo {
44 struct cld_name cc_name;
45 struct cld_princhash cc_princhash;
46} __attribute__((packed));
Ben Cheng655a7c02013-10-16 16:09:24 -070047struct cld_msg {
Christopher Ferris525ce912017-07-26 13:12:53 -070048 __u8 cm_vers;
49 __u8 cm_cmd;
50 __s16 cm_status;
51 __u32 cm_xid;
Tao Baod7db5942015-01-28 10:07:51 -080052 union {
Christopher Ferris525ce912017-07-26 13:12:53 -070053 __s64 cm_gracetime;
Tao Baod7db5942015-01-28 10:07:51 -080054 struct cld_name cm_name;
Christopher Ferris9584fa42019-12-09 15:36:13 -080055 __u8 cm_version;
Tao Baod7db5942015-01-28 10:07:51 -080056 } __attribute__((packed)) cm_u;
Ben Cheng655a7c02013-10-16 16:09:24 -070057} __attribute__((packed));
Christopher Ferris9584fa42019-12-09 15:36:13 -080058struct cld_msg_v2 {
59 __u8 cm_vers;
60 __u8 cm_cmd;
61 __s16 cm_status;
62 __u32 cm_xid;
63 union {
64 struct cld_name cm_name;
65 __u8 cm_version;
66 struct cld_clntinfo cm_clntinfo;
67 } __attribute__((packed)) cm_u;
68} __attribute__((packed));
69struct cld_msg_hdr {
70 __u8 cm_vers;
71 __u8 cm_cmd;
72 __s16 cm_status;
73 __u32 cm_xid;
74} __attribute__((packed));
Nick Kralevicha67e4de2013-01-14 11:28:26 -080075#endif