root/arch/mips/fw/cfe/cfe_api_int.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
   4  */
   5 #ifndef CFE_API_INT_H
   6 #define CFE_API_INT_H
   7 
   8 /*
   9  * Constants.
  10  */
  11 #define CFE_CMD_FW_GETINFO      0
  12 #define CFE_CMD_FW_RESTART      1
  13 #define CFE_CMD_FW_BOOT         2
  14 #define CFE_CMD_FW_CPUCTL       3
  15 #define CFE_CMD_FW_GETTIME      4
  16 #define CFE_CMD_FW_MEMENUM      5
  17 #define CFE_CMD_FW_FLUSHCACHE   6
  18 
  19 #define CFE_CMD_DEV_GETHANDLE   9
  20 #define CFE_CMD_DEV_ENUM        10
  21 #define CFE_CMD_DEV_OPEN        11
  22 #define CFE_CMD_DEV_INPSTAT     12
  23 #define CFE_CMD_DEV_READ        13
  24 #define CFE_CMD_DEV_WRITE       14
  25 #define CFE_CMD_DEV_IOCTL       15
  26 #define CFE_CMD_DEV_CLOSE       16
  27 #define CFE_CMD_DEV_GETINFO     17
  28 
  29 #define CFE_CMD_ENV_ENUM        20
  30 #define CFE_CMD_ENV_GET         22
  31 #define CFE_CMD_ENV_SET         23
  32 #define CFE_CMD_ENV_DEL         24
  33 
  34 #define CFE_CMD_MAX             32
  35 
  36 #define CFE_CMD_VENDOR_USE      0x8000  /* codes above this are for customer use */
  37 
  38 /*
  39  * Structures.
  40  */
  41 
  42 /* eeek, signed "pointers" */
  43 typedef s64 cfe_xptr_t;
  44 
  45 struct xiocb_buffer {
  46         u64 buf_offset;         /* offset on device (bytes) */
  47         cfe_xptr_t  buf_ptr;            /* pointer to a buffer */
  48         u64 buf_length;         /* length of this buffer */
  49         u64 buf_retlen;         /* returned length (for read ops) */
  50         u64 buf_ioctlcmd;       /* IOCTL command (used only for IOCTLs) */
  51 };
  52 
  53 struct xiocb_inpstat {
  54         u64 inp_status;         /* 1 means input available */
  55 };
  56 
  57 struct xiocb_envbuf {
  58         s64 enum_idx;           /* 0-based enumeration index */
  59         cfe_xptr_t name_ptr;            /* name string buffer */
  60         s64 name_length;                /* size of name buffer */
  61         cfe_xptr_t val_ptr;             /* value string buffer */
  62         s64 val_length;         /* size of value string buffer */
  63 };
  64 
  65 struct xiocb_cpuctl {
  66         u64 cpu_number;         /* cpu number to control */
  67         u64 cpu_command;        /* command to issue to CPU */
  68         u64 start_addr;         /* CPU start address */
  69         u64 gp_val;             /* starting GP value */
  70         u64 sp_val;             /* starting SP value */
  71         u64 a1_val;             /* starting A1 value */
  72 };
  73 
  74 struct xiocb_time {
  75         s64 ticks;              /* current time in ticks */
  76 };
  77 
  78 struct xiocb_exitstat{
  79         s64 status;
  80 };
  81 
  82 struct xiocb_meminfo {
  83         s64 mi_idx;             /* 0-based enumeration index */
  84         s64 mi_type;            /* type of memory block */
  85         u64 mi_addr;            /* physical start address */
  86         u64 mi_size;            /* block size */
  87 };
  88 
  89 struct xiocb_fwinfo {
  90         s64 fwi_version;                /* major, minor, eco version */
  91         s64 fwi_totalmem;       /* total installed mem */
  92         s64 fwi_flags;          /* various flags */
  93         s64 fwi_boardid;                /* board ID */
  94         s64 fwi_bootarea_va;    /* VA of boot area */
  95         s64 fwi_bootarea_pa;    /* PA of boot area */
  96         s64 fwi_bootarea_size;  /* size of boot area */
  97         s64 fwi_reserved1;
  98         s64 fwi_reserved2;
  99         s64 fwi_reserved3;
 100 };
 101 
 102 struct cfe_xiocb {
 103         u64 xiocb_fcode;        /* IOCB function code */
 104         s64 xiocb_status;       /* return status */
 105         s64 xiocb_handle;       /* file/device handle */
 106         u64 xiocb_flags;        /* flags for this IOCB */
 107         u64 xiocb_psize;        /* size of parameter list */
 108         union {
 109                 /* buffer parameters */
 110                 struct xiocb_buffer xiocb_buffer;
 111 
 112                 /* input status parameters */
 113                 struct xiocb_inpstat xiocb_inpstat;
 114 
 115                 /* environment function parameters */
 116                 struct xiocb_envbuf xiocb_envbuf;
 117 
 118                 /* CPU control parameters */
 119                 struct xiocb_cpuctl xiocb_cpuctl;
 120 
 121                 /* timer parameters */
 122                 struct xiocb_time xiocb_time;
 123 
 124                 /* memory arena info parameters */
 125                 struct xiocb_meminfo xiocb_meminfo;
 126 
 127                 /* firmware information */
 128                 struct xiocb_fwinfo xiocb_fwinfo;
 129 
 130                 /* Exit Status */
 131                 struct xiocb_exitstat xiocb_exitstat;
 132         } plist;
 133 };
 134 
 135 #endif /* CFE_API_INT_H */

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