Changeset: 86e62d4bfe87 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=86e62d4bfe87 Modified Files: sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/capi/capi.h sql/backends/monet5/UDF/capi/capi.mal sql/backends/monet5/UDF/capi/cheader.h sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_statement.c sql/include/sql_catalog.h sql/server/rel_psm.c sql/server/sql_parser.y Branch: jitudf Log Message:
Formatting. diffs (truncated from 1538 to 300 lines): diff --git a/sql/backends/monet5/UDF/capi/capi.c b/sql/backends/monet5/UDF/capi/capi.c --- a/sql/backends/monet5/UDF/capi/capi.c +++ b/sql/backends/monet5/UDF/capi/capi.c @@ -24,67 +24,73 @@ struct _allocated_region; typedef struct _allocated_region { - struct _allocated_region* next; + struct _allocated_region *next; } allocated_region; - -static __thread allocated_region* allocated_regions; +static __thread allocated_region *allocated_regions; static __thread jmp_buf jump_buffer; -static str -CUDFeval(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, bit grouped); +static str CUDFeval(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, + bit grouped); -str CUDFevalStd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { +str CUDFevalStd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ return CUDFeval(cntxt, mb, stk, pci, 0); } -str CUDFevalAggr(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { +str CUDFevalAggr(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ return CUDFeval(cntxt, mb, stk, pci, 1); } -str CUDFprelude(void *ret) { - (void) ret; +str CUDFprelude(void *ret) +{ + (void)ret; return MAL_SUCCEED; } -typedef char* (*jitted_function)(void** inputs, void** outputs, malloc_function_ptr malloc); +typedef char *(*jitted_function)(void **inputs, void **outputs, + malloc_function_ptr malloc); -static bool -WriteDataToFile(FILE* f, const void* data, size_t data_size) { +static bool WriteDataToFile(FILE *f, const void *data, size_t data_size) +{ fwrite(data, data_size, 1, f); return (!ferror(f)); } -static bool -WriteTextToFile(FILE* f, const char* data) { +static bool WriteTextToFile(FILE *f, const char *data) +{ return WriteDataToFile(f, data, strlen(data)); } -static void handler(int sig, siginfo_t *si, void *unused) { - (void) sig; - (void) si; - (void) unused; +static void handler(int sig, siginfo_t *si, void *unused) +{ + (void)sig; + (void)si; + (void)unused; // we caught a segfault or bus error longjmp(jump_buffer, 1); } struct _mprotected_region; typedef struct _mprotected_region { - void* addr; + void *addr; size_t len; - struct _mprotected_region* next; + struct _mprotected_region *next; } mprotected_region; -static char* -mprotect_region(void* addr, size_t len, int flags, mprotected_region** regions) { - mprotected_region* region; +static char *mprotect_region(void *addr, size_t len, int flags, + mprotected_region **regions) +{ + mprotected_region *region; int pagesize; - void* page_begin; - if (len == 0) return NULL; + void *page_begin; + if (len == 0) + return NULL; // check if the region is page-aligned - + pagesize = getpagesize(); - page_begin = (void*)((size_t)addr - (size_t)addr % pagesize); + page_begin = (void *)((size_t)addr - (size_t)addr % pagesize); if (page_begin != addr) { // data is not page-aligned len += ((size_t)addr - (size_t)page_begin); @@ -108,60 +114,60 @@ mprotect_region(void* addr, size_t len, return NULL; } -static char* -clear_mprotect(void* addr, size_t len) { +static char *clear_mprotect(void *addr, size_t len) +{ if (mprotect(addr, len, PROT_READ | PROT_WRITE) < 0) { return strerror(errno); } return NULL; } -#define ATTEMPT_TO_WRITE_TO_FILE(f, data) \ - if (!WriteTextToFile(f, data)) { \ - errno = 0; \ - msg = createException(MAL, "cudf.eval", "Write error."); \ - goto wrapup; \ +#define ATTEMPT_TO_WRITE_TO_FILE(f, data) \ + if (!WriteTextToFile(f, data)) { \ + errno = 0; \ + msg = createException(MAL, "cudf.eval", "Write error."); \ + goto wrapup; \ } - -#define ATTEMPT_TO_WRITE_DATA_TO_FILE(f, data, size) \ - if (!WriteDataToFile(f, data, size)) { \ - errno = 0; \ - msg = createException(MAL, "cudf.eval", "Write error."); \ - goto wrapup; \ +#define ATTEMPT_TO_WRITE_DATA_TO_FILE(f, data, size) \ + if (!WriteDataToFile(f, data, size)) { \ + errno = 0; \ + msg = createException(MAL, "cudf.eval", "Write error."); \ + goto wrapup; \ } - -static void* jump_GDK_malloc(size_t size) { - void* ptr = GDKmalloc(size); +static void *jump_GDK_malloc(size_t size) +{ + void *ptr = GDKmalloc(size); if (!ptr) { longjmp(jump_buffer, 2); } return ptr; } -static void* wrapped_GDK_malloc(size_t size) { - allocated_region* region; - void* ptr = jump_GDK_malloc(size + sizeof(allocated_region)); - region = (allocated_region*)ptr; +static void *wrapped_GDK_malloc(size_t size) +{ + allocated_region *region; + void *ptr = jump_GDK_malloc(size + sizeof(allocated_region)); + region = (allocated_region *)ptr; region->next = allocated_regions; allocated_regions = region; - + return ptr + sizeof(allocated_region); } -#define GENERATE_BASE_HEADERS(type, tpename) \ -static int tpename##_is_null(type value); \ -static void tpename##_initialize(struct cudf_data_struct_##tpename* self, size_t count) { \ - self->count = count; \ - self->data = jump_GDK_malloc(count * sizeof(self->null_value)); \ -} +#define GENERATE_BASE_HEADERS(type, tpename) \ + static int tpename##_is_null(type value); \ + static void tpename##_initialize(struct cudf_data_struct_##tpename *self, \ + size_t count) \ + { \ + self->count = count; \ + self->data = jump_GDK_malloc(count * sizeof(self->null_value)); \ + } -#define GENERATE_BASE_FUNCTIONS(tpe, tpename) \ -GENERATE_BASE_HEADERS(tpe, tpename); \ -static int tpename##_is_null(tpe value) { \ - return value == tpename##_nil; \ -} +#define GENERATE_BASE_FUNCTIONS(tpe, tpename) \ + GENERATE_BASE_HEADERS(tpe, tpename); \ + static int tpename##_is_null(tpe value) { return value == tpename##_nil; } GENERATE_BASE_FUNCTIONS(bte, bte); GENERATE_BASE_FUNCTIONS(sht, sht); @@ -170,82 +176,95 @@ GENERATE_BASE_FUNCTIONS(lng, lng); GENERATE_BASE_FUNCTIONS(flt, flt); GENERATE_BASE_FUNCTIONS(dbl, dbl); -GENERATE_BASE_HEADERS(char*, str); +GENERATE_BASE_HEADERS(char *, str); GENERATE_BASE_HEADERS(cudf_data_date, date); GENERATE_BASE_HEADERS(cudf_data_time, time); GENERATE_BASE_HEADERS(cudf_data_timestamp, timestamp); -#define GENERATE_BAT_INPUT_BASE(b, tpe) \ - struct cudf_data_struct_##tpe* bat_data = GDKmalloc(sizeof(struct cudf_data_struct_##tpe)); \ - if (!bat_data) { \ - msg = createException(MAL, "cudf.eval", MAL_MALLOC_FAIL); \ - goto wrapup; \ - } \ - inputs[index] = bat_data; \ - bat_data->is_null = tpe##_is_null;\ - bat_data->initialize = (void (*)(void*, size_t)) tpe##_initialize; - -#define GENERATE_BAT_INPUT(b, tpe) { \ - char* mprotect_retval; \ - GENERATE_BAT_INPUT_BASE(b, tpe); \ - bat_data->count = BATcount(b); \ - bat_data->data = (tpe*) Tloc(b, 0); \ - bat_data->null_value = tpe##_nil; \ - mprotect_retval = mprotect_region(bat_data->data, bat_data->count * sizeof(bat_data->null_value), PROT_READ, ®ions); \ - if (mprotect_retval) { \ - msg = createException(MAL, "cudf.eval", "Failed to mprotect region: %s", mprotect_retval); \ - goto wrapup; \ - } \ -} +#define GENERATE_BAT_INPUT_BASE(b, tpe) \ + struct cudf_data_struct_##tpe *bat_data = \ + GDKmalloc(sizeof(struct cudf_data_struct_##tpe)); \ + if (!bat_data) { \ + msg = createException(MAL, "cudf.eval", MAL_MALLOC_FAIL); \ + goto wrapup; \ + } \ + inputs[index] = bat_data; \ + bat_data->is_null = tpe##_is_null; \ + bat_data->initialize = (void (*)(void *, size_t))tpe##_initialize; - -#define GENERATE_BAT_OUTPUT_BASE(tpe) \ - struct cudf_data_struct_##tpe* bat_data = GDKmalloc(sizeof(struct cudf_data_struct_##tpe)); \ - if (!bat_data) { \ - msg = createException(MAL, "cudf.eval", MAL_MALLOC_FAIL); \ - goto wrapup; \ - } \ - outputs[index] = bat_data; \ - bat_data->is_null = tpe##_is_null; \ - bat_data->initialize = (void (*)(void*, size_t)) tpe##_initialize; +#define GENERATE_BAT_INPUT(b, tpe) \ + { \ + char *mprotect_retval; \ + GENERATE_BAT_INPUT_BASE(b, tpe); \ + bat_data->count = BATcount(b); \ + bat_data->data = (tpe *)Tloc(b, 0); \ + bat_data->null_value = tpe##_nil; \ + mprotect_retval = mprotect_region( \ + bat_data->data, bat_data->count * sizeof(bat_data->null_value), \ + PROT_READ, ®ions); \ + if (mprotect_retval) { \ + msg = createException(MAL, "cudf.eval", \ + "Failed to mprotect region: %s", \ + mprotect_retval); \ + goto wrapup; \ + } \ + } -#define GENERATE_BAT_OUTPUT(tpe) { \ - GENERATE_BAT_OUTPUT_BASE(tpe); \ - bat_data->count = 0; \ - bat_data->data = NULL; \ - bat_data->null_value = (tpe) tpe##_nil;\ -} +#define GENERATE_BAT_OUTPUT_BASE(tpe) \ + struct cudf_data_struct_##tpe *bat_data = \ + GDKmalloc(sizeof(struct cudf_data_struct_##tpe)); \ + if (!bat_data) { \ + msg = createException(MAL, "cudf.eval", MAL_MALLOC_FAIL); \ + goto wrapup; \ + } \ + outputs[index] = bat_data; \ + bat_data->is_null = tpe##_is_null; \ + bat_data->initialize = (void (*)(void *, size_t))tpe##_initialize; -#define GENERATE_SCALAR_INPUT(tpe) \ - inputs[index] = GDKmalloc(sizeof(tpe)); \ - if (!inputs[index]) { \ - goto wrapup; \ - } \ - *((tpe*)inputs[index]) = *((tpe*)getArgReference(stk, pci, i)); +#define GENERATE_BAT_OUTPUT(tpe) \ + { \ + GENERATE_BAT_OUTPUT_BASE(tpe); \ + bat_data->count = 0; \ + bat_data->data = NULL; \ + bat_data->null_value = (tpe)tpe##_nil; \ + } + +#define GENERATE_SCALAR_INPUT(tpe) \ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list