Home | History | Annotate | Download | only in core
      1 /*
      2 * Copyright (c) 2014 - 2017, 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   kErrorPerfValidation,   //!< Bandwidth or Clock requirement validation failure.
     57   kErrorNoAppLayers,      //!< No App layer(s) in the draw cycle.
     58   kErrorNotValidated,     //!< Draw cycle has not been validated.
     59 };
     60 
     61 /*! @brief This structure is defined for client and library compatibility check purpose only. This
     62   structure is used in SDM_VERSION_TAG definition only. Client should not refer it directly for
     63   any purpose.
     64 */
     65 struct SDMCompatibility {
     66   char c1;
     67   int i1;
     68   char c2;
     69   int i2;
     70 };
     71 
     72 }  // namespace sdm
     73 
     74 #endif  // __SDM_TYPES_H__
     75 
     76