nkeynes@477: /** nkeynes@586: * $Id$ nkeynes@477: * nkeynes@477: * Common type definitions and forward declarations nkeynes@477: * nkeynes@477: * Copyright (c) 2005 Nathan Keynes. nkeynes@477: * nkeynes@477: * This program is free software; you can redistribute it and/or modify nkeynes@477: * it under the terms of the GNU General Public License as published by nkeynes@477: * the Free Software Foundation; either version 2 of the License, or nkeynes@477: * (at your option) any later version. nkeynes@477: * nkeynes@477: * This program is distributed in the hope that it will be useful, nkeynes@477: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@477: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@477: * GNU General Public License for more details. nkeynes@477: */ nkeynes@477: nkeynes@736: #ifndef lxdream_lxdream_H nkeynes@736: #define lxdream_lxdream_H 1 nkeynes@477: nkeynes@477: #include nkeynes@477: #include nkeynes@477: nkeynes@507: #include "../config.h" nkeynes@507: nkeynes@477: #ifdef __cplusplus nkeynes@477: extern "C" { nkeynes@477: #endif nkeynes@477: nkeynes@738: #define APP_NAME PACKAGE nkeynes@738: extern const char lxdream_package_name[]; nkeynes@738: extern const char lxdream_short_version[]; nkeynes@738: extern const char lxdream_full_version[]; nkeynes@738: extern const char lxdream_copyright[]; nkeynes@738: nkeynes@477: nkeynes@477: #define MB *1024*1024 nkeynes@477: #define KB *1024 nkeynes@477: nkeynes@477: #ifndef max nkeynes@477: #define max(a,b) ( (a) > (b) ? (a) : (b) ) nkeynes@477: #endif nkeynes@477: nkeynes@502: /** nkeynes@586: * A 29-bit address in SH4 external address space nkeynes@502: */ nkeynes@477: typedef uint32_t sh4addr_t; nkeynes@586: nkeynes@586: /** nkeynes@586: * A 32-bit address in SH4 virtual address space. nkeynes@586: */ nkeynes@586: typedef uint32_t sh4vma_t; nkeynes@586: nkeynes@502: /** nkeynes@502: * A direct pointer into SH4 memory nkeynes@502: */ nkeynes@502: typedef unsigned char *sh4ptr_t; nkeynes@477: nkeynes@477: /******************* Forward type declarations ******************/ nkeynes@477: nkeynes@477: typedef struct render_buffer *render_buffer_t; nkeynes@477: typedef struct frame_buffer *frame_buffer_t; nkeynes@477: nkeynes@477: /*************************** Logging ****************************/ nkeynes@477: nkeynes@477: #define EMIT_FATAL 0 nkeynes@477: #define EMIT_ERR 1 nkeynes@477: #define EMIT_WARN 2 nkeynes@477: #define EMIT_INFO 3 nkeynes@477: #define EMIT_DEBUG 4 nkeynes@477: #define EMIT_TRACE 5 nkeynes@477: nkeynes@477: #ifdef MODULE nkeynes@477: #define MODULE_NAME MODULE.name nkeynes@477: #else nkeynes@477: #define MODULE_NAME "*****" nkeynes@477: #endif nkeynes@477: nkeynes@586: gboolean set_global_log_level( const gchar *level ); nkeynes@477: void log_message( void *, int level, const char *source, const char *msg, ... ); nkeynes@477: nkeynes@477: #define FATAL( ... ) log_message( NULL, EMIT_FATAL, MODULE_NAME, __VA_ARGS__ ) nkeynes@477: #define ERROR( ... ) log_message( NULL, EMIT_ERR, MODULE_NAME, __VA_ARGS__ ) nkeynes@477: #define WARN( ... ) log_message( NULL, EMIT_WARN, MODULE_NAME, __VA_ARGS__ ) nkeynes@477: #define INFO( ... ) log_message( NULL, EMIT_INFO, MODULE_NAME, __VA_ARGS__ ) nkeynes@477: #define DEBUG( ... ) log_message( NULL, EMIT_DEBUG, MODULE_NAME, __VA_ARGS__ ) nkeynes@477: #define TRACE( ... ) log_message( NULL, EMIT_TRACE, MODULE_NAME, __VA_ARGS__ ) nkeynes@477: nkeynes@477: nkeynes@905: #ifdef HAVE_FASTCALL nkeynes@939: #define FASTCALL __attribute__((regparm(2))) nkeynes@905: #else nkeynes@905: #define FASTCALL nkeynes@905: #endif nkeynes@905: nkeynes@477: #ifdef __cplusplus nkeynes@477: } nkeynes@477: #endif nkeynes@477: nkeynes@736: #endif /* !lxdream_lxdream_H */