1d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin/* 2d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* Copyright (c) 2014, The Linux Foundation. All rights reserved. 3d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* 4d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* Redistribution and use in source and binary forms, with or without modification, are permitted 5d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* provided that the following conditions are met: 6d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* * Redistributions of source code must retain the above copyright notice, this list of 7d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* conditions and the following disclaimer. 8d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* * Redistributions in binary form must reproduce the above copyright notice, this list of 9d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* conditions and the following disclaimer in the documentation and/or other materials provided 10d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* with the distribution. 11d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* * Neither the name of The Linux Foundation nor the names of its contributors may be used to 12d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* endorse or promote products derived from this software without specific prior written 13d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* permission. 14d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* 15d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 18d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 19d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 21d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin*/ 24d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 25d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin/*! @file dump_interface.h 26d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @brief Interface file for dump options provided by display manager. 27d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 28d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin*/ 29d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#ifndef __DUMP_INTERFACE_H__ 30d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define __DUMP_INTERFACE_H__ 31d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 32d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#include <stdint.h> 33d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 34d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#include "sdm_types.h" 35d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 36d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinnamespace sdm { 37d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 38d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin/*! @brief Display dump interface. 39d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 40d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @details This class defines dump methods provided by display manager. 41d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 42d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin*/ 43d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinclass DumpInterface { 44d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin public: 45d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin /*! @brief Method to get dump information in form of a string. 46d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 47d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @details Client shall use this method to get current snapshot of display manager context as a 48d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin formatted string for logging or dumping purposes. 49d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 50d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @param[inout] buffer String buffer allocated by the client. Filled with null terminated dump 51d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin information upon return. 52d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @param[in] length Length of the string buffer. Length shall be offset adjusted if any. 53d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 54d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @return \link DisplayError \endlink 55d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 56d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin @warning Client shall ensure that this interface is not used while a display is being either 57d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin created or destroyed through display core. 58d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin */ 59d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin static DisplayError GetDump(char *buffer, uint32_t length); 60d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 61d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin protected: 62d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin virtual ~DumpInterface() { } 63d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin}; 64d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 65d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin} // namespace sdm 66d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 67d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#endif // __DUMP_INTERFACE_H__ 68d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 69