| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * 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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Constants. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #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 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Structures. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | /* eeek, signed "pointers" */ | 
					
						
							|  |  |  | typedef s64 cfe_xptr_t; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | struct xiocb_buffer { | 
					
						
							|  |  |  | 	u64 buf_offset;		/* offset on device (bytes) */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	cfe_xptr_t  buf_ptr;		/* pointer to a buffer */ | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | 	u64 buf_length;		/* length of this buffer */ | 
					
						
							|  |  |  | 	u64 buf_retlen;		/* returned length (for read ops) */ | 
					
						
							|  |  |  | 	u64 buf_ioctlcmd;	/* IOCTL command (used only for IOCTLs) */ | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | struct xiocb_inpstat { | 
					
						
							|  |  |  | 	u64 inp_status;		/* 1 means input available */ | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | struct xiocb_envbuf { | 
					
						
							|  |  |  | 	s64 enum_idx;		/* 0-based enumeration index */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	cfe_xptr_t name_ptr;		/* name string buffer */ | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | 	s64 name_length;		/* size of name buffer */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	cfe_xptr_t val_ptr;		/* value string buffer */ | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | 	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 */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	union { | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | 		/* 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; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	} plist; | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-29 14:23:43 +00:00
										 |  |  | #endif /* CFE_API_INT_H */
 |