Startpunkten
This commit is contained in:
236
udefs.h
Normal file
236
udefs.h
Normal file
@@ -0,0 +1,236 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* (c) Copyright 1998, University of Karlstad.
|
||||
*
|
||||
* 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* Please report any bugs you find in this code or any improvements to:
|
||||
*
|
||||
* Hans Hedbom, Dept. of Computer Science,
|
||||
* University of Karlstad, Sweden.
|
||||
*
|
||||
* Phone: +46 54 838157
|
||||
* E-mail: Hans.Hedbom@hks.se
|
||||
*
|
||||
* ============================================================================
|
||||
*
|
||||
* FILE:
|
||||
*
|
||||
* udefs.h [ the Data Communication I course programming project ]
|
||||
*
|
||||
* AUTHORS:
|
||||
*
|
||||
* Jonny Wiederholm
|
||||
* E-mail: fr7wied@cse.hks.se
|
||||
*
|
||||
* Per-Ola Gustafsson
|
||||
* E-mail: fr7gust@cse.hks.se
|
||||
*
|
||||
* CREATION DATE:
|
||||
*
|
||||
* Jan, 06, 1998
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* Includes constants used in the example implementation of the Data
|
||||
* Communication I course programming project.
|
||||
*
|
||||
* MODIFICATIONS: Date Changes
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _UDEFS_H /* Avoid multiple copies of this file. */
|
||||
#define _UDEFS_H
|
||||
|
||||
#ifdef __cplusplus /* Make this file possible to use in C++ code. */
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* INCLUDE FILES
|
||||
*/
|
||||
|
||||
#include "systems.h"
|
||||
|
||||
/******************************************************************************
|
||||
* DEFINE CONSTANTS
|
||||
*/
|
||||
|
||||
/* Null pointer value. */
|
||||
#ifndef NULL /* Avoid type redeclaration. */
|
||||
#if !defined( __cplusplus) && !defined (sun)
|
||||
|
||||
#define NULL ((void *) 0)
|
||||
|
||||
#else /* !defined( __cplusplus) && !defined (sun) */
|
||||
|
||||
#define NULL 0 /* C++ definition of NULL. */
|
||||
|
||||
#endif /* ifndef __cplusplus */
|
||||
#endif /* ifndef NULL */
|
||||
|
||||
/* Normal exit value. */
|
||||
#define NORMAL_EXIT 1
|
||||
|
||||
/* Non normal exit value. */
|
||||
#define NON_NORMAL_EXIT -1
|
||||
|
||||
/* End of string. */
|
||||
#define EOS '\0'
|
||||
|
||||
/* Value returned on the occurence of a system failure. */
|
||||
#ifndef SYSTEM_FAILURE /* Avoid type redeclaration. */
|
||||
#define SYSTEM_FAILURE (-1)
|
||||
#endif
|
||||
|
||||
/* Value returned on a successful operation. */
|
||||
#ifndef SUCCESS /* Avoid type redeclaration. */
|
||||
#define SUCCESS 0
|
||||
#endif
|
||||
|
||||
/* Allow ANSI C keywords if ANSI C or C++. */
|
||||
#if defined (__STDC__) || defined (__cplusplus)
|
||||
|
||||
#define const__ const
|
||||
#define volatile__ volatile
|
||||
/* Pointer to void is defined as pointer to char on non ANSI C systems. */
|
||||
#define void_ptr_ void *
|
||||
|
||||
#else /* defined (__STDC__) || defined (__cplusplus) */
|
||||
|
||||
#define const__ /* No ANSI C keywords. */
|
||||
#define volatile__
|
||||
#define void_ptr_ char *
|
||||
|
||||
#endif /* defined (__STDC__) || defined (__cplusplus) */
|
||||
|
||||
/******************************************************************************
|
||||
* DEFINE TYPES
|
||||
*/
|
||||
|
||||
/*
|
||||
`c_buf_ptr_' is used by functions which take a pointer to a character
|
||||
buffer as parameter and does not change the contents of the buffer.
|
||||
*/
|
||||
#ifndef C_BUF_PTR_ /* Avoid type redeclaration. */
|
||||
#define C_BUF_PTR_
|
||||
#if defined (__linux__)
|
||||
|
||||
typedef const__ char * c_buf_ptr_;
|
||||
|
||||
#else /* defined (__linux__) */
|
||||
|
||||
typedef char * c_buf_ptr_;
|
||||
|
||||
#endif /* defined (__linux__) */
|
||||
#endif
|
||||
|
||||
/*
|
||||
`buf_ptr' is used by functions which take a pointer to a character
|
||||
buffer and does change the value of the buffer.
|
||||
*/
|
||||
#ifndef BUF_PTR_ /* Avoid type redeclaration. */
|
||||
#define BUF_PTR_
|
||||
typedef char * buf_ptr_;
|
||||
#endif
|
||||
|
||||
/*
|
||||
`string_ptr_' is used by functions which take a pointer to a character
|
||||
string as parameter and does not change the contents of the string.
|
||||
*/
|
||||
#ifndef STRING_PTR_ /* Avoid type redeclaration. */
|
||||
#define STRING_PTR_
|
||||
typedef c_buf_ptr_ string_ptr_;
|
||||
#endif
|
||||
|
||||
/*
|
||||
`byte_ptr_' is used by functions which takes a pointer to a character-buffer
|
||||
which only needs to store one character, or byte.
|
||||
*/
|
||||
#ifndef BYTE_PTR_
|
||||
#define BYTE_PTR_
|
||||
typedef char * byte_ptr_;
|
||||
#endif
|
||||
|
||||
/* `size_t_' is used as a length parameter for string functions. */
|
||||
#ifndef SIZE_T_ /* Avoid type redeclaration. */
|
||||
#define SIZE_T_
|
||||
typedef unsigned int size_t_;
|
||||
#endif
|
||||
|
||||
/*
|
||||
`ssize_t_' is used by functions which return a count of bytes or an error
|
||||
indication.
|
||||
*/
|
||||
#ifndef SSIZE_T_ /* Avoid type redeclaration. */
|
||||
#define SSIZE_T_
|
||||
typedef signed int ssize_t_;
|
||||
#endif
|
||||
|
||||
/*
|
||||
`u_int_' is used by functions which take or return an unsigned int that
|
||||
is not indicating a length.
|
||||
*/
|
||||
#ifndef U_INT_ /* Avoid type redeclaration. */
|
||||
#define U_INT_
|
||||
typedef unsigned int u_int_;
|
||||
#endif
|
||||
|
||||
/*
|
||||
`ul_int_' is used by functions which take or return an unsigned long int
|
||||
that is not indicating a length.
|
||||
*/
|
||||
#ifndef UL_INT_ /* Avoid type redeclaration. */
|
||||
#define UL_INT_
|
||||
typedef unsigned long int ul_int_;
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* DEFINE MACROS
|
||||
*/
|
||||
|
||||
/* Allow function prototypes. */
|
||||
#if defined (__STDC__) || defined (__cplusplus)
|
||||
|
||||
#ifndef __P /* Avoid type redeclaration. */
|
||||
#define __P(args) args
|
||||
#endif
|
||||
|
||||
#else /* defined (__STDC__) || defined (__cplusplus) */
|
||||
|
||||
#ifndef __P /* Avoid type redeclaration. */
|
||||
#define __P(args) () /* No prototypes. */
|
||||
#endif
|
||||
|
||||
#endif /* defined (__STDC__) || defined (__cplusplus) */
|
||||
|
||||
/******************************************************************************
|
||||
* END
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _UDEFS_H */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user