Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/include/uapi/linux/nfsd/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  cld.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
 * Upcall description for nfsdcld communication
 *
 * Copyright (c) 2012 Red Hat, Inc.
 * Author(s): Jeff Layton <jlayton@redhat.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */


#ifndef _NFSD_CLD_H
#define _NFSD_CLD_H

#include <linux/types.h>

/* latest upcall version available */
#define CLD_UPCALL_VERSION 2

/* defined by RFC3530 */
#define NFS4_OPAQUE_LIMIT 1024

#ifndef SHA256_DIGEST_SIZE
#define SHA256_DIGEST_SIZE      32
#endif

enum cld_command {
 Cld_Create,  /* create a record for this cm_id */
 Cld_Remove,  /* remove record of this cm_id */
 Cld_Check,  /* is this cm_id allowed? */
 Cld_GraceDone,  /* grace period is complete */
 Cld_GraceStart,  /* grace start (upload client records) */
 Cld_GetVersion,  /* query max supported upcall version */
};

/* representation of long-form NFSv4 client ID */
struct cld_name {
 __u16  cn_len;    /* length of cm_id */
 unsigned char cn_id[NFS4_OPAQUE_LIMIT]; /* client-provided */
} __attribute__((packed));

/* sha256 hash of the kerberos principal */
struct cld_princhash {
 __u8  cp_len;    /* length of cp_data */
 unsigned char cp_data[SHA256_DIGEST_SIZE]; /* hash of principal */
} __attribute__((packed));

struct cld_clntinfo {
 struct cld_name  cc_name;
 struct cld_princhash cc_princhash;
} __attribute__((packed));

/* message struct for communication with userspace */
struct cld_msg {
 __u8  cm_vers;  /* upcall version */
 __u8  cm_cmd;   /* upcall command */
 __s16  cm_status;  /* return code */
 __u32  cm_xid;   /* transaction id */
 union {
  __s64  cm_gracetime; /* grace period start time */
  struct cld_name cm_name;
  __u8  cm_version; /* for getting max version */
 } __attribute__((packed)) cm_u;
} __attribute__((packed));

/* version 2 message can include hash of kerberos principal */
struct cld_msg_v2 {
 __u8  cm_vers;  /* upcall version */
 __u8  cm_cmd;   /* upcall command */
 __s16  cm_status;  /* return code */
 __u32  cm_xid;   /* transaction id */
 union {
  struct cld_name cm_name;
  __u8  cm_version; /* for getting max version */
  struct cld_clntinfo cm_clntinfo; /* name & princ hash */
 } __attribute__((packed)) cm_u;
} __attribute__((packed));

struct cld_msg_hdr {
 __u8  cm_vers;  /* upcall version */
 __u8  cm_cmd;   /* upcall command */
 __s16  cm_status;  /* return code */
 __u32  cm_xid;   /* transaction id */
} __attribute__((packed));

#endif /* !_NFSD_CLD_H */

Messung V0.5
C=94 H=99 G=96

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.