diff options
-rw-r--r-- | .SRCINFO | 11 | ||||
-rw-r--r-- | 4.4-arch-block_signals.patch | 34 | ||||
-rw-r--r-- | PKGBUILD | 25 | ||||
-rwxr-xr-x | catalyst_build_module | 4 | ||||
-rw-r--r-- | gcc5-something_something_the_dark_side.patch | 421 |
5 files changed, 482 insertions, 13 deletions
@@ -1,14 +1,14 @@ pkgbase = catalyst-total-hd234k pkgdesc = AMD/ATI legacy drivers. catalyst-hook + catalyst-utils + lib32-catalyst-utils pkgver = 13.1 - pkgrel = 32.1 + pkgrel = 33.2 url = http://www.amd.com install = catalyst-total-hd234k.install arch = i686 arch = x86_64 license = custom depends = linux>=3.0 - depends = linux<4.4 + depends = linux<4.5 depends = linux-headers depends = xorg-server>=1.7.0 depends = xorg-server<1.13.0 @@ -23,7 +23,6 @@ pkgbase = catalyst-total-hd234k depends = patch depends = libxinerama depends = mesa>=10.1.0-4 - depends = gcc49 optdepends = qt4: to run ATi Catalyst Control Center (amdcccle) optdepends = libxxf86vm: to run ATi Catalyst Control Center (amdcccle) optdepends = opencl-headers: headers necessary for OpenCL development @@ -87,8 +86,10 @@ pkgbase = catalyst-total-hd234k source = 4.2-kolasa-fpu_save_init.patch source = 4.3-kolasa-seq_printf.patch source = 4.3-gentoo-mtrr.patch + source = gcc5-something_something_the_dark_side.patch + source = 4.4-arch-block_signals.patch md5sums = c07fd1332abe4c742a9a0d0e0d0a90de - md5sums = 82c4e97854c020ad147a9122805a8936 + md5sums = 3c2ff823b56d16e8220d129726b43ff1 md5sums = af7fb8ee4fc96fd54c5b483e33dc71c4 md5sums = bdafe749e046bfddee2d1c5e90eabd83 md5sums = 9d9ea496eadf7e883d56723d65e96edf @@ -119,6 +120,8 @@ pkgbase = catalyst-total-hd234k md5sums = ccfdf4784735a742c53bdc1309f49a51 md5sums = cdea2b2055df7d843b6096615e82d030 md5sums = 98828e3eeaec2b3795e584883cc1b746 + md5sums = af80a9eb2016811ab79717c2bd370a25 + md5sums = d200e156e941ec7b0227e399fd20a9c2 pkgname = catalyst-total-hd234k diff --git a/4.4-arch-block_signals.patch b/4.4-arch-block_signals.patch new file mode 100644 index 000000000000..109e771931de --- /dev/null +++ b/4.4-arch-block_signals.patch @@ -0,0 +1,34 @@ +diff -uNr 16.1/common/lib/modules/fglrx/build_mod/firegl_public.c 16.1b/common/lib/modules/fglrx/build_mod/firegl_public.c +--- 16.1/common/lib/modules/fglrx/build_mod/firegl_public.c 2013-01-15 22:33:27.000000000 +0100 ++++ 16.1b/common/lib/modules/fglrx/build_mod/firegl_public.c 2016-01-04 20:19:17.356851444 +0100 +@@ -1451,12 +1451,16 @@ + + void ATI_API_CALL KCL_SIGNAL_BlockAll(int (*notifier)(void *priv), void *pPriv, kcl_sigset_t *pSigMask) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,0) + block_all_signals(notifier,pPriv,(sigset_t*)(void *)pSigMask); ++#endif + } + + void ATI_API_CALL KCL_SIGNAL_UnblockAll(void) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,0) + unblock_all_signals(); ++#endif + } + + #if defined(__i386__) +diff -uNr 16.1/common/lib/modules/fglrx/build_mod/firegl_public.h 16.1b/common/lib/modules/fglrx/build_mod/firegl_public.h +--- 16.1/common/lib/modules/fglrx/build_mod/firegl_public.h 2013-01-15 22:33:27.000000000 +0100 ++++ 16.1b/common/lib/modules/fglrx/build_mod/firegl_public.h 2016-01-04 20:19:24.263488959 +0100 +@@ -412,8 +412,10 @@ + extern void ATI_API_CALL KCL_SIGNAL_ConfigureMask(kcl_sigset_t *pSigMask); + extern int ATI_API_CALL firegl_sig_notifier(void *priv); + extern int KCL_SIGNAL_Notifier(void *priv); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,0) + extern void ATI_API_CALL KCL_SIGNAL_BlockAll(int (*notifier)(void *priv), void *pPriv, kcl_sigset_t *pSigMask); + extern void ATI_API_CALL KCL_SIGNAL_UnblockAll(void); ++#endif + + extern unsigned long ATI_API_CALL kcl__cmpxchg(volatile void *ptr, unsigned long old, + unsigned long new, int size); @@ -17,20 +17,22 @@ # Contributor: zoopp # Contributor: solar (authatieventsd' patch s/-1/255) # Contributor: Cold (current_euid patch) -# Contributor: kolasa (3.19, 4.0 & 4.1 kernel patch) +# Contributor: ubuntu (parts of 4.0, 4.1 and 4.2 kernel patches) +# Contributor: kolasa (parts of 4.2 and 4.3 kernel patches) +# Contributor: gentoo (patch for 3.10 + part of 4.3 kernel patches) # PKGEXT='.pkg.tar.gz' # imho time to pack this pkg into tar.xz is too long, unfortunatelly yaourt got problems when ext is different from .pkg.tar.xz - V pkgname=catalyst-total-hd234k pkgver=13.1 -pkgrel=32.1 +pkgrel=33.2 pkgdesc="AMD/ATI legacy drivers. catalyst-hook + catalyst-utils + lib32-catalyst-utils" arch=('i686' 'x86_64') url="http://www.amd.com" license=('custom') options=('staticlibs' 'libtool' '!strip' '!upx') -depends=('linux>=3.0' 'linux<4.4' 'linux-headers' 'xorg-server>=1.7.0' 'xorg-server<1.13.0' 'libxrandr' 'libsm' 'fontconfig' 'libxcursor' 'libxi' 'gcc-libs' 'gcc>4.0.0' 'make' 'patch' 'libxinerama' 'mesa>=10.1.0-4' 'gcc49') +depends=('linux>=3.0' 'linux<4.5' 'linux-headers' 'xorg-server>=1.7.0' 'xorg-server<1.13.0' 'libxrandr' 'libsm' 'fontconfig' 'libxcursor' 'libxi' 'gcc-libs' 'gcc>4.0.0' 'make' 'patch' 'libxinerama' 'mesa>=10.1.0-4') optdepends=('qt4: to run ATi Catalyst Control Center (amdcccle)' 'libxxf86vm: to run ATi Catalyst Control Center (amdcccle)' 'opencl-headers: headers necessary for OpenCL development' @@ -91,10 +93,13 @@ source=( 4.2-fglrx-has_fpu.patch 4.2-kolasa-fpu_save_init.patch 4.3-kolasa-seq_printf.patch - 4.3-gentoo-mtrr.patch) + 4.3-gentoo-mtrr.patch + + gcc5-something_something_the_dark_side.patch + 4.4-arch-block_signals.patch) md5sums=('c07fd1332abe4c742a9a0d0e0d0a90de' - '82c4e97854c020ad147a9122805a8936' + '3c2ff823b56d16e8220d129726b43ff1' 'af7fb8ee4fc96fd54c5b483e33dc71c4' 'bdafe749e046bfddee2d1c5e90eabd83' '9d9ea496eadf7e883d56723d65e96edf' @@ -126,7 +131,10 @@ md5sums=('c07fd1332abe4c742a9a0d0e0d0a90de' 'ae67dff6c218e028443dff6eacb26485' 'ccfdf4784735a742c53bdc1309f49a51' 'cdea2b2055df7d843b6096615e82d030' - '98828e3eeaec2b3795e584883cc1b746') + '98828e3eeaec2b3795e584883cc1b746' + + 'af80a9eb2016811ab79717c2bd370a25' + 'd200e156e941ec7b0227e399fd20a9c2') build() { @@ -304,6 +312,8 @@ package() { patch -Np1 -i ../4.2-kolasa-fpu_save_init.patch # patch -Np1 -i ../4.3-kolasa-seq_printf.patch #not compiling, undeclared m patch -Np1 -i ../4.3-gentoo-mtrr.patch + patch -Np1 -i ../gcc5-something_something_the_dark_side.patch + patch -Np1 -i ../4.4-arch-block_signals.patch # Prepare modules source files _archdir=x86_64 @@ -339,6 +349,7 @@ package() { cd ${srcdir}/archive_files/arch/x86/usr install -dm755 ${pkgdir}/usr/lib32 install -dm755 ${pkgdir}/usr/lib32/fglrx + install -dm755 ${pkgdir}/usr/lib32/dri install -dm755 ${pkgdir}/usr/lib32/xorg/modules/dri install -m755 lib/*.so* ${pkgdir}/usr/lib32 install -m755 X11R6/lib/fglrx/fglrx-libGL.so.1.2 ${pkgdir}/usr/lib32/fglrx @@ -352,7 +363,7 @@ package() { install -m755 X11R6/lib/libfglrx_dm.so.1.0 ${pkgdir}/usr/lib32 install -m755 X11R6/lib/libXvBAW.so.1.0 ${pkgdir}/usr/lib32 install -m755 X11R6/lib/modules/dri/*.so ${pkgdir}/usr/lib32/xorg/modules/dri - ln -snf /usr/lib32/xorg/modules/dri ${pkgdir}/usr/lib32/dri + ln -snf /usr/lib32/xorg/modules/dri/fglrx_dri.so ${pkgdir}/usr/lib32/dri/fglrx_dri.so cd $pkgdir/usr/lib32 ln -sf libfglrx_dm.so.1.0 libfglrx_dm.so.1 diff --git a/catalyst_build_module b/catalyst_build_module index 6505ed68010a..13f6bcea5486 100755 --- a/catalyst_build_module +++ b/catalyst_build_module @@ -34,7 +34,7 @@ install_module(){ #------------------------------------------------------------------------------------------ ## Compile module using _ati_check variables - make CC=gcc-4.9 -C /usr/lib/modules/${kernver}/build SUBDIRS="`pwd`" ARCH=${arch} \ + make -C /usr/lib/modules/${kernver}/build SUBDIRS="`pwd`" ARCH=${arch} \ MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ PAGE_ATTR_FIX=$PAGE_ATTR_FIX COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE modules || return 1 @@ -198,4 +198,4 @@ case "$1" in echo "Building fglrx module for ${kernver} kernel ..." install_module >> $LOG 2>&1 && echo "Ok." || echo -e '\E[37;44m'"\033[1mFailed!!! Check out log: $LOG\033[0m" ;; -esac
\ No newline at end of file +esac diff --git a/gcc5-something_something_the_dark_side.patch b/gcc5-something_something_the_dark_side.patch new file mode 100644 index 000000000000..6ec3de3dfdf0 --- /dev/null +++ b/gcc5-something_something_the_dark_side.patch @@ -0,0 +1,421 @@ +diff -uNr 15.12/common/lib/modules/fglrx/15.12/common/lib/modules/fglrx/build_mod/firegl_public.c 15.12b/common/lib/modules/fglrx/build_mod/firegl_public.c +--- 15.12/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-12-22 20:38:02.000000000 +0100 ++++ 15.12b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-12-22 21:23:25.960041558 +0100 +@@ -6154,6 +6154,7 @@ + #if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0) + kernel_fpu_begin(); + #else ++ preempt_disable(); + __kernel_fpu_begin(); + #endif + #else +@@ -6208,6 +6209,7 @@ + kernel_fpu_end(); + #else + __kernel_fpu_end(); ++ preempt_enable(); + #endif + } + +diff -uNr 15.12/common/lib/modules/fglrx/build_mod/kcl_debug.c 15.12b/common/lib/modules/fglrx/build_mod/kcl_debug.c +--- 15.12/common/lib/modules/fglrx/build_mod/kcl_debug.c 2015-12-22 20:38:02.000000000 +0100 ++++ 15.12b/common/lib/modules/fglrx/build_mod/kcl_debug.c 2015-11-25 19:05:48.000000000 +0100 +@@ -29,19 +29,20 @@ + * - not declared in the corresponding header + * + */ +- + #include <asm-generic/errno-base.h> //for EINVAL definition + + #include <linux/version.h> + #include <linux/kernel.h> + #include <linux/sysrq.h> +- ++#include <linux/thread_info.h> ++#include "firegl_public.h" + #include "kcl_debug.h" + ++extern void* ATI_API_CALL KCL_MEM_SmallBufferAllocAtomic(kcl_size_t size); ++extern void ATI_API_CALL KCL_MEM_SmallBufferFree(void* p); ++ + extern int ATI_API_CALL firegl_debug_dump(void); + +-extern void* ATI_API_CALL KCL_MEM_SmallBufferAllocAtomic(unsigned long size); +-extern void ATI_API_CALL KCL_MEM_SmallBufferFree(void* p); + static unsigned int prvGetCpuId(void); + + static void kcl_debug_sysrq_dump_handler(int key +@@ -141,7 +142,6 @@ + */ + void ATI_API_CALL KCL_DEBUG_Print(const char* fmt, ...) + { +- + char* buffer=KCL_MEM_SmallBufferAllocAtomic(MAX_STRING_LENGTH); + va_list marker; + +@@ -156,6 +156,47 @@ + KCL_MEM_SmallBufferFree(buffer); + } + ++/** \brief Print debug information to the OS debug console according to traceMask and debugMask ++ * \param traceMask Bit mask of enabled trace function ++ * \param debugMask Bit mask of enabled debug level. 0-7 total ++ * \param name function name ++ * \param line line number inside the file ++ * \param the print parameter ++ * \param fmt printf-like formatting string ++ * \param ... printf-like parameters ++ */ ++void ATI_API_CALL KCL_DEBUG_Print_Trace(unsigned int traceMask, unsigned int debugMask, void* name, int line, long param, const char* fmt, ...) ++{ ++ int print = firegl_trace(traceMask, debugMask, name, line, param); ++ if(print) ++ { ++ int len; ++ char* buffer=KCL_MEM_SmallBufferAllocAtomic(MAX_STRING_LENGTH); ++ if(buffer==NULL) ++ return; ++ if(fmt == NULL) ++ { ++ buffer[0] = '\n'; ++ buffer[1] = '\0'; ++ } ++ else ++ { ++ va_list marker; ++ va_start(marker, fmt); ++ kcl_vsnprintf(buffer,255,fmt, marker); ++ va_end(marker); ++ len = strlen(buffer); ++ if(buffer[len-1] != '\n') ++ { ++ buffer[len]='\n'; ++ buffer[len+1]='\0'; ++ } ++ } ++ KCL_DEBUG_Print("[fglrx] %s:%d %s", (char*)name, line, buffer); ++ KCL_MEM_SmallBufferFree(buffer); ++ } ++} ++ + /** \brief Register keyboard handler to dump module internal state + * \param enable 1 to register the handler, 0 to unregister it + * \return 0 +@@ -170,7 +211,6 @@ + { + unregister_sysrq_key('l', &kcl_debug_sysrq_dump_op); + } +- + return 0; + } + +@@ -180,7 +220,6 @@ + { + dump_stack(); + } +- + /* FIXME: this is temporary workaround to support code using old naming convention */ + + void ATI_API_CALL __ke_printk(const char* fmt, ...) +@@ -204,4 +243,67 @@ + + /* End of FIXME */ + ++#ifdef CONFIG_4KSTACKS ++#define STACK_SIZE_MASK 4095UL ++#define STACK_SIZE (4096 - sizeof(struct thread_info)) ++#else ++#define STACK_SIZE_MASK 8191UL ++#define STACK_SIZE (8192 - sizeof(struct thread_info)) ++#endif + ++static unsigned long stackBase(void) ++{ ++ unsigned long esp = ((unsigned long)&esp) & ~STACK_SIZE_MASK; ++ return esp + sizeof(struct thread_info); ++} ++ ++/* Don't inline this. The stack frame of this function provides ++ * protection to the caller's stack frame. */ ++static noinline unsigned long stackCur(void) ++{ ++ unsigned long esp = (unsigned long)&esp; ++ return esp; ++} ++ ++/** \brief Mark unused stack with a magick number ++ * ++ * \return Current amount of stack used in bytes ++ */ ++#define STACK_TAG 0x89abcdef ++unsigned ATI_API_CALL KCL_DEBUG_StackTag(void) ++{ ++ unsigned *p, *q; ++ unsigned free; ++ ++ p = (unsigned *)((stackBase() + sizeof(unsigned)-1) & ++ ~(sizeof(unsigned)-1)); ++ q = (unsigned *)(stackCur() & ~(sizeof(unsigned)-1)); ++ free = (unsigned long)q - (unsigned long)p; ++ ++ while (p < q) ++ { ++ *p++ = STACK_TAG; ++ } ++ ++ return STACK_SIZE - free; ++} ++ ++/** \brief Measure maximum amount of stack usage since last call to StackTag ++ * ++ * \return Maximum amount of stack usage since last call to StackTag in bytes ++ */ ++unsigned ATI_API_CALL KCL_DEBUG_StackMeasure(void) ++{ ++ unsigned *base, *p, *q; ++ ++ base = p = (unsigned *)((stackBase() + sizeof(unsigned)-1) & ++ ~(sizeof(unsigned)-1)); ++ q = (unsigned *)(stackCur() & ~(sizeof(unsigned)-1)); ++ ++ while (p < q && *p == STACK_TAG) ++ { ++ p++; ++ } ++ ++ return STACK_SIZE - ((unsigned long)p - (unsigned long)base); ++} +diff -uNr 15.12/common/lib/modules/fglrx/build_mod/kcl_debug.h 15.12b/common/lib/modules/fglrx/build_mod/kcl_debug.h +--- 15.12/common/lib/modules/fglrx/build_mod/kcl_debug.h 2015-12-22 20:38:02.000000000 +0100 ++++ 15.12b/common/lib/modules/fglrx/build_mod/kcl_debug.h 2015-11-25 19:05:48.000000000 +0100 +@@ -64,20 +64,27 @@ + FN_GENERIC_MAXIMUM = 0x3f + } FN_TRACE; + +-extern void ATI_API_CALL firegl_trace(unsigned int traceMask, ++extern int ATI_API_CALL firegl_trace(unsigned int traceMask, + unsigned int debugMask, + void* name, + int line, +- long param, +- const char* fmt, +- ...); ++ long param); + + #define MAX_STRING_LENGTH 512 + + void ATI_API_CALL KCL_DEBUG_Print(const char* fmt, ...); ++void ATI_API_CALL KCL_DEBUG_Print_Trace(unsigned int traceMask, ++ unsigned int debugMask, ++ void* name, ++ int line, ++ long param, ++ const char* fmt, ++ ...); + int ATI_API_CALL KCL_DEBUG_RegKbdHandler(int enable); + int ATI_API_CALL KCL_DEBUG_RegKbdDumpHandler(int enable); + void ATI_API_CALL KCL_DEBUG_OsDump(void); ++unsigned ATI_API_CALL KCL_DEBUG_StackTag(void); ++unsigned ATI_API_CALL KCL_DEBUG_StackMeasure(void); + + #ifdef SPECIAL + #undef SPECIAL +@@ -209,102 +216,106 @@ + KCL_DEBUG_Print("<6>[fglrx] " fmt, ##arg) + + +-#define KCL_DEBUG_TRACE(m, p, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_TRACE, \ +- (void*)__FUNCTION__, \ +- (int)(__LINE__), \ +- (long)(p), \ +- fmt, \ +- ##arg); \ ++#define KCL_DEBUG_TRACE(m, p, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_TRACE, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ (long)(p), \ ++ fmt, \ ++ ##arg); \ + } while (0) + + #define KCL_DEBUG_TRACEIN KCL_DEBUG_TRACE + +-#define KCL_DEBUG_TRACEOUT(m, p, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_TRACEOUT, \ +- (void*)__FUNCTION__, \ +- (int)(__LINE__), \ +- (long)(p), \ +- fmt, \ +- ##arg); \ +- } while (0) +- +-#define KCL_DEBUG1(m, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_LEVEL1, \ +- (void*)__FUNCTION__, \ +- (int)__LINE__, \ +- 0, \ +- fmt, \ +- ##arg); \ +- } while (0) +- +-#define KCL_DEBUG2(m, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_LEVEL2, \ +- (void*)__FUNCTION__, \ +- (int)__LINE__, \ +- 0, \ +- fmt, \ +- ##arg); \ +- } while (0) +- +-#define KCL_DEBUG3(m, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_LEVEL3, \ +- (void*)__FUNCTION__, \ +- (int)__LINE__, \ +- 0, \ +- fmt, \ +- ##arg); \ +- } while (0) +- +-#define KCL_DEBUG4(m, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_LEVEL4, \ +- (void*)__FUNCTION__, \ +- (int)__LINE__, \ +- 0, \ +- fmt, \ +- ##arg); \ +- } while (0) +- +-#define KCL_DEBUG5(m, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_LEVEL5, \ +- (void*)__FUNCTION__, \ +- (int)__LINE__, \ +- 0, \ +- fmt, \ +- ##arg); \ +- } while (0) +- +-#define KCL_DEBUG6(m, fmt, arg...) \ +- do \ +- { \ +- firegl_trace(m, \ +- FN_DEBUG_LEVEL6, \ +- (void*)__FUNCTION__, \ +- (int)__LINE__, \ +- 0, \ +- fmt, \ +- ##arg); \ ++#define KCL_DEBUG_TRACEOUT(m, p, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_TRACEOUT, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ (long)(p), \ ++ fmt, \ ++ ##arg); \ ++ } while (0) ++ ++ ++#define KCL_DEBUG1(m, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_LEVEL1, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ 0, \ ++ fmt, \ ++ ##arg); \ ++ } while (0) ++ ++#define KCL_DEBUG2(m, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_LEVEL2, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ 0, \ ++ fmt, \ ++ ##arg); \ ++ } while (0) ++ ++#define KCL_DEBUG3(m, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_LEVEL3, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ 0, \ ++ fmt, \ ++ ##arg); \ ++ } while (0) ++ ++ ++#define KCL_DEBUG4(m, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_LEVEL4, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ 0, \ ++ fmt, \ ++ ##arg); \ ++ } while (0) ++ ++ ++#define KCL_DEBUG5(m, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_LEVEL5, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ 0, \ ++ fmt, \ ++ ##arg); \ ++ } while (0) ++ ++ ++#define KCL_DEBUG6(m, fmt, arg...) \ ++ do \ ++ { \ ++ KCL_DEBUG_Print_Trace(m, \ ++ FN_DEBUG_LEVEL6, \ ++ (void*)__FUNCTION__, \ ++ (int)(__LINE__), \ ++ 0, \ ++ fmt, \ ++ ##arg); \ + } while (0) + + #endif |