1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00
upx/src/unupx.h
Markus F.X.J. Oberhumer 04c3173ef3 Rewrote the new vmlinuz/i386 format in a more object-oriented way. This
should hopefully also help adding support for filters and other
things.

committer: mfx <mfx> 976723821 +0000
2000-12-13 16:10:21 +00:00

104 lines
3.1 KiB
C

/* unupx.h --
This file is part of the UPX executable compressor.
Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2000 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
and/or modify them 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; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Markus F.X.J. Oberhumer Laszlo Molnar
markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu
*/
#ifndef __UPX_UNUPX_H
#define __UPX_UNUPX_H
/*************************************************************************
// integral and pointer types
**************************************************************************/
#ifndef upx_byte
typedef int upx_int;
typedef unsigned upx_uint;
typedef int upx_int32;
typedef unsigned upx_uint32;
#define upx_byte unsigned char
#define upx_bytep upx_byte *
#define upx_voidp void *
#define upx_uintp upx_uint *
#endif
/*************************************************************************
// calling conventions
**************************************************************************/
#ifndef __UPX_CDECL
#define __UPX_CDECL
#endif
#ifndef __UPX_ENTRY
#define __UPX_ENTRY __UPX_CDECL
#endif
#define UPX_EXTERN(x) extern "C" x __UPX_ENTRY
#define UPX_EXTERN_CDECL(x) extern "C" x __UPX_CDECL
/*************************************************************************
// constants
**************************************************************************/
/* Executable formats. Note: big endian types are >= 128 */
#define UPX_F_DOS_COM 1
#define UPX_F_DOS_SYS 2
#define UPX_F_DOS_EXE 3
#define UPX_F_DJGPP2_COFF 4
#define UPX_F_WC_LE 5
#define UPX_F_VXD_LE 6
#define UPX_F_DOS_EXEH 7 /* OBSOLETE */
#define UPX_F_TMT_ADAM 8
#define UPX_F_W32_PE 9
#define UPX_F_LINUX_i386 10
/* UNUSED */
#define UPX_F_LINUX_ELF_i386 12
#define UPX_F_LINUX_SEP_i386 13
#define UPX_F_LINUX_SH_i386 14
#define UPX_F_VMLINUZ_i386 15
#define UPX_F_BVMLINUZ_i386 16
#define UPX_F_ATARI_TOS 129
#define UPX_F_SOLARIS_SPARC 130
#define UPX_MAGIC_LE32 0x21585055 /* "UPX!" */
/*************************************************************************
// prototypes
**************************************************************************/
#endif /* already included */
/*
vi:ts=4:et
*/