diff options
| author | John "Lameguy" Wilbert Villamor <lameguy64@gmail.com> | 2021-10-15 09:22:45 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-15 09:22:45 +0800 |
| commit | dd0f088aaa4c6bf013643be2d1d8621dbffdb000 (patch) | |
| tree | d848d6ce007d8bb9357c8b99d6a0a39ec41d244e /libpsn00b/lzp | |
| parent | 9e08d1047fa8deeb3ccb3ce9bb11d69e25a52d56 (diff) | |
| parent | eb719a424e6a16fb64209139a32c9f8a7235a929 (diff) | |
| download | psn00bsdk-dd0f088aaa4c6bf013643be2d1d8621dbffdb000.tar.gz | |
Merge pull request #38 from spicyjpeg/cmake
Full CMake support (in place of makefiles)
Diffstat (limited to 'libpsn00b/lzp')
| -rw-r--r-- | libpsn00b/lzp/bit.c | 2 | ||||
| -rw-r--r-- | libpsn00b/lzp/bit.h | 2 | ||||
| -rw-r--r-- | libpsn00b/lzp/compress.c | 10 | ||||
| -rw-r--r-- | libpsn00b/lzp/crc.c | 12 | ||||
| -rw-r--r-- | libpsn00b/lzp/lzp.c | 32 | ||||
| -rw-r--r-- | libpsn00b/lzp/lzp.h | 18 | ||||
| -rw-r--r-- | libpsn00b/lzp/lzqlp.h | 23 | ||||
| -rw-r--r-- | libpsn00b/lzp/makefile | 59 | ||||
| -rw-r--r-- | libpsn00b/lzp/qlp.c | 24 |
9 files changed, 64 insertions, 118 deletions
diff --git a/libpsn00b/lzp/bit.c b/libpsn00b/lzp/bit.c index aefa45d..9678357 100644 --- a/libpsn00b/lzp/bit.c +++ b/libpsn00b/lzp/bit.c @@ -3,7 +3,7 @@ // Bit I/O // -unsigned char* inPtr = 0; +const unsigned char* inPtr = 0; int inBytes = 0; unsigned char* outPtr = 0; int outBytes = 0; diff --git a/libpsn00b/lzp/bit.h b/libpsn00b/lzp/bit.h index ff71025..321160a 100644 --- a/libpsn00b/lzp/bit.h +++ b/libpsn00b/lzp/bit.h @@ -1,7 +1,7 @@ #ifndef _LZP_BIT_H #define _LZP_BIT_H -extern unsigned char* inPtr; +extern const unsigned char* inPtr; extern int inBytes; extern unsigned char* outPtr; extern int outBytes; diff --git a/libpsn00b/lzp/compress.c b/libpsn00b/lzp/compress.c index 5f2b78c..5969dd6 100644 --- a/libpsn00b/lzp/compress.c +++ b/libpsn00b/lzp/compress.c @@ -107,7 +107,7 @@ int get_penalty(int a, int b) { } -int lzCompress(void* outBuff, void* inBuff, int inSize, int level) { +int lzCompress(void* outBuff, const void* inBuff, int inSize, int level) { #if LZP_USE_MALLOC == FALSE int head[HASH1_SIZE+HASH2_SIZE]; @@ -347,7 +347,7 @@ void lzResetHashSizes() { #endif // LZP_NO_COMPRESS -int lzDecompress(void* outBuff, void* inBuff, int inSize) { +int lzDecompress(void* outBuff, const void* inBuff, int inSize) { int p=0; int len; @@ -355,7 +355,7 @@ int lzDecompress(void* outBuff, void* inBuff, int inSize) { int s; int windowSize; - inPtr = (unsigned char*)inBuff; + inPtr = (const unsigned char*)inBuff; outPtr = (unsigned char*)outBuff; inBytes = 0; outBytes = 0; @@ -408,7 +408,7 @@ int lzDecompress(void* outBuff, void* inBuff, int inSize) { } -int lzDecompressLen(void* outBuff, int outSize, void* inBuff, int inSize) { +int lzDecompressLen(void* outBuff, int outSize, const void* inBuff, int inSize) { int p=0; int len; @@ -416,7 +416,7 @@ int lzDecompressLen(void* outBuff, int outSize, void* inBuff, int inSize) { int s; int windowSize; - inPtr = (unsigned char*)inBuff; + inPtr = (const unsigned char*)inBuff; outPtr = (unsigned char*)outBuff; inBytes = 0; outBytes = 0; diff --git a/libpsn00b/lzp/crc.c b/libpsn00b/lzp/crc.c index c5ab702..3c1ae57 100644 --- a/libpsn00b/lzp/crc.c +++ b/libpsn00b/lzp/crc.c @@ -49,7 +49,7 @@ void initTable32(unsigned int* table) { } -unsigned short lzCRC16(void* buff, int bytes, unsigned short crc) { +unsigned short lzCRC16(const void* buff, int bytes, unsigned short crc) { int i; unsigned short tmp, short_c; @@ -59,7 +59,7 @@ unsigned short lzCRC16(void* buff, int bytes, unsigned short crc) { for(i=0; i<bytes; i++) { - short_c = 0x00ff & (unsigned short)((unsigned char*)buff)[i]; + short_c = 0x00ff & (unsigned short)((const unsigned char*)buff)[i]; tmp = crc ^ short_c; crc = (crc >> 8) ^ crcTable[tmp&0xff]; @@ -70,12 +70,12 @@ unsigned short lzCRC16(void* buff, int bytes, unsigned short crc) { } -unsigned int lzCRC32(void* buff, int bytes, unsigned int crc) { +unsigned int lzCRC32(const void* buff, int bytes, unsigned int crc) { int i; - unsigned char* byteBuff = (unsigned char*)buff; - unsigned int byte; - unsigned int crcTable[256]; + const unsigned char* byteBuff = (const unsigned char*)buff; + unsigned int byte; + unsigned int crcTable[256]; initTable32(crcTable); diff --git a/libpsn00b/lzp/lzp.c b/libpsn00b/lzp/lzp.c index 1f4fea4..9f2da48 100644 --- a/libpsn00b/lzp/lzp.c +++ b/libpsn00b/lzp/lzp.c @@ -17,7 +17,7 @@ static char* lcase(char* text) { } -int lzpSearchFile(const char* fileName, void* lzpack) { +int lzpSearchFile(const char* fileName, const LZP_HEAD* lzpack) { int i; char searchName[16]; @@ -27,8 +27,8 @@ int lzpSearchFile(const char* fileName, void* lzpack) { strcpy(searchName, fileName); lcase(searchName); - fileEntry = (LZP_FILE*)(lzpack+4); - for(i=0; i<((LZP_HEAD*)lzpack)->numFiles; i++) { + fileEntry = (LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)); + for(i=0; i<(lzpack->numFiles); i++) { strcpy(compareName, fileEntry[i].fileName); lcase(compareName); @@ -42,44 +42,44 @@ int lzpSearchFile(const char* fileName, void* lzpack) { } -LZP_FILE* lzpFileEntry(void* lzpack, int fileNum) { +const LZP_FILE* lzpFileEntry(const LZP_HEAD* lzpack, int fileNum) { - if (strncmp("LZP", ((LZP_HEAD*)lzpack)->id, 3) != 0) + if (strncmp("LZP", lzpack->id, 3) != 0) return(NULL); - if ((fileNum < 0) || (fileNum > (((LZP_HEAD*)lzpack)->numFiles-1))) + if ((fileNum < 0) || (fileNum > (lzpack->numFiles-1))) return(NULL); - return(&((LZP_FILE*)(lzpack+4))[fileNum]); + return &((LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)))[fileNum]; } -int lzpFileSize(void* lzpack, int fileNum) { +int lzpFileSize(const LZP_HEAD* lzpack, int fileNum) { - if (strncmp("LZP", ((LZP_HEAD*)lzpack)->id, 3) != 0) + if (strncmp("LZP", lzpack->id, 3) != 0) return 0; - if ((fileNum < 0) || (fileNum > (((LZP_HEAD*)lzpack)->numFiles-1))) + if ((fileNum < 0) || (fileNum > (lzpack->numFiles-1))) return 0; - return ((LZP_FILE*)(lzpack+4))[fileNum].fileSize; + return ((LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)))[fileNum].fileSize; } -int lzpUnpackFile(void* buff, void* lzpack, int fileNum) { +int lzpUnpackFile(void* buff, const LZP_HEAD* lzpack, int fileNum) { - LZP_FILE* fileEntry = &((LZP_FILE*)(lzpack+4))[fileNum]; + LZP_FILE* fileEntry = &((LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)))[fileNum]; int unpackedSize; // Check ID header - if (strncmp("LZP", ((LZP_HEAD*)lzpack)->id, 3) != 0) + if (strncmp("LZP", lzpack->id, 3) != 0) return(LZP_ERR_INVALID_PACK); // Do a CRC16 check of the compressed data's integrity - if (lzCRC32(lzpack+fileEntry->offset, fileEntry->packedSize, LZP_CRC32_REMAINDER) != fileEntry->crc) + if (lzCRC32(((const char*)lzpack)+fileEntry->offset, fileEntry->packedSize, LZP_CRC32_REMAINDER) != fileEntry->crc) return(LZP_ERR_CRC_MISMATCH); // Decompress data to the specified address - unpackedSize = lzDecompress(buff, lzpack+fileEntry->offset, fileEntry->packedSize); + unpackedSize = lzDecompress(buff, ((const char*)lzpack)+fileEntry->offset, fileEntry->packedSize); if (unpackedSize < 0) return(unpackedSize); diff --git a/libpsn00b/lzp/lzp.h b/libpsn00b/lzp/lzp.h index ffd7933..cfeeb72 100644 --- a/libpsn00b/lzp/lzp.h +++ b/libpsn00b/lzp/lzp.h @@ -111,7 +111,7 @@ extern "C" { * * \returns The size of the compressed data in bytes. */ -int lzCompress(void* outBuff, void* inBuff, int inSize, int level); +int lzCompress(void* outBuff, const void* inBuff, int inSize, int level); /*! Decompress a compressed block of data. * @@ -130,9 +130,9 @@ int lzCompress(void* outBuff, void* inBuff, int inSize, int level); * \returns Size of decompressed data in bytes or LZP_ERR_DECOMPRESS if a * decompression error occurred. */ -int lzDecompress(void* outBuff, void* inBuff, int inSize); +int lzDecompress(void* outBuff, const void* inBuff, int inSize); -int lzDecompressLen(void* outBuff, int outSize, void* inBuff, int inSize); +int lzDecompressLen(void* outBuff, int outSize, const void* inBuff, int inSize); /*! Sets the sizes of hash tables for data compression. * @@ -162,7 +162,7 @@ void lzResetHashSizes(); * * \returns CRC16 hash of specified buffer. */ -unsigned short lzCRC16(void* buff, int bytes, unsigned short crc); +unsigned short lzCRC16(const void* buff, int bytes, unsigned short crc); /*! Calculates a CRC32 hash of the specified buffer. * @@ -172,7 +172,7 @@ unsigned short lzCRC16(void* buff, int bytes, unsigned short crc); * * \returns CRC32 hash of specified buffer. */ -unsigned int lzCRC32(void* buff, int bytes, unsigned int crc); +unsigned int lzCRC32(const void* buff, int bytes, unsigned int crc); /*! @} */ @@ -189,9 +189,9 @@ unsigned int lzCRC32(void* buff, int bytes, unsigned int crc); * * \returns File index of found file or one of \ref libraryErrorCodes if an error occurred. */ -int lzpSearchFile(const char* fileName, void* lzpack); +int lzpSearchFile(const char* fileName, const LZP_HEAD* lzpack); -int lzpFileSize(void* lzpack, int fileNum); +int lzpFileSize(const LZP_HEAD* lzpack, int fileNum); /*! Get a pointer to a file entry inside of an LZP archive. * @@ -200,7 +200,7 @@ int lzpFileSize(void* lzpack, int fileNum); * * \returns A pointer to an LZP_FILE struct or NULL if an error occurred. */ -LZP_FILE* lzpFileEntry(void* lzpack, int fileNum); +const LZP_FILE* lzpFileEntry(const LZP_HEAD* lzpack, int fileNum); /*! Unpacks a file from an LZP archive to the specified memory buffer. * @@ -210,7 +210,7 @@ LZP_FILE* lzpFileEntry(void* lzpack, int fileNum); * * \returns Size of decompressed file in bytes or one of \ref libraryErrorCodes if an error occurred. */ -int lzpUnpackFile(void* buff, void* lzpack, int fileNum); +int lzpUnpackFile(void* buff, const LZP_HEAD* lzpack, int fileNum); /*! @} */ diff --git a/libpsn00b/lzp/lzqlp.h b/libpsn00b/lzp/lzqlp.h index fae6438..5b70b40 100644 --- a/libpsn00b/lzp/lzqlp.h +++ b/libpsn00b/lzp/lzqlp.h @@ -1,6 +1,11 @@ #ifndef _QLP_H #define _QLP_H +#include <sys/types.h> +#ifdef _WIN32 +#include <windows.h> +#endif + #define PACK_ERR_NONE 0 #define PACK_ERR_INVALID -1 #define PACK_ERR_NOTFOUND -2 @@ -8,19 +13,19 @@ #define PACK_ERR_READ_FAULT -4 typedef struct { - char id[3]; - unsigned char numfiles; + char id[3]; + u_char numfiles; } QLP_HEAD; typedef struct { - char name[16]; - unsigned int size; - unsigned int offs; + char name[16]; + u_int size; + u_int offs; } QLP_FILE; -int qlpFileCount(void* qlpfile); -QLP_FILE* qlpFileEntry(int index, void* qlpfile); -void* qlpFileAddr(int index, void* qlpfile); -int qlpFindFile(char* fileName, void* qlpfile); +int qlpFileCount(const QLP_HEAD* qlpfile); +const QLP_FILE* qlpFileEntry(int index, const QLP_HEAD* qlpfile); +const void* qlpFileAddr(int index, const QLP_HEAD* qlpfile); +int qlpFindFile(char* fileName, const QLP_HEAD* qlpfile); #endif // _QLP_H
\ No newline at end of file diff --git a/libpsn00b/lzp/makefile b/libpsn00b/lzp/makefile deleted file mode 100644 index 02654ed..0000000 --- a/libpsn00b/lzp/makefile +++ /dev/null @@ -1,59 +0,0 @@ -# PSn00bSDK library makefile -# Part of the PSn00bSDK Project -# 2019 - 2021 Lameguy64 / Meido-Tek Productions - -## Settings - -PSN00BSDK_LIBS ?= .. - -include ../../psn00bsdk-setup.mk - -# Project target name -TARGET = liblzp.a - -## Files - -# Searches for C, C++ and S (assembler) files in local directory -CFILES = $(notdir $(wildcard *.c)) -CXXFILES= $(notdir $(wildcard *.cxx)) -AFILES = $(notdir $(wildcard *.s)) - -# Create names for object files -OFILES = $(addprefix build/,$(CFILES:.c=.o)) \ - $(addprefix build/,$(CXXFILES:.cxx=.o)) \ - $(addprefix build/,$(AFILES:.s=.o)) - -# Project specific includes and libraries -# (use -I for include dirs, -L for library dirs, -l for static libraries) -INCLUDE += -LIBDIRS += -LIBS += - -## Build rules - -all: build/$(TARGET) - -build/$(TARGET): $(OFILES) - @mkdir -p $(dir $@) - $(AR) crs $@ $(OFILES) - -build/%.o: %.c - @mkdir -p $(dir $@) - $(CC) $(CFLAGS_LIB) $(INCLUDE) -c $< -o $@ - -build/%.o: %.cxx - @mkdir -p $(dir $@) - $(CXX) $(CPPFLAGS_LIB) $(INCLUDE) -c $< -o $@ - -build/%.o: %.s - @mkdir -p $(dir $@) - $(CC) $(AFLAGS_LIB) $(INCLUDE) -c $< -o $@ - -install: -ifneq ($(PSN00BSDK_LIBS), "..") - @mkdir -p $(PSN00BSDK_LIBS) -endif - cp build/$(TARGET) $(PSN00BSDK_LIBS)/$(TARGET) - -clean: - rm -rf build diff --git a/libpsn00b/lzp/qlp.c b/libpsn00b/lzp/qlp.c index 3be8356..e54f99f 100644 --- a/libpsn00b/lzp/qlp.c +++ b/libpsn00b/lzp/qlp.c @@ -14,34 +14,34 @@ static char* lcase(char* str) { } -int qlpFileCount(void* qlpfile) { +int qlpFileCount(const QLP_HEAD* qlpfile) { - if (strncmp(((QLP_HEAD*)qlpfile)->id, "QLP", 3) != 0) + if (strncmp(qlpfile->id, "QLP", 3) != 0) return(PACK_ERR_INVALID); - return(((QLP_HEAD*)qlpfile)->numfiles); + return(qlpfile->numfiles); } -QLP_FILE* qlpFileEntry(int index, void* qlpfile) { +const QLP_FILE* qlpFileEntry(int index, const QLP_HEAD* qlpfile) { - if (strncmp(((QLP_HEAD*)qlpfile)->id, "QLP", 3) != 0) + if (strncmp(qlpfile->id, "QLP", 3) != 0) return(NULL); - if (index > ((QLP_HEAD*)qlpfile)->numfiles) + if (index > qlpfile->numfiles) return(NULL); - return(&((QLP_FILE*)(qlpfile+4))[index]); + return(&((QLP_FILE*)(((const char*)qlpfile)+sizeof(QLP_HEAD)))[index]); } -void* qlpFileAddr(int index, void* qlpfile) { +const void* qlpFileAddr(int index, const QLP_HEAD* qlpfile) { - return( qlpfile+((QLP_FILE*)(qlpfile+4))[index].offs ); + return( ((const char*)qlpfile)+((QLP_FILE*)(((const char*)qlpfile)+sizeof(QLP_HEAD)))[index].offs ); } -int qlpFindFile(char* fileName, void* qlpfile) { +int qlpFindFile(char* fileName, const QLP_HEAD* qlpfile) { int i; char nameBuff[2][16]; @@ -49,9 +49,9 @@ int qlpFindFile(char* fileName, void* qlpfile) { strcpy(nameBuff[0], fileName); lcase(nameBuff[0]); - for(i=0; i<((QLP_HEAD*)qlpfile)->numfiles; i++) { + for(i=0; i<(qlpfile->numfiles); i++) { - strcpy(nameBuff[1], ((QLP_FILE*)(qlpfile+4))[i].name); + strcpy(nameBuff[1], ((QLP_FILE*)(((const char*)qlpfile)+sizeof(QLP_HEAD)))[i].name); lcase(nameBuff[1]); if (strcmp(nameBuff[0], nameBuff[1]) == 0) |
