Merge branch 'new_unitype' of https://github.com/Timerix22/kerep into new_unitype
This commit is contained in:
commit
d449901ab6
7
chmod_scripts.sh
Normal file
7
chmod_scripts.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
SCRIPTS="$(find build_scripts -name '*.sh')"
|
||||
for F in $SCRIPTS
|
||||
do
|
||||
echo $F
|
||||
chmod +x $F
|
||||
done
|
||||
@ -8,43 +8,67 @@ extern "C" {
|
||||
#include "kprint_colors.h"
|
||||
#include "kprint_format.h"
|
||||
|
||||
#define __count_va_args(\
|
||||
#define __count_args(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7,\
|
||||
a8, a9, a10,a11,a12,a13,a14,a15,\
|
||||
a16,a17,a18,a19,a20,a21,a22,a23,\
|
||||
a24,a25,a26,a27,a28,a29,a30,a31,\
|
||||
a32) a32
|
||||
#define count_va_args(ARGS...) __count_va_args(\
|
||||
#define count_args(ARGS...) __count_args(\
|
||||
ARGS,\
|
||||
32,31,30,29,28,27,26,25,\
|
||||
24,23,22,21,20,19,18,17,\
|
||||
16,15,14,13,12,11,10,9,\
|
||||
8, 7, 6, 5, 4, 3, 2, 1, 0)
|
||||
|
||||
#define __get_va_args_sizes(\
|
||||
#define __kprint_argsToFormats8(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7)\
|
||||
(kprint_format[]{ a0,a2,a4,a6 })
|
||||
#define __kprint_argsToObjects8(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7)\
|
||||
(void*[]{ a1,a3,a5,a7 })
|
||||
|
||||
#define __kprint_argsToFormats16(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7,\
|
||||
a8, a9, a10,a11,a12,a13,a14,a15)\
|
||||
(kprint_format[]{ a0,a2,a4,a6,a8,a10,a12,a14 })
|
||||
#define __kprint_argsToObjects16(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7,\
|
||||
a8, a9, a10,a11,a12,a13,a14,a15)\
|
||||
(void*[]{ a1,a3,a5,a7,a9,a11,a13,a15 })
|
||||
|
||||
#define __kprint_argsToFormats32(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7,\
|
||||
a8, a9, a10,a11,a12,a13,a14,a15,\
|
||||
a16,a17,a18,a19,a20,a21,a22,a23,\
|
||||
a24,a25,a26,a27,a28,a29,a30,a31)\
|
||||
(uint16[]{\
|
||||
sizeof(a0), sizeof(a1), sizeof(a2), sizeof(a3), sizeof(a4), sizeof(a5), sizeof(a6), sizeof(a7),\
|
||||
sizeof(a8), sizeof(a9), sizeof(a10),sizeof(a11),sizeof(a12),sizeof(a13),sizeof(a14),sizeof(a15),\
|
||||
sizeof(a16),sizeof(a17),sizeof(a18),sizeof(a19),sizeof(a20),sizeof(a21),sizeof(a22),sizeof(a23),\
|
||||
sizeof(a24),sizeof(a25),sizeof(a26),sizeof(a27),sizeof(a28),sizeof(a29),sizeof(a30),sizeof(a31)\
|
||||
})
|
||||
#define get_va_args_sizes(ARGS...) __get_va_args_sizes(ARGS,\
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
|
||||
(kprint_format[]{ a0,a2,a4,a6,a8,a10,a12,a14,a16,a18,a20,a22,a24,a26,a28,a30 }
|
||||
#define __kprint_argsToObjects32(\
|
||||
a0, a1, a2, a3, a4, a5, a6, a7,\
|
||||
a8, a9, a10,a11,a12,a13,a14,a15,\
|
||||
a16,a17,a18,a19,a20,a21,a22,a23,\
|
||||
a24,a25,a26,a27,a28,a29,a30,a31)\
|
||||
(void*[]{ a1,a3,a5,a7,a9,a11,a13,a15,a17,a19,a21,a23,a25,a27,a29,a31 })
|
||||
|
||||
#define __32zeroes 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
|
||||
#define __kprint_argsToArrs(COUNT,ARGS...)(\
|
||||
(COUNT<=8 __kprint_argsToFormats8(ARGS,__32zeroes) :\
|
||||
COUNT<=16 __kprint_argsToFormats16(ARGS,__32zeroes) :\
|
||||
__kprint_argsToFormats32(ARGS,__32zeroes)),\
|
||||
(COUNT<=8 __kprint_argsToObjects8(ARGS,__32zeroes) :\
|
||||
COUNT<=16 __kprint_argsToObjects16(ARGS) :\
|
||||
__kprint_argsToObjects32(ARGS,__32zeroes))
|
||||
|
||||
|
||||
Maybe __ksprint(uint8 n, uint16 sizes[32], ...);
|
||||
#define ksprint(ARGS...) __ksprint(count_va_args(ARGS), get_va_args_sizes(ARGS), ARGS)
|
||||
Maybe __ksprint(uint8 n, kprint_format* formats, void** objects);
|
||||
#define ksprint(ARGS...) __ksprint(count_args(ARGS), __kprint_argsToArrs(count_args(ARGS),ARGS))
|
||||
|
||||
Maybe __kfprint(FILE* fd, uint8 n, uint16 sizes[32], ...);
|
||||
#define kfprint(FD, ARGS...) __kfprint(FD, count_va_args(ARGS), get_va_args_sizes(ARGS), ARGS)
|
||||
Maybe __kfprint(FILE* fd, uint8 n, kprint_format* formats, void** objects);
|
||||
#define kfprint(FD, ARGS...) __kfprint(FD, count_args(ARGS), __kprint_argsToArrs(count_args(ARGS),ARGS))
|
||||
|
||||
void __kprint(uint8 n, uint16 sizes[32], ...);
|
||||
#define kprint(ARGS...) __kprint(count_va_args(ARGS), get_va_args_sizes(ARGS), ARGS)
|
||||
void __kprint(uint8 n, kprint_format* formats, void** objects);
|
||||
#define kprint(ARGS...) __kprint(count_args(ARGS), __kprint_argsToArrs(count_args(ARGS),ARGS))
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user