summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO11
-rw-r--r--4.4-arch-block_signals.patch34
-rw-r--r--PKGBUILD25
-rwxr-xr-xcatalyst_build_module4
-rw-r--r--gcc5-something_something_the_dark_side.patch421
5 files changed, 482 insertions, 13 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a126735488d3..d4aa737b2627 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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);
diff --git a/PKGBUILD b/PKGBUILD
index 014ba5d1f2eb..0d9c835d27d5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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