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 +