Home | History | Annotate | Download | only in u64
      1 /*
      2  * Copyright 2016 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can
      5  * be found in the LICENSE file.
      6  *
      7  */
      8 
      9 //
     10 //
     11 //
     12 
     13 #include "../../../hs_cl_target.h"
     14 
     15 //
     16 //
     17 //
     18 
     19 #include "hs_target.h"
     20 #include "hs_config.h"
     21 
     22 //
     23 //
     24 //
     25 
     26 #ifndef HS_TARGET_NAME
     27 #define HS_TARGET_NAME  hs_target
     28 #endif
     29 
     30 //
     31 //
     32 //
     33 
     34 struct hs_cl_target const HS_TARGET_NAME =
     35 {
     36   .config = {
     37     .slab = {
     38       .threads_log2 = HS_SLAB_THREADS_LOG2,
     39       .width_log2   = HS_SLAB_WIDTH_LOG2,
     40       .height       = HS_SLAB_HEIGHT
     41     },
     42 
     43     .words = {
     44       .key          = HS_KEY_WORDS,
     45       .val          = HS_VAL_WORDS
     46     },
     47 
     48     .block = {
     49       .slabs        = HS_BS_SLABS
     50     },
     51 
     52     .merge = {
     53       .fm = {
     54         .scale_min  = HS_FM_SCALE_MIN,
     55         .scale_max  = HS_FM_SCALE_MAX
     56       },
     57       .hm = {
     58         .scale_min  = HS_HM_SCALE_MIN,
     59         .scale_max  = HS_HM_SCALE_MAX,
     60       }
     61     }
     62   },
     63 
     64   .program = {
     65 #ifndef HS_DUMP_SOURCE
     66     0, // KERNELS ARE BINARIES
     67 #include "hs_kernels.bin.len.xxd"
     68     ,
     69 #include "hs_kernels.bin.xxd"
     70 #else
     71     1, // KERNELS ARE SOURCE
     72 #include "hs_kernels.src.len.xxd"
     73     ,
     74 #include "hs_kernels.src.xxd"
     75 #endif
     76   }
     77 };
     78 
     79 //
     80 //
     81 //
     82 
     83 #ifdef HS_DUMP
     84 
     85 #include <stdlib.h>
     86 #include <stdio.h>
     87 
     88 int
     89 main(int argc, char const * argv[])
     90 {
     91   FILE * fp = fopen("hs_target.bin","wb");
     92 
     93   fwrite(&HS_TARGET_NAME.config,1,sizeof(HS_TARGET_NAME.config),fp);
     94 
     95   size_t progsize =
     96     (HS_TARGET_NAME.program[1]<<24) | (HS_TARGET_NAME.program[2]<<16) |
     97     (HS_TARGET_NAME.program[3]<< 8) |  HS_TARGET_NAME.program[4];
     98 
     99   // fprintf(stderr,"%zu\n",progsize);
    100 
    101   progsize += 1 + sizeof(uint32_t);
    102 
    103   fwrite(HS_TARGET_NAME.program,1,progsize,fp);
    104 
    105   fclose(fp);
    106 
    107   return EXIT_SUCCESS;
    108 }
    109 
    110 #endif
    111 
    112 //
    113 //
    114 //
    115