aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/linux-headers/linux
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2023-12-02 19:09:21 +0300
committerthegeorg <thegeorg@yandex-team.com>2023-12-02 19:37:49 +0300
commit097b526d22a1de18db17843d83b779f22ec6b3b2 (patch)
tree0c3f57328697cb3416dbe5caab0415d43ec87a6b /contrib/libs/linux-headers/linux
parent5539da39942db0ae6f0a0292ffa0e9f48584c398 (diff)
downloadydb-097b526d22a1de18db17843d83b779f22ec6b3b2.tar.gz
Remove files with bad license from contrib/libs/linux-headers
Diffstat (limited to 'contrib/libs/linux-headers/linux')
-rw-r--r--contrib/libs/linux-headers/linux/coda.h756
-rw-r--r--contrib/libs/linux-headers/linux/ndctl.h255
2 files changed, 0 insertions, 1011 deletions
diff --git a/contrib/libs/linux-headers/linux/coda.h b/contrib/libs/linux-headers/linux/coda.h
deleted file mode 100644
index e6594a3d3d..0000000000
--- a/contrib/libs/linux-headers/linux/coda.h
+++ /dev/null
@@ -1,756 +0,0 @@
-/*
- You may distribute this file under either of the two licenses that
- follow at your discretion.
-*/
-
-/* BLURB lgpl
-
- Coda File System
- Release 5
-
- Copyright (c) 1987-1999 Carnegie Mellon University
- Additional copyrights listed below
-
-This code is distributed "AS IS" without warranty of any kind under
-the terms of the GNU Library General Public Licence Version 2, as
-shown in the file LICENSE, or under the license shown below. The
-technical and financial contributors to Coda are listed in the file
-CREDITS.
-
- Additional copyrights
-*/
-
-/*
-
- Coda: an Experimental Distributed File System
- Release 4.0
-
- Copyright (c) 1987-1999 Carnegie Mellon University
- All Rights Reserved
-
-Permission to use, copy, modify and distribute this software and its
-documentation is hereby granted, provided that both the copyright
-notice and this permission notice appear in all copies of the
-software, derivative works or modified versions, and any portions
-thereof, and that both notices appear in supporting documentation, and
-that credit is given to Carnegie Mellon University in all documents
-and publicity pertaining to direct or indirect use of this code or its
-derivatives.
-
-CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS,
-SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS
-FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON
-DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER
-RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF
-ANY DERIVATIVE WORK.
-
-Carnegie Mellon encourages users of this software to return any
-improvements or extensions that they make, and to grant Carnegie
-Mellon the rights to redistribute these changes without encumbrance.
-*/
-
-/*
- *
- * Based on cfs.h from Mach, but revamped for increased simplicity.
- * Linux modifications by
- * Peter Braam, Aug 1996
- */
-
-#ifndef _CODA_HEADER_
-#define _CODA_HEADER_
-
-
-/* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */
-#if defined(__NetBSD__) || \
- ((defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL))
-#include <sys/types.h>
-#endif
-
-#ifndef CODA_MAXSYMLINKS
-#define CODA_MAXSYMLINKS 10
-#endif
-
-#if defined(DJGPP) || defined(__CYGWIN32__)
-#ifdef KERNEL
-typedef unsigned long u_long;
-typedef unsigned int u_int;
-typedef unsigned short u_short;
-typedef u_long ino_t;
-typedef u_long dev_t;
-typedef void * caddr_t;
-#ifdef DOS
-typedef unsigned __int64 u_quad_t;
-#else
-typedef unsigned long long u_quad_t;
-#endif
-
-#define __inline__
-
-#else /* DJGPP but not KERNEL */
-#include <sys/time.h>
-typedef unsigned long long u_quad_t;
-#endif /* !KERNEL */
-#endif /* !DJGPP */
-
-
-#if defined(__linux__)
-#include <linux/time.h>
-#define cdev_t u_quad_t
-#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
-#define _UQUAD_T_ 1
-typedef unsigned long long u_quad_t;
-#endif
-#else
-#define cdev_t dev_t
-#endif
-
-#ifndef __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-typedef signed char int8_t;
-typedef unsigned char u_int8_t;
-typedef short int16_t;
-typedef unsigned short u_int16_t;
-typedef int int32_t;
-typedef unsigned int u_int32_t;
-#endif
-
-
-/*
- * Cfs constants
- */
-#define CODA_MAXNAMLEN 255
-#define CODA_MAXPATHLEN 1024
-#define CODA_MAXSYMLINK 10
-
-/* these are Coda's version of O_RDONLY etc combinations
- * to deal with VFS open modes
- */
-#define C_O_READ 0x001
-#define C_O_WRITE 0x002
-#define C_O_TRUNC 0x010
-#define C_O_EXCL 0x100
-#define C_O_CREAT 0x200
-
-/* these are to find mode bits in Venus */
-#define C_M_READ 00400
-#define C_M_WRITE 00200
-
-/* for access Venus will use */
-#define C_A_C_OK 8 /* Test for writing upon create. */
-#define C_A_R_OK 4 /* Test for read permission. */
-#define C_A_W_OK 2 /* Test for write permission. */
-#define C_A_X_OK 1 /* Test for execute permission. */
-#define C_A_F_OK 0 /* Test for existence. */
-
-
-
-#ifndef _VENUS_DIRENT_T_
-#define _VENUS_DIRENT_T_ 1
-struct venus_dirent {
- u_int32_t d_fileno; /* file number of entry */
- u_int16_t d_reclen; /* length of this record */
- u_int8_t d_type; /* file type, see below */
- u_int8_t d_namlen; /* length of string in d_name */
- char d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */
-};
-#undef DIRSIZ
-#define DIRSIZ(dp) ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \
- (((dp)->d_namlen+1 + 3) &~ 3))
-
-/*
- * File types
- */
-#define CDT_UNKNOWN 0
-#define CDT_FIFO 1
-#define CDT_CHR 2
-#define CDT_DIR 4
-#define CDT_BLK 6
-#define CDT_REG 8
-#define CDT_LNK 10
-#define CDT_SOCK 12
-#define CDT_WHT 14
-
-/*
- * Convert between stat structure types and directory types.
- */
-#define IFTOCDT(mode) (((mode) & 0170000) >> 12)
-#define CDTTOIF(dirtype) ((dirtype) << 12)
-
-#endif
-
-#ifndef _VUID_T_
-#define _VUID_T_
-typedef u_int32_t vuid_t;
-typedef u_int32_t vgid_t;
-#endif /*_VUID_T_ */
-
-struct CodaFid {
- u_int32_t opaque[4];
-};
-
-#define coda_f2i(fid)\
- (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0)
-
-#ifndef _VENUS_VATTR_T_
-#define _VENUS_VATTR_T_
-/*
- * Vnode types. VNON means no type.
- */
-enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
-
-struct coda_timespec {
- int64_t tv_sec; /* seconds */
- long tv_nsec; /* nanoseconds */
-};
-
-struct coda_vattr {
- long va_type; /* vnode type (for create) */
- u_short va_mode; /* files access mode and type */
- short va_nlink; /* number of references to file */
- vuid_t va_uid; /* owner user id */
- vgid_t va_gid; /* owner group id */
- long va_fileid; /* file id */
- u_quad_t va_size; /* file size in bytes */
- long va_blocksize; /* blocksize preferred for i/o */
- struct coda_timespec va_atime; /* time of last access */
- struct coda_timespec va_mtime; /* time of last modification */
- struct coda_timespec va_ctime; /* time file changed */
- u_long va_gen; /* generation number of file */
- u_long va_flags; /* flags defined for file */
- cdev_t va_rdev; /* device special file represents */
- u_quad_t va_bytes; /* bytes of disk space held by file */
- u_quad_t va_filerev; /* file modification number */
-};
-
-#endif
-
-/* structure used by CODA_STATFS for getting cache information from venus */
-struct coda_statfs {
- int32_t f_blocks;
- int32_t f_bfree;
- int32_t f_bavail;
- int32_t f_files;
- int32_t f_ffree;
-};
-
-/*
- * Kernel <--> Venus communications.
- */
-
-#define CODA_ROOT 2
-#define CODA_OPEN_BY_FD 3
-#define CODA_OPEN 4
-#define CODA_CLOSE 5
-#define CODA_IOCTL 6
-#define CODA_GETATTR 7
-#define CODA_SETATTR 8
-#define CODA_ACCESS 9
-#define CODA_LOOKUP 10
-#define CODA_CREATE 11
-#define CODA_REMOVE 12
-#define CODA_LINK 13
-#define CODA_RENAME 14
-#define CODA_MKDIR 15
-#define CODA_RMDIR 16
-#define CODA_SYMLINK 18
-#define CODA_READLINK 19
-#define CODA_FSYNC 20
-#define CODA_VGET 22
-#define CODA_SIGNAL 23
-#define CODA_REPLACE 24 /* DOWNCALL */
-#define CODA_FLUSH 25 /* DOWNCALL */
-#define CODA_PURGEUSER 26 /* DOWNCALL */
-#define CODA_ZAPFILE 27 /* DOWNCALL */
-#define CODA_ZAPDIR 28 /* DOWNCALL */
-#define CODA_PURGEFID 30 /* DOWNCALL */
-#define CODA_OPEN_BY_PATH 31
-#define CODA_RESOLVE 32
-#define CODA_REINTEGRATE 33
-#define CODA_STATFS 34
-#define CODA_STORE 35
-#define CODA_RELEASE 36
-#define CODA_ACCESS_INTENT 37
-#define CODA_NCALLS 38
-
-#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
-
-#define VC_MAXDATASIZE 8192
-#define VC_MAXMSGSIZE sizeof(union inputArgs)+sizeof(union outputArgs) +\
- VC_MAXDATASIZE
-
-#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
-
-// CODA_KERNEL_VERSION 0 /* don't care about kernel version number */
-// CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */
-// CODA_KERNEL_VERSION 2 /* venus_lookup gets an extra parameter */
-// CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
-// CODA_KERNEL_VERSION 4 /* 64-bit timespec */
-#define CODA_KERNEL_VERSION 5 /* access intent support */
-
-/*
- * Venus <-> Coda RPC arguments
- */
-struct coda_in_hdr {
- u_int32_t opcode;
- u_int32_t unique; /* Keep multiple outstanding msgs distinct */
- __kernel_pid_t pid;
- __kernel_pid_t pgid;
- vuid_t uid;
-};
-
-/* Really important that opcode and unique are 1st two fields! */
-struct coda_out_hdr {
- u_int32_t opcode;
- u_int32_t unique;
- u_int32_t result;
-};
-
-/* coda_root: NO_IN */
-struct coda_root_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
-};
-
-struct coda_root_in {
- struct coda_in_hdr in;
-};
-
-/* coda_open: */
-struct coda_open_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_open_out {
- struct coda_out_hdr oh;
- cdev_t dev;
- ino_t inode;
-};
-
-
-/* coda_store: */
-struct coda_store_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_store_out {
- struct coda_out_hdr out;
-};
-
-/* coda_release: */
-struct coda_release_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_release_out {
- struct coda_out_hdr out;
-};
-
-/* coda_close: */
-struct coda_close_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_close_out {
- struct coda_out_hdr out;
-};
-
-/* coda_ioctl: */
-struct coda_ioctl_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int cmd;
- int len;
- int rwflag;
- char *data; /* Place holder for data. */
-};
-
-struct coda_ioctl_out {
- struct coda_out_hdr oh;
- int len;
- caddr_t data; /* Place holder for data. */
-};
-
-
-/* coda_getattr: */
-struct coda_getattr_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_getattr_out {
- struct coda_out_hdr oh;
- struct coda_vattr attr;
-};
-
-
-/* coda_setattr: NO_OUT */
-struct coda_setattr_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- struct coda_vattr attr;
-};
-
-struct coda_setattr_out {
- struct coda_out_hdr out;
-};
-
-/* coda_access: NO_OUT */
-struct coda_access_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_access_out {
- struct coda_out_hdr out;
-};
-
-
-/* lookup flags */
-#define CLU_CASE_SENSITIVE 0x01
-#define CLU_CASE_INSENSITIVE 0x02
-
-/* coda_lookup: */
-struct coda_lookup_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int name; /* Place holder for data. */
- int flags;
-};
-
-struct coda_lookup_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- int vtype;
-};
-
-
-/* coda_create: */
-struct coda_create_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- struct coda_vattr attr;
- int excl;
- int mode;
- int name; /* Place holder for data. */
-};
-
-struct coda_create_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- struct coda_vattr attr;
-};
-
-
-/* coda_remove: NO_OUT */
-struct coda_remove_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int name; /* Place holder for data. */
-};
-
-struct coda_remove_out {
- struct coda_out_hdr out;
-};
-
-/* coda_link: NO_OUT */
-struct coda_link_in {
- struct coda_in_hdr ih;
- struct CodaFid sourceFid; /* cnode to link *to* */
- struct CodaFid destFid; /* Directory in which to place link */
- int tname; /* Place holder for data. */
-};
-
-struct coda_link_out {
- struct coda_out_hdr out;
-};
-
-
-/* coda_rename: NO_OUT */
-struct coda_rename_in {
- struct coda_in_hdr ih;
- struct CodaFid sourceFid;
- int srcname;
- struct CodaFid destFid;
- int destname;
-};
-
-struct coda_rename_out {
- struct coda_out_hdr out;
-};
-
-/* coda_mkdir: */
-struct coda_mkdir_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- struct coda_vattr attr;
- int name; /* Place holder for data. */
-};
-
-struct coda_mkdir_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- struct coda_vattr attr;
-};
-
-
-/* coda_rmdir: NO_OUT */
-struct coda_rmdir_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int name; /* Place holder for data. */
-};
-
-struct coda_rmdir_out {
- struct coda_out_hdr out;
-};
-
-/* coda_symlink: NO_OUT */
-struct coda_symlink_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid; /* Directory to put symlink in */
- int srcname;
- struct coda_vattr attr;
- int tname;
-};
-
-struct coda_symlink_out {
- struct coda_out_hdr out;
-};
-
-/* coda_readlink: */
-struct coda_readlink_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_readlink_out {
- struct coda_out_hdr oh;
- int count;
- caddr_t data; /* Place holder for data. */
-};
-
-
-/* coda_fsync: NO_OUT */
-struct coda_fsync_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_fsync_out {
- struct coda_out_hdr out;
-};
-
-/* coda_vget: */
-struct coda_vget_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_vget_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- int vtype;
-};
-
-
-/* CODA_SIGNAL is out-of-band, doesn't need data. */
-/* CODA_INVALIDATE is a venus->kernel call */
-/* CODA_FLUSH is a venus->kernel call */
-
-/* coda_purgeuser: */
-/* CODA_PURGEUSER is a venus->kernel call */
-struct coda_purgeuser_out {
- struct coda_out_hdr oh;
- vuid_t uid;
-};
-
-/* coda_zapfile: */
-/* CODA_ZAPFILE is a venus->kernel call */
-struct coda_zapfile_out {
- struct coda_out_hdr oh;
- struct CodaFid CodaFid;
-};
-
-/* coda_zapdir: */
-/* CODA_ZAPDIR is a venus->kernel call */
-struct coda_zapdir_out {
- struct coda_out_hdr oh;
- struct CodaFid CodaFid;
-};
-
-/* coda_purgefid: */
-/* CODA_PURGEFID is a venus->kernel call */
-struct coda_purgefid_out {
- struct coda_out_hdr oh;
- struct CodaFid CodaFid;
-};
-
-/* coda_replace: */
-/* CODA_REPLACE is a venus->kernel call */
-struct coda_replace_out { /* coda_replace is a venus->kernel call */
- struct coda_out_hdr oh;
- struct CodaFid NewFid;
- struct CodaFid OldFid;
-};
-
-/* coda_open_by_fd: */
-struct coda_open_by_fd_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_open_by_fd_out {
- struct coda_out_hdr oh;
- int fd;
-
-};
-
-/* coda_open_by_path: */
-struct coda_open_by_path_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_open_by_path_out {
- struct coda_out_hdr oh;
- int path;
-};
-
-/* coda_statfs: NO_IN */
-struct coda_statfs_in {
- struct coda_in_hdr in;
-};
-
-struct coda_statfs_out {
- struct coda_out_hdr oh;
- struct coda_statfs stat;
-};
-
-#define CODA_ACCESS_TYPE_READ 1
-#define CODA_ACCESS_TYPE_WRITE 2
-#define CODA_ACCESS_TYPE_MMAP 3
-#define CODA_ACCESS_TYPE_READ_FINISH 4
-#define CODA_ACCESS_TYPE_WRITE_FINISH 5
-
-/* coda_access_intent: NO_OUT */
-struct coda_access_intent_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int count;
- int pos;
- int type;
-};
-
-struct coda_access_intent_out {
- struct coda_out_hdr out;
-};
-
-/*
- * Occasionally, we don't cache the fid returned by CODA_LOOKUP.
- * For instance, if the fid is inconsistent.
- * This case is handled by setting the top bit of the type result parameter.
- */
-#define CODA_NOCACHE 0x80000000
-
-union inputArgs {
- struct coda_in_hdr ih; /* NB: every struct below begins with an ih */
- struct coda_open_in coda_open;
- struct coda_store_in coda_store;
- struct coda_release_in coda_release;
- struct coda_close_in coda_close;
- struct coda_ioctl_in coda_ioctl;
- struct coda_getattr_in coda_getattr;
- struct coda_setattr_in coda_setattr;
- struct coda_access_in coda_access;
- struct coda_lookup_in coda_lookup;
- struct coda_create_in coda_create;
- struct coda_remove_in coda_remove;
- struct coda_link_in coda_link;
- struct coda_rename_in coda_rename;
- struct coda_mkdir_in coda_mkdir;
- struct coda_rmdir_in coda_rmdir;
- struct coda_symlink_in coda_symlink;
- struct coda_readlink_in coda_readlink;
- struct coda_fsync_in coda_fsync;
- struct coda_vget_in coda_vget;
- struct coda_open_by_fd_in coda_open_by_fd;
- struct coda_open_by_path_in coda_open_by_path;
- struct coda_statfs_in coda_statfs;
- struct coda_access_intent_in coda_access_intent;
-};
-
-union outputArgs {
- struct coda_out_hdr oh; /* NB: every struct below begins with an oh */
- struct coda_root_out coda_root;
- struct coda_open_out coda_open;
- struct coda_ioctl_out coda_ioctl;
- struct coda_getattr_out coda_getattr;
- struct coda_lookup_out coda_lookup;
- struct coda_create_out coda_create;
- struct coda_mkdir_out coda_mkdir;
- struct coda_readlink_out coda_readlink;
- struct coda_vget_out coda_vget;
- struct coda_purgeuser_out coda_purgeuser;
- struct coda_zapfile_out coda_zapfile;
- struct coda_zapdir_out coda_zapdir;
- struct coda_purgefid_out coda_purgefid;
- struct coda_replace_out coda_replace;
- struct coda_open_by_fd_out coda_open_by_fd;
- struct coda_open_by_path_out coda_open_by_path;
- struct coda_statfs_out coda_statfs;
-};
-
-union coda_downcalls {
- /* CODA_INVALIDATE is a venus->kernel call */
- /* CODA_FLUSH is a venus->kernel call */
- struct coda_purgeuser_out purgeuser;
- struct coda_zapfile_out zapfile;
- struct coda_zapdir_out zapdir;
- struct coda_purgefid_out purgefid;
- struct coda_replace_out replace;
-};
-
-
-/*
- * Used for identifying usage of "Control" and pioctls
- */
-
-#define PIOCPARM_MASK 0x0000ffff
-struct ViceIoctl {
- void *in; /* Data to be transferred in */
- void *out; /* Data to be transferred out */
- u_short in_size; /* Size of input buffer <= 2K */
- u_short out_size; /* Maximum size of output buffer, <= 2K */
-};
-
-struct PioctlData {
- const char *path;
- int follow;
- struct ViceIoctl vi;
-};
-
-#define CODA_CONTROL ".CONTROL"
-#define CODA_CONTROLLEN 8
-#define CTL_INO -1
-
-/* Data passed to mount */
-
-#define CODA_MOUNT_VERSION 1
-
-struct coda_mount_data {
- int version;
- int fd; /* Opened device */
-};
-
-#endif /* _CODA_HEADER_ */
diff --git a/contrib/libs/linux-headers/linux/ndctl.h b/contrib/libs/linux-headers/linux/ndctl.h
deleted file mode 100644
index 6e7b9264d6..0000000000
--- a/contrib/libs/linux-headers/linux/ndctl.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (c) 2014-2016, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU Lesser General Public License,
- * version 2.1, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
- * more details.
- */
-#ifndef __NDCTL_H__
-#define __NDCTL_H__
-
-#include <linux/types.h>
-
-struct nd_cmd_dimm_flags {
- __u32 status;
- __u32 flags;
-} __attribute__((packed));
-
-struct nd_cmd_get_config_size {
- __u32 status;
- __u32 config_size;
- __u32 max_xfer;
-} __attribute__((packed));
-
-struct nd_cmd_get_config_data_hdr {
- __u32 in_offset;
- __u32 in_length;
- __u32 status;
- __u8 out_buf[];
-} __attribute__((packed));
-
-struct nd_cmd_set_config_hdr {
- __u32 in_offset;
- __u32 in_length;
- __u8 in_buf[];
-} __attribute__((packed));
-
-struct nd_cmd_vendor_hdr {
- __u32 opcode;
- __u32 in_length;
- __u8 in_buf[];
-} __attribute__((packed));
-
-struct nd_cmd_vendor_tail {
- __u32 status;
- __u32 out_length;
- __u8 out_buf[];
-} __attribute__((packed));
-
-struct nd_cmd_ars_cap {
- __u64 address;
- __u64 length;
- __u32 status;
- __u32 max_ars_out;
- __u32 clear_err_unit;
- __u16 flags;
- __u16 reserved;
-} __attribute__((packed));
-
-struct nd_cmd_ars_start {
- __u64 address;
- __u64 length;
- __u16 type;
- __u8 flags;
- __u8 reserved[5];
- __u32 status;
- __u32 scrub_time;
-} __attribute__((packed));
-
-struct nd_cmd_ars_status {
- __u32 status;
- __u32 out_length;
- __u64 address;
- __u64 length;
- __u64 restart_address;
- __u64 restart_length;
- __u16 type;
- __u16 flags;
- __u32 num_records;
- struct nd_ars_record {
- __u32 handle;
- __u32 reserved;
- __u64 err_address;
- __u64 length;
- } __attribute__((packed)) records[];
-} __attribute__((packed));
-
-struct nd_cmd_clear_error {
- __u64 address;
- __u64 length;
- __u32 status;
- __u8 reserved[4];
- __u64 cleared;
-} __attribute__((packed));
-
-enum {
- ND_CMD_IMPLEMENTED = 0,
-
- /* bus commands */
- ND_CMD_ARS_CAP = 1,
- ND_CMD_ARS_START = 2,
- ND_CMD_ARS_STATUS = 3,
- ND_CMD_CLEAR_ERROR = 4,
-
- /* per-dimm commands */
- ND_CMD_SMART = 1,
- ND_CMD_SMART_THRESHOLD = 2,
- ND_CMD_DIMM_FLAGS = 3,
- ND_CMD_GET_CONFIG_SIZE = 4,
- ND_CMD_GET_CONFIG_DATA = 5,
- ND_CMD_SET_CONFIG_DATA = 6,
- ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7,
- ND_CMD_VENDOR_EFFECT_LOG = 8,
- ND_CMD_VENDOR = 9,
- ND_CMD_CALL = 10,
-};
-
-enum {
- ND_ARS_VOLATILE = 1,
- ND_ARS_PERSISTENT = 2,
- ND_ARS_RETURN_PREV_DATA = 1 << 1,
- ND_CONFIG_LOCKED = 1,
-};
-
-static __inline__ const char *nvdimm_bus_cmd_name(unsigned cmd)
-{
- switch (cmd) {
- case ND_CMD_ARS_CAP: return "ars_cap";
- case ND_CMD_ARS_START: return "ars_start";
- case ND_CMD_ARS_STATUS: return "ars_status";
- case ND_CMD_CLEAR_ERROR: return "clear_error";
- case ND_CMD_CALL: return "cmd_call";
- default: return "unknown";
- }
-}
-
-static __inline__ const char *nvdimm_cmd_name(unsigned cmd)
-{
- switch (cmd) {
- case ND_CMD_SMART: return "smart";
- case ND_CMD_SMART_THRESHOLD: return "smart_thresh";
- case ND_CMD_DIMM_FLAGS: return "flags";
- case ND_CMD_GET_CONFIG_SIZE: return "get_size";
- case ND_CMD_GET_CONFIG_DATA: return "get_data";
- case ND_CMD_SET_CONFIG_DATA: return "set_data";
- case ND_CMD_VENDOR_EFFECT_LOG_SIZE: return "effect_size";
- case ND_CMD_VENDOR_EFFECT_LOG: return "effect_log";
- case ND_CMD_VENDOR: return "vendor";
- case ND_CMD_CALL: return "cmd_call";
- default: return "unknown";
- }
-}
-
-#define ND_IOCTL 'N'
-
-#define ND_IOCTL_DIMM_FLAGS _IOWR(ND_IOCTL, ND_CMD_DIMM_FLAGS,\
- struct nd_cmd_dimm_flags)
-
-#define ND_IOCTL_GET_CONFIG_SIZE _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_SIZE,\
- struct nd_cmd_get_config_size)
-
-#define ND_IOCTL_GET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_DATA,\
- struct nd_cmd_get_config_data_hdr)
-
-#define ND_IOCTL_SET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_SET_CONFIG_DATA,\
- struct nd_cmd_set_config_hdr)
-
-#define ND_IOCTL_VENDOR _IOWR(ND_IOCTL, ND_CMD_VENDOR,\
- struct nd_cmd_vendor_hdr)
-
-#define ND_IOCTL_ARS_CAP _IOWR(ND_IOCTL, ND_CMD_ARS_CAP,\
- struct nd_cmd_ars_cap)
-
-#define ND_IOCTL_ARS_START _IOWR(ND_IOCTL, ND_CMD_ARS_START,\
- struct nd_cmd_ars_start)
-
-#define ND_IOCTL_ARS_STATUS _IOWR(ND_IOCTL, ND_CMD_ARS_STATUS,\
- struct nd_cmd_ars_status)
-
-#define ND_IOCTL_CLEAR_ERROR _IOWR(ND_IOCTL, ND_CMD_CLEAR_ERROR,\
- struct nd_cmd_clear_error)
-
-#define ND_DEVICE_DIMM 1 /* nd_dimm: container for "config data" */
-#define ND_DEVICE_REGION_PMEM 2 /* nd_region: (parent of PMEM namespaces) */
-#define ND_DEVICE_REGION_BLK 3 /* nd_region: (parent of BLK namespaces) */
-#define ND_DEVICE_NAMESPACE_IO 4 /* legacy persistent memory */
-#define ND_DEVICE_NAMESPACE_PMEM 5 /* PMEM namespace (may alias with BLK) */
-#define ND_DEVICE_DAX_PMEM 7 /* Device DAX interface to pmem */
-
-enum nd_driver_flags {
- ND_DRIVER_DIMM = 1 << ND_DEVICE_DIMM,
- ND_DRIVER_REGION_PMEM = 1 << ND_DEVICE_REGION_PMEM,
- ND_DRIVER_REGION_BLK = 1 << ND_DEVICE_REGION_BLK,
- ND_DRIVER_NAMESPACE_IO = 1 << ND_DEVICE_NAMESPACE_IO,
- ND_DRIVER_NAMESPACE_PMEM = 1 << ND_DEVICE_NAMESPACE_PMEM,
- ND_DRIVER_DAX_PMEM = 1 << ND_DEVICE_DAX_PMEM,
-};
-
-enum ars_masks {
- ARS_STATUS_MASK = 0x0000FFFF,
- ARS_EXT_STATUS_SHIFT = 16,
-};
-
-/*
- * struct nd_cmd_pkg
- *
- * is a wrapper to a quasi pass thru interface for invoking firmware
- * associated with nvdimms.
- *
- * INPUT PARAMETERS
- *
- * nd_family corresponds to the firmware (e.g. DSM) interface.
- *
- * nd_command are the function index advertised by the firmware.
- *
- * nd_size_in is the size of the input parameters being passed to firmware
- *
- * OUTPUT PARAMETERS
- *
- * nd_fw_size is the size of the data firmware wants to return for
- * the call. If nd_fw_size is greater than size of nd_size_out, only
- * the first nd_size_out bytes are returned.
- */
-
-struct nd_cmd_pkg {
- __u64 nd_family; /* family of commands */
- __u64 nd_command;
- __u32 nd_size_in; /* INPUT: size of input args */
- __u32 nd_size_out; /* INPUT: size of payload */
- __u32 nd_reserved2[9]; /* reserved must be zero */
- __u32 nd_fw_size; /* OUTPUT: size fw wants to return */
- unsigned char nd_payload[]; /* Contents of call */
-};
-
-/* These NVDIMM families represent pre-standardization command sets */
-#define NVDIMM_FAMILY_INTEL 0
-#define NVDIMM_FAMILY_HPE1 1
-#define NVDIMM_FAMILY_HPE2 2
-#define NVDIMM_FAMILY_MSFT 3
-#define NVDIMM_FAMILY_HYPERV 4
-#define NVDIMM_FAMILY_PAPR 5
-#define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_PAPR
-
-#define NVDIMM_BUS_FAMILY_NFIT 0
-#define NVDIMM_BUS_FAMILY_INTEL 1
-#define NVDIMM_BUS_FAMILY_MAX NVDIMM_BUS_FAMILY_INTEL
-
-#define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL,\
- struct nd_cmd_pkg)
-
-#endif /* __NDCTL_H__ */