Logo Search packages:      
Sourcecode: linux version File versions

cfe_api_int.h

/*
 * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
 *
 * 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
#ifndef CFE_API_INT_H
#define CFE_API_INT_H

/*
 * Constants.
 */
#define CFE_CMD_FW_GETINFO    0
#define CFE_CMD_FW_RESTART    1
#define CFE_CMD_FW_BOOT       2
#define CFE_CMD_FW_CPUCTL     3
#define CFE_CMD_FW_GETTIME      4
#define CFE_CMD_FW_MEMENUM    5
#define CFE_CMD_FW_FLUSHCACHE 6

#define CFE_CMD_DEV_GETHANDLE 9
#define CFE_CMD_DEV_ENUM      10
#define CFE_CMD_DEV_OPEN      11
#define CFE_CMD_DEV_INPSTAT   12
#define CFE_CMD_DEV_READ      13
#define CFE_CMD_DEV_WRITE     14
#define CFE_CMD_DEV_IOCTL     15
#define CFE_CMD_DEV_CLOSE     16
#define CFE_CMD_DEV_GETINFO   17

#define CFE_CMD_ENV_ENUM      20
#define CFE_CMD_ENV_GET       22
#define CFE_CMD_ENV_SET       23
#define CFE_CMD_ENV_DEL       24

#define CFE_CMD_MAX           32

#define CFE_CMD_VENDOR_USE    0x8000      /* codes above this are for customer use */

/*
 * Structures.
 */

/* eeek, signed "pointers" */
typedef s64 cfe_xptr_t;

struct xiocb_buffer {
      u64 buf_offset;         /* offset on device (bytes) */
      cfe_xptr_t  buf_ptr;          /* pointer to a buffer */
      u64 buf_length;         /* length of this buffer */
      u64 buf_retlen;         /* returned length (for read ops) */
      u64 buf_ioctlcmd; /* IOCTL command (used only for IOCTLs) */
};

struct xiocb_inpstat {
      u64 inp_status;         /* 1 means input available */
};

struct xiocb_envbuf {
      s64 enum_idx;           /* 0-based enumeration index */
      cfe_xptr_t name_ptr;          /* name string buffer */
      s64 name_length;        /* size of name buffer */
      cfe_xptr_t val_ptr;           /* value string buffer */
      s64 val_length;         /* size of value string buffer */
};

struct xiocb_cpuctl {
      u64 cpu_number;         /* cpu number to control */
      u64 cpu_command;  /* command to issue to CPU */
      u64 start_addr;         /* CPU start address */
      u64 gp_val;       /* starting GP value */
      u64 sp_val;       /* starting SP value */
      u64 a1_val;       /* starting A1 value */
};

struct xiocb_time {
      s64 ticks;        /* current time in ticks */
};

struct xiocb_exitstat{
      s64 status;
};

struct xiocb_meminfo {
      s64 mi_idx;       /* 0-based enumeration index */
      s64 mi_type;            /* type of memory block */
      u64 mi_addr;            /* physical start address */
      u64 mi_size;            /* block size */
};

struct xiocb_fwinfo {
      s64 fwi_version;        /* major, minor, eco version */
      s64 fwi_totalmem; /* total installed mem */
      s64 fwi_flags;          /* various flags */
      s64 fwi_boardid;        /* board ID */
      s64 fwi_bootarea_va;    /* VA of boot area */
      s64 fwi_bootarea_pa;    /* PA of boot area */
      s64 fwi_bootarea_size;  /* size of boot area */
      s64 fwi_reserved1;
      s64 fwi_reserved2;
      s64 fwi_reserved3;
};

struct cfe_xiocb {
      u64 xiocb_fcode;  /* IOCB function code */
      s64 xiocb_status; /* return status */
      s64 xiocb_handle; /* file/device handle */
      u64 xiocb_flags;  /* flags for this IOCB */
      u64 xiocb_psize;  /* size of parameter list */
      union {
            /* buffer parameters */
            struct xiocb_buffer xiocb_buffer;

            /* input status parameters */
            struct xiocb_inpstat xiocb_inpstat;

            /* environment function parameters */
            struct xiocb_envbuf xiocb_envbuf;

            /* CPU control parameters */
            struct xiocb_cpuctl xiocb_cpuctl;

            /* timer parameters */
            struct xiocb_time xiocb_time;

            /* memory arena info parameters */
            struct xiocb_meminfo xiocb_meminfo;

            /* firmware information */
            struct xiocb_fwinfo xiocb_fwinfo;

            /* Exit Status */
            struct xiocb_exitstat xiocb_exitstat;
      } plist;
};

#endif /* CFE_API_INT_H */

Generated by  Doxygen 1.6.0   Back to index