root/drivers/s390/char/hmcdrv_ftp.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  *    SE/HMC Drive FTP Services
   4  *
   5  *    Copyright IBM Corp. 2013
   6  *    Author(s): Ralf Hoppe (rhoppe@de.ibm.com)
   7  */
   8 
   9 #ifndef __HMCDRV_FTP_H__
  10 #define __HMCDRV_FTP_H__
  11 
  12 #include <linux/types.h> /* size_t, loff_t */
  13 
  14 /*
  15  * HMC drive FTP Service max. length of path (w/ EOS)
  16  */
  17 #define HMCDRV_FTP_FIDENT_MAX 192
  18 
  19 /**
  20  * enum hmcdrv_ftp_cmdid - HMC drive FTP commands
  21  * @HMCDRV_FTP_NOOP: do nothing (only for probing)
  22  * @HMCDRV_FTP_GET: read a file
  23  * @HMCDRV_FTP_PUT: (over-) write a file
  24  * @HMCDRV_FTP_APPEND: append to a file
  25  * @HMCDRV_FTP_DIR: list directory long (ls -l)
  26  * @HMCDRV_FTP_NLIST: list files, no directories (name list)
  27  * @HMCDRV_FTP_DELETE: delete a file
  28  * @HMCDRV_FTP_CANCEL: cancel operation (SCLP/LPAR only)
  29  */
  30 enum hmcdrv_ftp_cmdid {
  31         HMCDRV_FTP_NOOP = 0,
  32         HMCDRV_FTP_GET = 1,
  33         HMCDRV_FTP_PUT = 2,
  34         HMCDRV_FTP_APPEND = 3,
  35         HMCDRV_FTP_DIR = 4,
  36         HMCDRV_FTP_NLIST = 5,
  37         HMCDRV_FTP_DELETE = 6,
  38         HMCDRV_FTP_CANCEL = 7
  39 };
  40 
  41 /**
  42  * struct hmcdrv_ftp_cmdspec - FTP command specification
  43  * @id: FTP command ID
  44  * @ofs: offset in file
  45  * @fname: filename (ASCII), null-terminated
  46  * @buf: kernel-space transfer data buffer, 4k aligned
  47  * @len: (max) number of bytes to transfer from/to @buf
  48  */
  49 struct hmcdrv_ftp_cmdspec {
  50         enum hmcdrv_ftp_cmdid id;
  51         loff_t ofs;
  52         const char *fname;
  53         void __kernel *buf;
  54         size_t len;
  55 };
  56 
  57 int hmcdrv_ftp_startup(void);
  58 void hmcdrv_ftp_shutdown(void);
  59 int hmcdrv_ftp_probe(void);
  60 ssize_t hmcdrv_ftp_do(const struct hmcdrv_ftp_cmdspec *ftp);
  61 ssize_t hmcdrv_ftp_cmd(char __kernel *cmd, loff_t offset,
  62                        char __user *buf, size_t len);
  63 
  64 #endif   /* __HMCDRV_FTP_H__ */

/* [<][>][^][v][top][bottom][index][help] */