| Index: arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_configuration.h
|
| diff --git a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_configuration.h b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_configuration.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f5b3ff0e1ae85f80551619d35b67cb62e6cced0f
|
| --- /dev/null
|
| +++ b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_configuration.h
|
| @@ -0,0 +1,105 @@
|
| +/*
|
| + * Copyright (c) 2007-2009 NVIDIA Corporation.
|
| + * All rights reserved.
|
| + *
|
| + * Redistribution and use in source and binary forms, with or without
|
| + * modification, are permitted provided that the following conditions are met:
|
| + *
|
| + * Redistributions of source code must retain the above copyright notice,
|
| + * this list of conditions and the following disclaimer.
|
| + *
|
| + * Redistributions in binary form must reproduce the above copyright notice,
|
| + * this list of conditions and the following disclaimer in the documentation
|
| + * and/or other materials provided with the distribution.
|
| + *
|
| + * Neither the name of the NVIDIA Corporation nor the names of its contributors
|
| + * may be used to endorse or promote products derived from this software
|
| + * without specific prior written permission.
|
| + *
|
| + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
| + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| + * POSSIBILITY OF SUCH DAMAGE.
|
| + *
|
| + */
|
| +
|
| +#ifndef INCLUDED_NVRM_CONFIGURATION_H
|
| +#define INCLUDED_NVRM_CONFIGURATION_H
|
| +
|
| +#include "nvcommon.h"
|
| +#include "nverror.h"
|
| +
|
| +/**
|
| + * The RM configuration variables are represented by two structures:
|
| + * a configuration map, which lists all of the variables, their default
|
| + * values and types, and a struct of strings, which holds the runtime value of
|
| + * the variables. The map holds the index into the runtime structure.
|
| + *
|
| + */
|
| +
|
| +/**
|
| + * The configuration varible type.
|
| + */
|
| +typedef enum
|
| +{
|
| + /* String should be parsed as a decimal */
|
| + NvRmCfgType_Decimal = 0,
|
| +
|
| + /* String should be parsed as a hexadecimal */
|
| + NvRmCfgType_Hex = 1,
|
| +
|
| + /* String should be parsed as a character */
|
| + NvRmCfgType_Char = 2,
|
| +
|
| + /* String used as-is. */
|
| + NvRmCfgType_String = 3,
|
| +} NvRmCfgType;
|
| +
|
| +/**
|
| + * The configuration map (all possible variables). The map must be
|
| + * null terminated. Each Rm instance (for each chip) can/will have
|
| + * different configuration maps.
|
| + */
|
| +typedef struct NvRmCfgMap_t
|
| +{
|
| + const char *name;
|
| + NvRmCfgType type;
|
| + void *initial; /* default value of the variable */
|
| + void *offset; /* the index into the string structure */
|
| +} NvRmCfgMap;
|
| +
|
| +/* helper macro for generating the offset for the map */
|
| +#define STRUCT_OFFSET( s, e ) (void *)(&(((s*)0)->e))
|
| +
|
| +/* maximum size of a configuration variable */
|
| +#define NVRM_CFG_MAXLEN NVOS_PATH_MAX
|
| +
|
| +/**
|
| + * get the default configuration variables.
|
| + *
|
| + * @param map The configuration map
|
| + * @param cfg The configuration runtime values
|
| + */
|
| +NvError
|
| +NvRmPrivGetDefaultCfg( NvRmCfgMap *map, void *cfg );
|
| +
|
| +/**
|
| + * get requested configuration.
|
| + *
|
| + * @param map The configuration map
|
| + * @param cfg The configuration runtime values
|
| + *
|
| + * Note: 'cfg' should have already been initialized with
|
| + * NvRmPrivGetDefaultCfg() before calling this.
|
| + */
|
| +NvError
|
| +NvRmPrivReadCfgVars( NvRmCfgMap *map, void *cfg );
|
| +
|
| +#endif
|
|
|