⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sos_types.h

📁 嵌入式操作系统内核
💻 H
字号:
/* -*- Mode: C; tab-width:4 -*- *//* ex: set ts=4: *//* * Copyright (c) 2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above *    copyright notice, this list of conditions and the following *    disclaimer in the documentation and/or other materials provided *    with the distribution. * 3. All advertising materials mentioning features or use of this *    software must display the following acknowledgement: *       This product includes software developed by Networked & *       Embedded Systems Lab at UCLA * 4. Neither the name of the University nor that of the Laboratory *    may be used to endorse or promote products derived from this *    software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *//** * @brief Common types used in SOS * @author Simon Han (simonhan@ee.ucla.edu) *  */#ifndef _SOS_TYPES_H#define _SOS_TYPES_H#if !defined(_SOS_SERVER_APP_) && !defined(_SOS_SERVER_CLIENT_)#include <hardware_types.h>#endif#include <sos_endian.h>#include <sos_inttypes.h>#ifdef FALSE // if FALSE is defined, undefine it, for the enum below#undef FALSE#endif#ifdef TRUE  // if TRUE is defined, undefine it, for the enum below#undef TRUE#endifenum {  FALSE = 0,  TRUE = 1,};// boolean type#ifndef booltypedef enum { false=0, true=1, } bool;#endif// NULL pointer type#ifndef NULL#define NULL 0#endif#ifndef null#define null 0#endif/** * @brief handler return type */enum   {	SOS_SPLIT = 1,    /* the operation will be handled in split phase */	SOS_OK    = 0,    /* general OK for most ker_ system calls */  };/** * @brief SOS booting conditions */enum{  SOS_BOOT_NORMAL =   0,      // normal reboot  SOS_BOOT_CRASHED =  1,      // system was crashed  SOS_BOOT_WDOGED  =  3,      // system was having watchdog timeout};/** * @brief error number * all fail will be in the form of error number * NOTE: the errno cannot be greater than 127 * Simon: I have disabled the ones that are never used... */#ifndef EPERM#define	EPERM		 1	/* Operation not permitted */#define	ENOENT       2  /* No such file or directory */#define	ESRCH		 3  /* No such process */#define	EIO			 5   /* I/O error */#define	ENXIO	     6   /* No such device or address */#define	EAGAIN		11	/* Try again */#define	ENOMEM		12	/* Out of memory */#define	EFAULT		14	/* Bad address */#define	EBUSY		16	/* Device or resource busy */#define	EEXIST		17	/* File exists */#define	EINVAL		22	/* Invalid argument */#define	ENOSYS		38	/* Function not implemented */#define	EOVERFLOW	75	/* Value too large for defined data type */#define ENOPROGMEM 125  /* no more program space for module */#endif#if 0#define	EINTR	 4   /* Interrupted system call */#define	E2BIG	 7   /* Arg list too long */#define	ENOEXEC  8   /* Exec format error */#define	EBADF	 9   /* Bad file number */#define	ECHILD		10	/*  No child processes */#define	EACCES		13	/* Permission denied */#define	ENOTBLK		15	/*  Block device required */#define	EXDEV		18	/* Cross-device link */#define	ENODEV		19	/* No such device */#define	ENOTDIR		20	/*  Not a directory */#define	EISDIR		21	/*  Is a directory */#define	ENFILE		23	/* File table overflow */#define	EMFILE		24	/*  Too many open files */#define	ENOTTY		25	/*  Not a typewriter */#define	ETXTBSY		26	/*  Text file busy */#define	EFBIG		27	/*  File too large */#define	ENOSPC		28	/* No space left on device */#define	ESPIPE		29	/* Illegal seek */#define	EROFS		30	/* Read-only file system */#define	EMLINK		31	/*  Too many links */#define	EPIPE		32	/* Broken pipe */#define	EDOM		33	/* Math argument out of domain of func */#define	ERANGE		34	/* Math result not representable */#define	EDEADLK		35	/* Resource deadlock would occur */#define	ENAMETOOLONG	36	/* File name too long */#define	ENOLCK		37	/* No record locks available */#define	ENOTEMPTY	39	/* Directory not empty */#define	ELOOP		40	/* Too many symbolic links encountered */#define	EWOULDBLOCK	EAGAIN	/* Operation would block */#define	ENOMSG		42	/* No message of desired type */#define	EIDRM		43	/* Identifier removed */#define	ECHRNG		44	/* Channel number out of range */#define	EL2NSYNC	45	/* Level 2 not synchronized */#define	EL3HLT		46	/* Level 3 halted */#define	EL3RST		47	/* Level 3 reset */#define	ELNRNG		48	/* Link number out of range */#define	EUNATCH		49	/* Protocol driver not attached */#define	ENOCSI		50	/* No CSI structure available */#define	EL2HLT		51	/* Level 2 halted */#define	EBADE		52	/* Invalid exchange */#define	EBADR		53	/* Invalid request descriptor */#define	EXFULL		54	/* Exchange full */#define	ENOANO		55	/* No anode */#define	EBADRQC		56	/* Invalid request code */#define	EBADSLT		57	/* Invalid slot */#define	EDEADLOCK	EDEADLK#define	EBFONT		59	/* Bad font file format */#define	ENOSTR		60	/* Device not a stream */#define	ENODATA		61	/* No data available */#define	ETIME		62	/* Timer expired */#define	ENOSR		63	/* Out of streams resources */#define	ENONET		64	/* Machine is not on the network */#define	ENOPKG		65	/* Package not installed */#define	EREMOTE		66	/* Object is remote */#define	ENOLINK		67	/* Link has been severed */#define	EADV		68	/* Advertise error */#define	ESRMNT		69	/* Srmount error */#define	ECOMM		70	/* Communication error on send */#define	EPROTO		71	/* Protocol error */#define	EMULTIHOP	72	/* Multihop attempted */#define	EDOTDOT		73	/* RFS specific error */#define	EBADMSG		74	/* Not a data message */#define	ENOTUNIQ	76	/* Name not unique on network */#define	EBADFD		77	/* File descriptor in bad state */#define	EREMCHG		78	/* Remote address changed */#define	ELIBACC		79	/* Can not access a needed shared library */#define	ELIBBAD		80	/* Accessing a corrupted shared library */#define	ELIBSCN		81	/* .lib section in a.out corrupted */#define	ELIBMAX		82	/* Attempting to link in too many shared libraries */#define	ELIBEXEC	83	/* Cannot exec a shared library directly */#define	EILSEQ		84	/* Illegal byte sequence */#define	ERESTART	85	/* Interrupted system call should be restarted */#define	ESTRPIPE	86	/* Streams pipe error */#define	EUSERS		87	/* Too many users */#define	ENOTSOCK	88	/* Socket operation on non-socket */#define	EDESTADDRREQ	89	/* Destination address required */#define	EMSGSIZE	90	/* Message too long */#define	EPROTOTYPE	91	/* Protocol wrong type for socket */#define	ENOPROTOOPT	92	/* Protocol not available */#define	EPROTONOSUPPORT	93	/* Protocol not supported */#define	ESOCKTNOSUPPORT	94	/* Socket type not supported */#define	EOPNOTSUPP	95	/* Operation not supported on transport endpoint */#define	EPFNOSUPPORT	96	/* Protocol family not supported */#define	EAFNOSUPPORT	97	/* Address family not supported by protocol */#define	EADDRINUSE	98	/* Address already in use */#define	EADDRNOTAVAIL	99	/* Cannot assign requested address */#define	ENETDOWN	100	/* Network is down */#define	ENETUNREACH	101	/* Network is unreachable */#define	ENETRESET	102	/* Network dropped connection because of reset */#define	ECONNABORTED	103	/* Software caused connection abort */#define	ECONNRESET	104	/* Connection reset by peer */#define	ENOBUFS		105	/* No buffer space available */#define	EISCONN		106	/* Transport endpoint is already connected */#define	ENOTCONN	107	/* Transport endpoint is not connected */#define	ESHUTDOWN	108	/* Cannot send after transport endpoint shutdown */#define	ETOOMANYREFS	109	/* Too many references: cannot splice */#define	ETIMEDOUT	110	/* Connection timed out */#define	ECONNREFUSED	111	/* Connection refused */#define	EHOSTDOWN	112	/* Host is down */#define	EHOSTUNREACH	113	/* No route to host */#define	EALREADY	114	/* Operation already in progress */#define	EINPROGRESS	115	/* Operation now in progress */#define	ESTALE		116	/* Stale NFS file handle */#define	EUCLEAN		117	/* Structure needs cleaning */#define	ENOTNAM		118	/* Not a XENIX named type file */#define	ENAVAIL		119	/* No XENIX semaphores available */#define	EISNAM		120	/* Is a named type file */#define	EREMOTEIO	121	/* Remote I/O error */#define	EDQUOT		122	/* Quota exceeded */#define	ENOMEDIUM	123	/* No medium found */#define	EMEDIUMTYPE	124	/* Wrong medium type */#endif//0 #endif//_SOS_TYPES_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -