cr_unpack.h revision f3f69e0e8d6a713566e129aa3ab321b1e6b07fbc
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncextern "C" {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/*extern DLLDATA(const unsigned char *) cr_unpackData;*/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncextern DECLEXPORT(const unsigned char *) cr_unpackData;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(void) crUnpackSetReturnPointer( CRNetworkPointer *ptr );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(void) crUnpackSetWritebackPointer( CRNetworkPointer *ptr );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(void) crUnpack( const void *data, const void *opcodes, unsigned int num_opcodes, SPUDispatchTable *table );
f3f69e0e8d6a713566e129aa3ab321b1e6b07fbcvboxsynctypedef enum
f3f69e0e8d6a713566e129aa3ab321b1e6b07fbcvboxsyncDECLINLINE(CR_UNPACK_BUFFER_TYPE) crUnpackGetBufferType(const void *opcodes, unsigned int num_opcodes)
f3f69e0e8d6a713566e129aa3ab321b1e6b07fbcvboxsync const uint8_t *pu8Codes = (const uint8_t *)opcodes;
f3f69e0e8d6a713566e129aa3ab321b1e6b07fbcvboxsync enmType = (first != CR_CMDBLOCKBEGIN_OPCODE) ? CR_UNPACK_BUFFER_TYPE_GENERIC : CR_UNPACK_BUFFER_TYPE_CMDBLOCK_BEGIN;
f3f69e0e8d6a713566e129aa3ab321b1e6b07fbcvboxsync /* last is CMDBLOCKEND*/
f3f69e0e8d6a713566e129aa3ab321b1e6b07fbcvboxsync return (enmType == CR_UNPACK_BUFFER_TYPE_CMDBLOCK_BEGIN) ? CR_UNPACK_BUFFER_TYPE_GENERIC : CR_UNPACK_BUFFER_TYPE_CMDBLOCK_END;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(double) crReadUnalignedDouble( const void *buffer );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* XXX make this const */
2609df5222cfcceb51ec536b2e3173b7227a232avboxsync crMemcpy( return_ptr, cr_unpackData + (offset), sizeof( *return_ptr ) ); \
2609df5222cfcceb51ec536b2e3173b7227a232avboxsync } while (0);
2609df5222cfcceb51ec536b2e3173b7227a232avboxsync crMemcpy( writeback_ptr, cr_unpackData + (offset), sizeof( *writeback_ptr ) ); \
2609df5222cfcceb51ec536b2e3173b7227a232avboxsync } while (0);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif /* CR_UNPACK_H */