os/ossrv/genericopenlibs/liboil/src/liboiltest.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/genericopenlibs/liboil/src/liboiltest.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,120 @@
     1.4 +/*
     1.5 + * LIBOIL - Library of Optimized Inner Loops
     1.6 + * Copyright (c) 2003,2004 David A. Schleef <ds@schleef.org>
     1.7 + * All rights reserved.
     1.8 + *
     1.9 + * Redistribution and use in source and binary forms, with or without
    1.10 + * modification, are permitted provided that the following conditions
    1.11 + * are met:
    1.12 + * 1. Redistributions of source code must retain the above copyright
    1.13 + *    notice, this list of conditions and the following disclaimer.
    1.14 + * 2. Redistributions in binary form must reproduce the above copyright
    1.15 + *    notice, this list of conditions and the following disclaimer in the
    1.16 + *    documentation and/or other materials provided with the distribution.
    1.17 + * 
    1.18 + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
    1.19 + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    1.20 + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    1.21 + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
    1.22 + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    1.23 + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    1.24 + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    1.25 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    1.26 + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
    1.27 + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    1.28 + * POSSIBILITY OF SUCH DAMAGE.
    1.29 + */
    1.30 +
    1.31 +#ifndef _LIBOIL_TEST_H_
    1.32 +#define _LIBOIL_TEST_H_
    1.33 +
    1.34 +#include <liboil/liboil.h>
    1.35 +#include <liboil/liboilutils.h>
    1.36 +#include <liboil/liboilprototype.h>
    1.37 +#include <liboil/liboilprofile.h>
    1.38 +
    1.39 +OIL_BEGIN_DECLS
    1.40 +
    1.41 +#ifdef OIL_ENABLE_UNSTABLE_API
    1.42 +
    1.43 +/**
    1.44 + * OilTest:
    1.45 + * 
    1.46 + * An opaque structure describing how to test an OilFunctionImpl
    1.47 + * for an OilFunctionClass.
    1.48 + */
    1.49 +struct _OilTest {
    1.50 +  /*< private >*/
    1.51 +  OilFunctionClass *klass;
    1.52 +  OilFunctionImpl *impl;
    1.53 +  OilPrototype *proto;
    1.54 +  OilParameter params[OIL_ARG_LAST];
    1.55 +  OilProfile prof;
    1.56 +
    1.57 +  int iterations;
    1.58 +  int n;
    1.59 +  int m;
    1.60 +  
    1.61 +  int inited;
    1.62 +  int tested_ref;
    1.63 +
    1.64 +  double sum_abs_diff;
    1.65 +  int n_points;
    1.66 +
    1.67 +  double profile_ave;
    1.68 +  double profile_std;
    1.69 +
    1.70 +  double tolerance;
    1.71 +};
    1.72 +
    1.73 +/**
    1.74 + * OilTestFunction:
    1.75 + * @test: the @OilTest structure
    1.76 + *
    1.77 + * Typedef for functions that initialize special values
    1.78 + * in source arrays for a particular function class.
    1.79 + */
    1.80 +//typedef void (*OilTestFunction) (OilTest *test);
    1.81 +
    1.82 +/**
    1.83 + * OIL_TEST_HEADER:
    1.84 + *
    1.85 + * Default number of bytes that are prepended to the array test area.
    1.86 + */
    1.87 +#define OIL_TEST_HEADER 256
    1.88 +/**
    1.89 + * OIL_TEST_FOOTER:
    1.90 + *
    1.91 + * Default number of bytes that are appended to the array test area.
    1.92 + */
    1.93 +#define OIL_TEST_FOOTER 256
    1.94 +
    1.95 +IMPORT_C OilTest *oil_test_new (OilFunctionClass *klass);
    1.96 +IMPORT_C void oil_test_free (OilTest *test);
    1.97 +
    1.98 +IMPORT_C void oil_test_set_iterations (OilTest *test, int iterations);
    1.99 +
   1.100 +IMPORT_C void oil_test_check_ref (OilTest *test);
   1.101 +IMPORT_C int oil_test_check_impl (OilTest *test, OilFunctionImpl *impl);
   1.102 +
   1.103 +IMPORT_C void oil_test_cleanup (OilTest *test);
   1.104 +IMPORT_C void oil_test_init (OilTest *test);
   1.105 +
   1.106 +IMPORT_C void oil_test_set_test_header (OilTest *test, OilParameter *p, int test_header);
   1.107 +IMPORT_C void oil_test_set_test_footer (OilTest *test, OilParameter *p, int test_footer);
   1.108 +
   1.109 +void _oil_test_marshal_function (void *func, unsigned long *args, int n_args,
   1.110 +    unsigned int pointer_mask, OilProfile *prof);
   1.111 +
   1.112 +IMPORT_C void *oil_test_get_source_data (OilTest *test, OilArgType arg_type);
   1.113 +IMPORT_C int oil_test_get_arg_pre_n (OilTest *test, OilArgType arg_type);
   1.114 +IMPORT_C int oil_test_get_arg_post_n (OilTest *test, OilArgType arg_type);
   1.115 +IMPORT_C int oil_test_get_arg_stride (OilTest *test, OilArgType arg_type);
   1.116 +IMPORT_C int oil_test_get_value (OilTest *test, OilArgType arg_type);
   1.117 +
   1.118 +#endif
   1.119 +
   1.120 +OIL_END_DECLS
   1.121 +
   1.122 +#endif
   1.123 +