1 /*
2 * Copyright (c) 2014 - 2015, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 *     * Redistributions of source code must retain the above copyright
8 *       notice, this list of conditions and the following disclaimer.
9 *     * Redistributions in binary form must reproduce the above
10 *       copyright notice, this list of conditions and the following
11 *       disclaimer in the documentation and/or other materials provided
12 *       with the distribution.
13 *     * Neither the name of The Linux Foundation nor the names of its
14 *       contributors may be used to endorse or promote products derived
15 *       from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29 
30 /*! @file sdm_types.h
31   @brief This file contains miscellaneous data types used across display interfaces.
32 */
33 #ifndef __SDM_TYPES_H__
34 #define __SDM_TYPES_H__
35 
36 namespace sdm {
37 
38 /*! @brief This enum represents different error codes that display interfaces may return.
39 */
40 enum DisplayError {
41   kErrorNone,             //!< Call executed successfully.
42   kErrorUndefined,        //!< An unspecified error has occured.
43   kErrorNotSupported,     //!< Requested operation is not supported.
44   kErrorPermission,       //!< Operation is not permitted in current state.
45   kErrorVersion,          //!< Client is using advanced version of interfaces and calling into an
46                           //!< older version of display library.
47   kErrorDataAlignment,    //!< Client data structures are not aligned on naturual boundaries.
48   kErrorInstructionSet,   //!< 32-bit client is calling into 64-bit library or vice versa.
49   kErrorParameters,       //!< Invalid parameters passed to a method.
50   kErrorFileDescriptor,   //!< Invalid file descriptor.
51   kErrorMemory,           //!< System is running low on memory.
52   kErrorResources,        //!< Not enough hardware resources available to execute call.
53   kErrorHardware,         //!< A hardware error has occured.
54   kErrorTimeOut,          //!< The operation has timed out to prevent client from waiting forever.
55   kErrorShutDown,         //!< Driver is processing shutdown sequence
56 };
57 
58 /*! @brief This structure is defined for client and library compatibility check purpose only. This
59   structure is used in SDM_VERSION_TAG definition only. Client should not refer it directly for
60   any purpose.
61 */
62 struct SDMCompatibility {
63   char c1;
64   int i1;
65   char c2;
66   int i2;
67 };
68 
69 }  // namespace sdm
70 
71 #endif  // __SDM_TYPES_H__
72 
73