summaryrefslogtreecommitdiff
path: root/runtimes/libs/nnapi/v1.1/include/NeuralNetworksExShim.h
blob: f684dab905f5816a459c531fbca053d705a62413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
   Copyright 2017 The TensorFlow Authors. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/

/**
 * @file     NeuralNetworksExShim.h
 * @brief    This file contains an actual implementation of
 *           ANeuralNetworksModel_addOperationEx function
 * @ingroup  COM_AI_RUNTIME
 */

#ifndef NN_API_EX_SHIM_H
#define NN_API_EX_SHIM_H

#include "NeuralNetworksEx.h"
#include "NeuralNetworksLoadHelpers.h"

typedef int (*ANeuralNetworksModel_addOperationEx_fn)(ANeuralNetworksModel *model,
                                                      ANeuralNetworksOperationTypeEx type,
                                                      uint32_t inputCount, const uint32_t *inputs,
                                                      uint32_t outputCount,
                                                      const uint32_t *outputs);

/**
 * @brief Add an extended operation to a model.
 *
 * @param[in] model The model to be modified.
 * @param[in] type The type of extended operation.
 * @param[in] inputCount The number of entries in the inputs array.
 * @param[in] inputs An array of indexes identifying each operand.
 * @param[in] outputCount The number of entries in the outputs array.
 * @param[in] outputs An array of indexes identifying each operand.
 *
 * @note The operands specified by inputs and outputs must have been
 *       previously added by calls to {@link ANeuralNetworksModel_addOperand}.\n
 *       Attempting to modify a model once {@link ANeuralNetworksModel_finish}
 *       has been called will return an error.\n
 *       See {@link ANeuralNetworksModel} for information on multithreaded usage.
 *
 * @return ANEURALNETWORKS_NO_ERROR if successful.
 */

inline int ANeuralNetworksModel_addOperationEx(ANeuralNetworksModel *model,
                                               ANeuralNetworksOperationTypeEx type,
                                               uint32_t inputCount, const uint32_t *inputs,
                                               uint32_t outputCount, const uint32_t *outputs)
{
  LOAD_FUNCTION(ANeuralNetworksModel_addOperationEx);
  EXECUTE_FUNCTION_RETURN(model, type, inputCount, inputs, outputCount, outputs);
}

#endif // NN_API_EX_SHIM_H