-SWAP Protocol 4.2
-=================
+.. toctree::
+ :maxdepth: 2
+ :caption: Contents:
+
+**SWAP Protocol 4.2**
.. contents::
+ :depth: 4
+
+.. sectnum::
-==================
- Control channel
-==================
+***************
+Control channel
+***************
-1. Basic control message format
--------------------------------
+Basic control message format
+============================
+------------+----------+---------------+-----------------------+
| name | type | value | description |
| payload | variable | variable | payload data |
+------------+----------+---------------+-----------------------+
-\* all strings end with '\\0'
-
-2. Control message list
------------------------
+Control message list
+====================
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| message ID | value | payload | type | description |
| MSG\_VERSION | 0x0001 | no payload | | request current protocol version |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| MSG\_START | 0x0002 | | applications count, | | uint32, | | count must be no less than 1. |
-| | | | ApplicationInst list | | array, | | ApplicationInst: target application to launch and trace, see 2.1. |
+| | | | ApplicationInst list | | array, | | ApplicationInst: target application to launch and trace, see :ref:`app_inst` |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| MSG\_STOP | 0x0003 | no payload | | stop instrumentation |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
-| MSG\_CONFIG | 0x0004 | Configuration | struct | send profiling configuration, see 2.5, it can be sent many times during instrumentation |
+| MSG\_CONFIG | 0x0004 | Configuration | struct | send profiling configuration, see :ref:`configuration`, it can be sent many times during instrumentation |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| MSG\_BINARY\_INFO | 0x0005 | | count of binaries, | | uint32, | | count must be no less than 1. |
-| | | | list of binaries | | array | | binaries: see 2.4 |
+| | | | list of binaries | | array | | binaries: see :ref:`binaries` |
| | | | | | Request binaries information such as local binary path, checking PIE built, and md5sum. |
| | | | | It doesn’t mean the binaries will be traced. |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
-| MSG\_GET\_TARGET\_INFO | 0x0007 | no payload | | request target information, see 3.3 |
+| MSG\_GET\_TARGET\_INFO | 0x0007 | no payload | | request target information, see :ref:`target_info` |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| MSG\_SWAP\_INST\_ADD | 0x0008 | | LibraryInst count, | | uint32, | | count must be no less than 1. |
-| | | | LibraryInst list | | array | | LibraryInst: see 2.3. |
+| | | | LibraryInst list | | array | | LibraryInst: see :ref:`lib_inst` |
| | | | | | Add libraries to instrumented binaries list. It can be sent anytime, both before and after MSG\_START. |
| | | | | This information is kept until the da\_manager is disconnected. |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
-| MSG\_SWAP\_INST\_REMOVE | 0x0009 | | LibraryInst count, | | uint32, | | count must be no less than 1. LibraryInst: see 2.3. |
-| | | | LibraryInst list | | array | | Remove libraries from instrumented binaries list. It can be sent anytime, both before and after MSG\_START. |
+| MSG\_SWAP\_INST\_REMOVE | 0x0009 | | LibraryInst count, | | uint32, | | count must be no less than 1. |
+| | | | LibraryInst list | | array | | LibraryInst: see :ref:`lib_inst` |
+| | | | | | Remove libraries from instrumented binaries list. It can be sent anytime, both before and after MSG\_START. |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
-| MSG\_GET\_PROBEMAP | 0x000A | no payload | | request instrumented API map, see 3.4 |
+| MSG\_GET\_PROBEMAP | 0x000A | no payload | | request instrumented API map, see :ref:`api_map` |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| MSG\_KEEP\_ALIVE | 0x000F | no payload | | ping of swap\_daemon |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
| MSG\_GET\_REALPATH | 0x0020 | file path | string | file path string |
+---------------------------------+--------+-------------------------+-----------+-------------------------------------------------------------------------------------------------------------------+
-2.1 ApplicationInst
-```````````````````
+.. _app_inst:
+
+ApplicationInst
+---------------
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
| name | type | value | description |
+==================+==========+========================================+==========================================================================================+
-| application type | uint32 | 0-4 | 01: tizen native UI application |
-| | | | 02: already launched process or system-wide analysis (appID, path is null string "\\0") |
-| | | | 03: common executables |
-| | | | 04: tizen web application |
+| application type | uint32 | 1-4 | | 1: tizen native UI application |
+| | | | | 2: already launched process or system-wide analysis (appID, path is null string "\\0") |
+| | | | | 3: common executables |
+| | | | | 4: tizen web application |
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
-| application ID | string | AppID, PID, "\\0" | depends on the target application type |
-| | | | 01: AppID, pkg\_id.app\_name, the standard tizen native application ID |
-| | | | $> launch\_app AppID \_\_AUL\_SDK\_\_ DYNAMIC\_ANALYSIS |
-| | | | 02: PID, "\\0" for system-wide analysis |
-| | | | 03: "\\0" |
-| | | | 04: AppID, pkg\_id.app\_name, the standard tizen web application ID |
-| | | | $> wrt-launcher --start AppID |
+| application ID | string | AppID, PID, "\\0" | | depends on the target application type |
+| | | | | 1: AppID, pkg\_id.app\_name, the standard tizen native application ID |
+| | | | | $> launch\_app AppID \_\_AUL\_SDK\_\_ DYNAMIC\_ANALYSIS |
+| | | | | 2: PID, "\\0" for system-wide analysis |
+| | | | | 3: "\\0" |
+| | | | | 4: AppID, pkg\_id.app\_name, the standard tizen web application ID |
+| | | | | $> wrt-launcher --start AppID |
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
| executable path | string | name or full path of aplication binary | "\\0" for system-wide analysis |
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
| count of | uint32 | count of array | count of FunctionInst objects. It should be 0 if function profiling feature is disabled. |
| functions | | | |
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
-| FunctionInst List| array | array of FunctionInst to instrument | see 2.2 |
+| FunctionInst List| array | array of FunctionInst to instrument | see :ref:`function_inst` |
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
-| setup data | uint64 | data | depends on the target application type |
-| | | | 01: main address(8byte) |
-| | | | 02, 03, 04... : nothing |
+| setup data | uint64 | data | | depends on the target application type |
+| | | | | 1: main address(8byte) |
+| | | | | 2, 3, 4 : nothing |
+------------------+----------+----------------------------------------+------------------------------------------------------------------------------------------+
-2.2 FunctionInst
-````````````````
+.. _function_inst:
+
+FunctionInst
+------------
+-------------------+---------+-----------------------+------------------------------------------------------------------------------+
| name | type | value | description |
| | | | | 2 – preloaded API, |
| | | | | 3 – web application profiling |
+-------------------+---------+-----------------------+------------------------------------------------------------------------------+
-| probe data | variable| depends on probe type | specified probe data, see 2.2.1, 2.2.2 |
+| probe data | variable| depends on probe type | specified probe data, see :ref:`common_probe`, :ref:`fbi_probe` |
+-------------------+---------+-----------------------+------------------------------------------------------------------------------+
-2.2.1 Common probe
-''''''''''''''''''
+.. _common_probe:
+
+Common probe
+^^^^^^^^^^^^
+----------+----------+-----------------+-------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+==========+==========+=================+=============================================================================================================+
-| args | string | array of types | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool) + end'\\0' |
+| args | string | array of types | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool) + end "\\0" |
+----------+----------+-----------------+-------------------------------------------------------------------------------------------------------------+
| return | char | return type | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string) |
| | | | v(1, void), n(1,no type) |
+----------+----------+-----------------+-------------------------------------------------------------------------------------------------------------+
-2.2.2 Function body instrumentation probe
-'''''''''''''''''''''''''''''''''''''''''
+.. _fbi_probe:
+
+Function body instrumentation probe
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+-----------------------+-----------------+--------------+----------------------------+
| name | type | value | description |
+=======================+=================+==============+============================+
| fbi variables count | uint8 | any number | count of elements in array |
+-----------------------+-----------------+--------------+----------------------------+
-| fbi variables array | array | variables | see 2.2.3 |
+| fbi variables array | array | variables | see :ref:`fbi_var` |
+-----------------------+-----------------+--------------+----------------------------+
-2.2.3 Function body instrumentation variable
-''''''''''''''''''''''''''''''''''''''''''''
+.. _fbi_var:
+
+Function body instrumentation variable
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+-----------------+--------------+-----------------+-----------------------------------------------------------------------------------------+
| name | type | value | description |
+-----------------+--------------+-----------------+-----------------------------------------------------------------------------------------+
| steps count | uint8 | any number | count of elements in steps array |
+-----------------+--------------+-----------------+-----------------------------------------------------------------------------------------+
-| steps array | array | steps | see 2.2.4 |
+| steps array | array | steps | see :ref:`fbi_step` |
+-----------------+--------------+-----------------+-----------------------------------------------------------------------------------------+
-2.2.4 Function body instrumentation variable step
-'''''''''''''''''''''''''''''''''''''''''''''''''
+.. _fbi_step:
+
+Function body instrumentation variable step
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+---------------+-------+---------------+----------------------------------------------------------------+
| name | type | value | description |
| memory offset | uint64| offset | data offset |
+---------------+-------+---------------+----------------------------------------------------------------+
-2.3 LibraryInst
-```````````````
+.. _lib_inst:
+
+LibraryInst
+-----------
+--------------------+----------+-------------------------------------+---------------------------------------------+
| name | type | value | description |
| count of Functions | int | count of array | count of FunctionInst objects, |
| | | | In MSG\_SWAP\_INST\_REMOVE, this should be 0|
+--------------------+----------+-------------------------------------+---------------------------------------------+
-| FunctionInst List | array | array of FunctionInst to instrument | see 2.2 |
+| FunctionInst List | array | array of FunctionInst to instrument | see :ref:`function_inst` |
+--------------------+----------+-------------------------------------+---------------------------------------------+
-2.4 List of Binaries
-````````````````````
+.. _binaries:
+
+Binaries
+--------
+------------------+----------+----------------------------+---------------------------------------------------+
| name | type | value | description |
+==================+==========+============================+===================================================+
-| binaries list | array of | \\0' separated string list | list of full paths of the executable binaries |
-| | strings | | on the target device |
+| binaries list | array of | "\\0" separated | list of full paths of the executable binaries |
+| | strings | string list | on the target device |
+------------------+----------+----------------------------+---------------------------------------------------+
-2.5 Configuration
-`````````````````
+.. _configuration:
+
+Configuration
+-------------
+---------------------+----------------+-------------------------+-------------------------------------------------------------------------------+
| name | type | value | description |
+=====================+================+=========================+===============================================================================+
-| use\_features | 2 * uint64 | enabled features | on & off each features, see 2.3.1 feature list |
+| use\_features | 2 * uint64 | enabled features | on & off each features, see :ref:`features` |
+---------------------+----------------+-------------------------+-------------------------------------------------------------------------------+
| system trace period | uint32 | millisecond (10~1000ms) | set the frequency of the MSG\_SYSTEM log |
+---------------------+----------------+-------------------------+-------------------------------------------------------------------------------+
| sampling period | uint32 | millisecond (1~100ms) | set the frequency of the function sampling |
+---------------------+----------------+-------------------------+-------------------------------------------------------------------------------+
-2.5.1 Feature list
-''''''''''''''''''
+.. _features:
+
+Features
+--------
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
| feature name | value | description | affected data messages |
+====================================+=================+==================================================================+=====================================+
-| functions | 0x0004 | user space functions | MSG\_FUNCTION\_ENTRY, |
-| | | | MSG\_FUNCTION\_EXIT |
+| functions | 0x0004 | user space functions | :ref:`msg_function_entry`, |
+| | | | :ref:`msg_function_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| memory allocation | 0x0008 | direct memory allocation API calls | MSG\_PROBE\_MEMORY |
+| memory allocation | 0x0008 | direct memory allocation API calls | :ref:`msg_probe_memory` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| file API | 0x0010 | direct file API calls | MSG\_PROBE\_FILE |
+| file API | 0x0010 | direct file API calls | :ref:`msg_probe_resource` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| thread API | 0x0020 | direct thread API calls | MSG\_PROBE\_THREAD |
+| thread API | 0x0020 | direct thread API calls | :ref:`msg_probe_thread` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| screenshot | 0x0080 | screenshot taking | MSG\_PROBE\_SCREENSHOT |
+| screenshot | 0x0080 | screenshot taking | :ref:`msg_probe_screenshot` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| user events | 0x0100 | user events of Touch, Gesture, Orientation, Key | MSG\_PROBE\_UIEVENT |
+| user events | 0x0100 | user events of Touch, Gesture, Orientation, Key | :ref:`msg_probe_uievent` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| syscall file | 0x0400 | file operation syscalls | MSG\_SYSCALL\_ENTRY, |
-| | | | MSG\_SYSCALL\_EXIT |
+| syscall file | 0x0400 | file operation syscalls | :ref:`msg_syscall_entry` |
+| | | | :ref:`msg_syscall_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| syscall ipc | 0x0800 | IPC syscalls | MSG\_SYSCALL\_ENTRY, |
-| | | | MSG\_SYSCALL\_EXIT |
+| syscall ipc | 0x0800 | IPC syscalls | :ref:`msg_syscall_entry` |
+| | | | :ref:`msg_syscall_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| syscall process | 0x1000 | process syscalls | MSG\_SYSCALL\_ENTRY, |
-| | | | MSG\_SYSCALL\_EXIT |
+| syscall process | 0x1000 | process syscalls | :ref:`msg_syscall_entry` |
+| | | | :ref:`msg_syscall_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| syscall signal | 0x2000 | signal syscalls | MSG\_SYSCALL\_ENTRY, |
-| | | | MSG\_SYSCALL\_EXIT |
+| syscall signal | 0x2000 | signal syscalls | :ref:`msg_syscall_entry` |
+| | | | :ref:`msg_syscall_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| syscall network | 0x4000 | network syscalls | MSG\_SYSCALL\_ENTRY, |
-| | | | MSG\_SYSCALL\_EXIT |
+| syscall network | 0x4000 | network syscalls | :ref:`msg_syscall_entry` |
+| | | | :ref:`msg_syscall_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| syscall desc | 0x8000 | descriptor syscalls | MSG\_SYSCALL\_ENTRY, |
-| | | | MSG\_SYSCALL\_EXIT |
+| syscall desc | 0x8000 | descriptor syscalls | :ref:`msg_syscall_entry` |
+| | | | :ref:`msg_syscall_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| context switch | 0x10000 | context switch tracing | MSG\_CONTEXT\_SWITCH\_ENTRY, |
-| | | | MSG\_CONTEXT\_SWITCH\_EXIT |
+| context switch | 0x10000 | context switch tracing | :ref:`msg_context_switch` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| network API | 0x20000 | network API (socket, bind, accept, listen, etc) | MSG\_PROBE\_NETWORK |
+| network API | 0x20000 | network API (socket, bind, accept, listen, etc) | :ref:`msg_probe_network` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| openGL API | 0x40000 | openGL API (glFlush, glClear, glViewport, etc) | MSG\_PROBE\_GLES20 |
+| openGL API | 0x40000 | openGL API (glFlush, glClear, glViewport, etc) | :ref:`msg_probe_gl` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| function sampling | 0x80000 | function sampling | MSG\_FBI |
+| function sampling | 0x80000 | function sampling | :ref:`msg_fbi` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| memory allocation nofilter | 0x10000000 | all systemwide memory allocation API calls | MSG\_PROBE\_MEMORY |
+| memory allocation nofilter | 0x10000000 | all systemwide memory allocation API calls | :ref:`msg_probe_memory` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| file API nofilter | 0x20000000 | all systemwide file API calls | MSG\_PROBE\_FILE |
+| file API nofilter | 0x20000000 | all systemwide file API calls | :ref:`msg_probe_resource` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| thread API nofilter | 0x40000000 | all systemwide thread API calls | MSG\_PROBE\_THREAD |
+| thread API nofilter | 0x40000000 | all systemwide thread API calls | :ref:`msg_probe_thread` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| network API nofilter | 0x100000000 | all systemwide network API calls | MSG\_PROBE\_NETWORK |
+| network API nofilter | 0x100000000 | all systemwide network API calls | :ref:`msg_probe_network` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| openGL API nofilter | 0x200000000 | all systemwide openGL API calls | MSG\_PROBE\_GLES20 |
+| openGL API nofilter | 0x200000000 | all systemwide openGL API calls | :ref:`msg_probe_gl` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system cpu | 0x1000000000 | CPU core load, frequency | MSG_SYSTEM |
+| system cpu | 0x1000000000 | CPU core load, frequency | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system memory | 0x2000000000 | system memory using | MSG_SYSTEM |
+| system memory | 0x2000000000 | system memory using | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system process | 0x4000000000 | profiled processes information (VSS, PSS, RSS, etc) | MSG_SYSTEM |
+| system process | 0x4000000000 | profiled processes information (VSS, PSS, RSS, etc) | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system thread load | 0x8000000000 | thread load of profiled processes | MSG_SYSTEM |
+| system thread load | 0x8000000000 | thread load of profiled processes | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system processes load | 0x10000000000 | non instrumented process load | MSG_SYSTEM |
+| system processes load | 0x10000000000 | non instrumented process load | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system disk | 0x20000000000 | /proc/diskstats reads, sectors reads and writes | MSG_SYSTEM |
+| system disk | 0x20000000000 | /proc/diskstats reads, sectors reads and writes | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system network | 0x40000000000 | network send/recv size | MSG_SYSTEM |
+| system network | 0x40000000000 | network send/recv size | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system device | 0x80000000000 | WiFi, BT, GPS, brightness, camera, sound, audio, voltage and etc | MSG_SYSTEM |
+| system device | 0x80000000000 | WiFi, BT, GPS, brightness, camera, sound, audio, voltage and etc | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system energy | 0x100000000000 | energy usage (total, per devices, by application) | MSG_SYSTEM |
+| system energy | 0x100000000000 | energy usage (total, per devices, by application) | :ref:`msg_system` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| native application startup | 0x200000000000 | application launching stage | MSG\_APP\_SETUP\_STAGE |
+| native application startup | 0x200000000000 | application launching stage | :ref:`msg_app_setup_stage` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| web application | 0x400000000000 | web function profiling feature | MSG\_WEB\_SAMPLING |
+| web application | 0x400000000000 | web function profiling feature | :ref:`msg_web_sampling` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| web application startup | 0x800000000000 | web startup profiling feature | MSG\_WEB\_APP\_SETUP\_STAGE |
+| web application startup | 0x800000000000 | web startup profiling feature | :ref:`msg_web_app_setup_stage` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| system file activity | 0x1000000000000 | function entry/exit for file syscalls | MSG\_FILE\_FUNCTION\_ENTRY |
-| | | | MSG\_FILE\_FUNCTION\_EXIT |
+| system file activity | 0x1000000000000 | function entry/exit for file syscalls | :ref:`msg_file_func_entry`, |
+| | | | :ref:`msg_file_func_exit` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| uihv | 0x2000000000000 | load user interface hierarchy viewer library | MSG\_UI\_HIERARCHY |
+| uihv | 0x2000000000000 | load user interface hierarchy viewer library | :ref:`msg_ui_hierarchy` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-| LSAN | 0x4000000000000 | enable LeakSanitizer | MSG\_LSAN |
+| LSAN | 0x4000000000000 | enable LeakSanitizer | :ref:`msg_lsan` |
+------------------------------------+-----------------+------------------------------------------------------------------+-------------------------------------+
-3. response message
--------------------
+
+Response message
+================
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| message ID | value | payload (first 4 bytes) | payload (rest bytes) | description |
| MSG\_SWAP\_INST\_REMOVE\_ACK | 0x1009 | return ID | no payload | instrumentation remove message received |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| MSG\_GET\_PROBEMAP\_ACK | 0x100A | return ID | count of APIs, | reply API map: count is uint32, |
-| | | | array of API map | see API map structure in 3.4 |
+| | | | array of API map | see :ref:`api_map` |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| MSG\_KEEP\_ALIVE\_ACK | 0x100F | return ID | no payload | ping message received |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| MSG\_GET\_SCREENSHOT\_ACK | 0x1010 | return ID | no payload | screenshot request received |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| MSG\_GET\_PROCESS\_ADD\_INFO\_ACK | 0x1011 | return ID | count of process ids, | reply processes information: count is uint32, |
-| | | | array of process addition info | see process info structure in 3.5 |
+| | | | array of process addition info | see :ref:`process_additional_info` |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| MSG\_GET\_UI\_HIERARCHY\_ACK | 0x1012 | return ID | no payload | hierarchy request received |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
| MSG\_GET\_UI\_HIERARCHY\_CANCEL\_ACK | 0X1014 | return ID | no payload | hierarchy cancel request received |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
-| MSG\_GET\_REALPATH\_ACK | 0x1020 | return ID | real path of given file | reply file path on target, '\\0' if file doesn't exist |
+| MSG\_GET\_REALPATH\_ACK | 0x1020 | return ID | real path of given file | reply file path on target, "\\0" if file doesn't exist |
+--------------------------------------+--------+-------------------------+--------------------------------+--------------------------------------------------------+
+.. _return_id:
-3.1 return ID: 4 bytes integer
-``````````````````````````````
+Return ID: 4 bytes integer
+--------------------------
+-------+--------------------------------------------------------------+
| value | description |
+-------+--------------------------------------------------------------+
| -205 | the message is too long to process for the swap manager |
+-------+--------------------------------------------------------------+
-| -206 | <target> is not found |
+| -206 | target is not found |
+-------+--------------------------------------------------------------+
| -207 | ui object is not found |
+-------+--------------------------------------------------------------+
| -999 | unknown error |
+-------+--------------------------------------------------------------+
-3.2 Binary ack
-``````````````
+.. _binary_ack:
+
+Binary ack
+----------
+-------------------+--------+-------+-------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| md5sum | string | md5 | md5sum value of the binary on the target |
+-------------------+--------+-------+-------------------------------------------------------------------------------------------------------------+
-3.3 target information
-``````````````````````
+.. _target_info:
+
+Target information
+------------------
+------------------------------+----------+----------------------------+------------------------------+
| name | type | value | description |
| number of CPU cores | uint32 | number | count of CPU cores on target |
+------------------------------+----------+----------------------------+------------------------------+
-3.4 API map
-```````````
+.. _api_map:
+
+API map
+-------
+----------+--------+-------+------------------------+
| name | type | value | description |
| API name | string | name | corresponding API name |
+----------+--------+-------+------------------------+
-3.5 process additional info
-```````````````````````````
+.. _process_additional_info:
+
+Process additional info
+-----------------------
+-------------------+--------+-------+------------------------------------------------+
| name | type | value | description |
| command line name | string | name | command line name of corresponding pid process |
+-------------------+--------+-------+------------------------------------------------+
-===============
+************
Data channel
-===============
+************
-1. Basic data message format
-----------------------------
+Basic data message format
+=========================
+-----------------+--------------+---------------+-----------------------------------------------------------------------------------+
| name | type | value | description |
| payload | variable | variable | message-specific data |
+-----------------+--------------+---------------+-----------------------------------------------------------------------------------+
-2. Data messages
-----------------
+Data messages
+=============
-2.1 Data message list
-`````````````````````
+Data message list
+-----------------
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
| message ID | value | message count | message frequency | description |
+=============================+========+===========================+===================+=================================================================================+
-| MSG\_PROCESS\_INFO | 0x0001 | count of target processes | irregular | target process info log, see 2.2 |
+| MSG\_PROCESS\_INFO | 0x0001 | count of target processes | irregular | target process info log, see :ref:`msg_process_info` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_TERMINATE | 0x0002 | count of target processes | irregular | termination happened, see 2.6 |
+| MSG\_TERMINATE | 0x0002 | count of target processes | irregular | termination happened, see :ref:`msg_terminate` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_ERROR | 0x0003 | any number | irregular | error happened, see 2.7 |
+| MSG\_ERROR | 0x0003 | any number | irregular | error happened, see :ref:`msg_error` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_SAMPLE | 0x0004 | any number | 10ms | regular sample message, see 2.3 |
+| MSG\_SAMPLE | 0x0004 | any number | 10ms | regular sample message, see :ref:`msg_sample` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_SYSTEM | 0x0005 | any number | 10~1000ms | regular system state message, first message time is tracing start time, see 2.4 |
+| MSG\_SYSTEM | 0x0005 | any number | 10~1000ms | regular system state message from tracing start time, see :ref:`msg_system` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_FUNCTION\_ENTRY | 0x0008 | any number | irregular | function instrumentation log, see 2.9 |
+| MSG\_FUNCTION\_ENTRY | 0x0008 | any number | irregular | function instrumentation log, see :ref:`msg_function_entry` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_FUNCTION\_EXIT | 0x0009 | any number | irregular | function instrumentation log, see 2.10 |
+| MSG\_FUNCTION\_EXIT | 0x0009 | any number | irregular | function instrumentation log, see :ref:`msg_function_exit` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_SYSCALL\_ENTRY | 0x000A | any number | irregular | system call function entry log, see 2.11 |
+| MSG\_SYSCALL\_ENTRY | 0x000A | any number | irregular | system call function entry log, see :ref:`msg_syscall_entry` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_SYSCALL\_EXIT | 0x000B | any number | irregular | system call function entry log, see 2.12 |
+| MSG\_SYSCALL\_EXIT | 0x000B | any number | irregular | system call function entry log, see :ref:`msg_syscall_exit` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_FILE\_FUNCTION\_ENTRY | 0x000C | any number | irregular | non-target process file system call entry log, see 2.13 |
+| MSG\_FILE\_FUNCTION\_ENTRY | 0x000C | any number | irregular | non-target process file system call entry log, see :ref:`msg_file_func_entry` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_FILE\_FUNCTION\_EXIT | 0x000D | any number | irregular | non-target process file system call entry log, see 2.14 |
+| MSG\_FILE\_FUNCTION\_EXIT | 0x000D | any number | irregular | non-target process file system call entry log, see :ref:`msg_file_func_exit` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
| MSG\_PROCESS\_STATUS\_INFO | 0x000E | any number | irregular | running process has been attached (this message should be sent |
-| | | | | right after MSG\_PROCESS\_INFO), see 2.5 |
+| | | | | right after MSG\_PROCESS\_INFO), see :ref:`msg_process_status_info` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_CONTEXT\_SWITCH\_ENTRY | 0x0010 | any number | irregular | context switch entry log, see 2.15 |
+| MSG\_CONTEXT\_SWITCH\_ENTRY | 0x0010 | any number | irregular | context switch entry log, see :ref:`msg_context_switch` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_CONTEXT\_SWITCH\_EXIT | 0x0011 | any number | irregular | context switch exit log, see 2.15 |
+| MSG\_CONTEXT\_SWITCH\_EXIT | 0x0011 | any number | irregular | context switch exit log, see :ref:`msg_context_switch` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROCESS\_MAP | 0x0012 | any number | irregular | new process mapping occured, see 2.16 |
+| MSG\_PROCESS\_MAP | 0x0012 | any number | irregular | new process mapping occured, see :ref:`msg_process_map` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROCESS\_UNMAP | 0x0013 | any number | irregular | process upmapping occured, see 2.17 |
+| MSG\_PROCESS\_UNMAP | 0x0013 | any number | irregular | process upmapping occured, see :ref:`msg_process_unmap` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_WEB\_SAMPLING | 0x0015 | any number | irregular | web sampling log, see 2.19 |
+| MSG\_WEB\_SAMPLING | 0x0015 | any number | irregular | web sampling log, see :ref:`msg_web_sampling` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_APP\_SETUP\_STAGE | 0x0019 | any number | irregular | application launching stage log, see 2.20 |
+| MSG\_APP\_SETUP\_STAGE | 0x0019 | any number | irregular | application launching stage log, see :ref:`msg_app_setup_stage` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_WEB\_APP\_SETUP\_STAGE | 0x001A | any number | irregular | web application launching stage log, see 2.21 |
+| MSG\_WEB\_APP\_SETUP\_STAGE | 0x001A | any number | irregular | web application launching stage log, see :ref:`msg_web_app_setup_stage` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_FBI | 0x0020 | any number | irregular | function body instrumentation log, see 2.8 |
+| MSG\_FBI | 0x0020 | any number | irregular | function body instrumentation log, see :ref:`msg_fbi` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_UI\_HIERARCHY | 0x0021 | any number | irregular | ui hierarchy info, see 2.22 |
+| MSG\_UI\_HIERARCHY | 0x0021 | any number | irregular | ui hierarchy info, see :ref:`msg_ui_hierarchy` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE | 0x01xx | any number | irregular | resource log, see 2.18 |
+| MSG\_PROBE | 0x01xx | any number | irregular | resource log, see :ref:`msg_probe` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_MEMORY | 0X0101 | any number | irregular | memory API log, see 3.1 |
+| MSG\_PROBE\_MEMORY | 0X0101 | any number | irregular | memory API log, see :ref:`msg_probe_memory` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_UIEVENT | 0X0103 | any number | irregular | ui event resource log, see 3.2 |
+| MSG\_PROBE\_UIEVENT | 0X0103 | any number | irregular | ui event resource log, see :ref:`msg_probe_uievent` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_RESOURCE | 0X0104 | any number | irregular | file API log, see 3.3 |
+| MSG\_PROBE\_RESOURCE | 0X0104 | any number | irregular | file API log, see :ref:`msg_probe_resource` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_LIFECYCLE | 0X0105 | any number | irregular | application lifecycle resource log, see 3.4 |
+| MSG\_PROBE\_LIFECYCLE | 0X0105 | any number | irregular | application lifecycle resource log, see :ref:`msg_probe_lifecycle` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_SCREENSHOT | 0X0106 | any number | irregular | screenshot resource log, see 3.5 |
+| MSG\_PROBE\_SCREENSHOT | 0X0106 | any number | irregular | screenshot resource log, see :ref:`msg_probe_screenshot` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_THREAD | 0X0108 | any number | irregular | thread API log, see 3.6 |
+| MSG\_PROBE\_THREAD | 0X0108 | any number | irregular | thread API log, see :ref:`msg_probe_thread` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_SYNC | 0X0110 | any number | irregular | sync API log, see 3.7 |
+| MSG\_PROBE\_SYNC | 0X0110 | any number | irregular | sync API log, see :ref:`msg_probe_sync` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_NETWORK | 0x0111 | any number | irregular | network API log, see 3.8 |
+| MSG\_PROBE\_NETWORK | 0x0111 | any number | irregular | network API log, see :ref:`msg_probe_network` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_PROBE\_GL | 0x0112 | any number | irregular | openGL API log, see 3.9 |
+| MSG\_PROBE\_GL | 0x0112 | any number | irregular | openGL API log, see :ref:`msg_probe_gl` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-| MSG\_LSAN | 0x0022 | any number | irregular | LSAN log, see 2.22 |
+| MSG\_LSAN | 0x0022 | any number | irregular | LSAN log, see :ref:`msg_lsan` |
+-----------------------------+--------+---------------------------+-------------------+---------------------------------------------------------------------------------+
-2.2 MSG\_PROCESS\_INFO
-``````````````````````
+.. _msg_process_info:
+
+MSG\_PROCESS\_INFO
+------------------
+---------------------------+----------+----------+-------------------------------------------------------------------------------+
| name | type | value | description |
+---------------------------+----------+----------+-------------------------------------------------------------------------------+
| dependent libraries count | uint32 | number | count of elements in dependent libraries array |
+---------------------------+----------+----------+-------------------------------------------------------------------------------+
-| dependent library list | array | array of | see 2.2.1 |
+| dependent library list | array | array of | see :ref:`library` |
| | | objects | |
+---------------------------+----------+----------+-------------------------------------------------------------------------------+
-2.2.1 library object
-''''''''''''''''''''
+.. _library:
+
+Library
+^^^^^^^
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| library path | string | path | only regular file paths (not symbol links). e.g., /usr/lib/libfoo.so.0.0.0 instead of /usr/lib/libfoo.so |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-2.3 MSG\_SAMPLE
-```````````````
+.. _msg_sample:
+
+MSG\_SAMPLE
+-----------
+------------+--------+---------+----------------------------------------+
| name | type | value | description |
| CPU num | uint32 | number | on which CPU the function was executed |
+------------+--------+---------+----------------------------------------+
-2.4 MSG\_SYSTEM
-```````````````
+.. _msg_system:
+
+MSG\_SYSTEM
+-----------
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
| name | type | value | description |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
| count of target processes | uint32 | number | instrumented processes count |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
-| process profiling information | struct | process profiling | see 2.4.1, process info for each instrumented process |
+| process profiling information | struct | process profiling | see :ref:`process_profiling`, process info for each instrumented process |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
| count of the other processes | uint32 | number | the other processes count |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
-| process load | array | array of objects | see 2.4.2 |
+| process load | array | array of objects | see :ref:`process_load` |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
| total used drive | uint32 | number | used flash memory in MBs |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
| application energy usage per devices | array | array of uint32 | energy usage by application for each device in watts |
+----------------------------------------+----------+-----------------------+-----------------------------------------------------------------------------------+
-2.4.1 Process profiling
-'''''''''''''''''''''''
+.. _process_profiling:
+
+Process profiling
+^^^^^^^^^^^^^^^^^
+------------------+--------+-----------------------+-------------------------------------------------+
| name | type | value description |
+------------------+--------+-----------------------+-------------------------------------------------+
| count of threads | uint32 | any number | count of elements in thread load array |
+------------------+--------+-----------------------+-------------------------------------------------+
-| thread load list | array | array of objects | see 2.4.3 |
+| thread load list | array | array of objects | see :ref:`thread_load` |
+------------------+--------+-----------------------+-------------------------------------------------+
-2.4.2 Process load
-''''''''''''''''''
+.. _process_load:
+
+Process load
+^^^^^^^^^^^^
+------------+--------+--------------+----------------------------------------+
| name | type | value | description |
| load | float | float number | process load |
+------------+--------+--------------+----------------------------------------+
-2.4.3 Thread load
-'''''''''''''''''
+.. _thread_load:
+
+Thread load
+^^^^^^^^^^^
+------------+--------+--------------+----------------------------------------+
| name | type | value | description |
| load | float | float number | thread load |
+------------+--------+--------------+----------------------------------------+
-2.5 MSG\_PROCESS\_STATUS\_INFO
-``````````````````````````````
+.. _msg_process_status_info:
+
+MSG\_PROCESS\_STATUS\_INFO
+--------------------------
+--------------------+----------+------------------+------------------------------------------------------------------------+
| name | type | value | description |
+--------------------+----------+------------------+------------------------------------------------------------------------+
| opened files count | uint32 | any number | count of elements in opened files array (0 if file option is disabled) |
+--------------------+----------+------------------+------------------------------------------------------------------------+
-| opened files list | array | array of objects | see 2.5.1 |
-+--------------------+----------+----------+-------+------------------------------------------------------------------------+
+| opened files list | array | array of objects | see :ref:`opened_files` |
++--------------------+----------+------------------+------------------------------------------------------------------------+
+
+.. _opened_files:
-2.5.1 opened files list
-'''''''''''''''''''''''
+Opened files
+^^^^^^^^^^^^
+-----------+--------+----------+---------------------+
| name | type | value | description |
| file path | string | path | file path on target |
+-----------+--------+----------+---------------------+
-2.6 MSG\_TERMINATE
-``````````````````
+.. _msg_terminate:
+
+MSG\_TERMINATE
+--------------
+------+--------+-------+-------------+
| name | type | value | description |
| PID | uint32 | pid | process id |
+------+--------+-------+-------------+
-2.7 MSG\_ERROR
-``````````````
+.. _msg_error:
+
+MSG\_ERROR
+----------
+---------------+--------+-----------------+---------------------+
| name | type | value | description |
| error message | string | message | error description |
+---------------+--------+-----------------+---------------------+
-2.8 MSG\_FBI
-````````````
+.. _msg_fbi:
+
+MSG\_FBI
+--------
+-------------+--------------+-----------+--------------------------------------------------+
| name | type | value | description |
| data | char array | data | target data |
+-------------+--------------+-----------+--------------------------------------------------+
-2.9 MSG\_FUNCTION\_ENTRY
-````````````````````````
+.. _msg_function_entry:
+
+MSG\_FUNCTION\_ENTRY
+--------------------
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| count of args | uint32 | any number | counts of args (type + value pairs) |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| args | string | array of | arg: type (char) + corresponding value |
-| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
| | | args | 04 (FILE) : dentry + fd + file path |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
-2.10 MSG\_FUNCTION\_EXIT
-````````````````````````
+.. _msg_function_exit:
+
+MSG\_FUNCTION\_EXIT
+-------------------
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| CPU num | uint32 | number | on which CPU the function was executed |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| return | string | arg | arg: type (char) + corresponding value |
-| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
-2.11 MSG\_SYSCALL\_ENTRY
-````````````````````````
+.. _msg_syscall_entry:
+
+MSG\_SYSCALL\_ENTRY
+-------------------
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| count of args | uint32 | any number | counts of args (type + value pairs) |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| args | string | array of | arg: type (char) + corresponding value |
-| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
| | | args | 04 (FILE) : dentry + fd + file path |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
-2.12 MSG\_SYSCALL\_EXIT
-```````````````````````
+.. _msg_syscall_exit:
+
+MSG\_SYSCALL\_EXIT
+------------------
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| CPU num | uint32 | number | on which CPU the function was executed |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| return | string | arg | arg: type (char) + corresponding value |
-| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
-2.13 MSG\_FILE\_FUNCTION\_ENTRY
-```````````````````````````````
+.. _msg_file_func_entry:
+
+MSG\_FILE\_FUNCTION\_ENTRY
+--------------------------
+----------------+------------+------------+------------------------------------------------------+
| name | type | value | description |
+----------------+------------+------------+------------------------------------------------------+
| args type | uint32 | 0, 1, 2 | 0 - general info, 1 - open info, 2 - lock info |
+----------------+------------+------------+------------------------------------------------------+
-| args payload | variable | variable | 0: empty, 1: see 2.13.1, 2: see 2.13.2 |
+| args payload | variable | variable | | 0: empty, |
+| | | | | 1: see :ref:`open_info`, |
+| | | | | 2: see :ref:`lock_info` |
+----------------+------------+------------+------------------------------------------------------+
-2.13.1 open info
-''''''''''''''''
+.. _open_info:
+
+open info
+^^^^^^^^^
+----------------+--------+-------+----------------------------------+
| name | type | value | description |
| open file path | string | path | file path to passed by arguments |
+----------------+--------+-------+----------------------------------+
-2.13.2 lock info
-''''''''''''''''
+.. _lock_info:
+
+lock info
+^^^^^^^^^
+--------+--------+---------+------------------------------------------------------------+
| name | type | value | description |
| length | uint64 | size | number of bytes to lock |
+--------+--------+---------+------------------------------------------------------------+
-2.14 MSG\_FILE\_FUNCTION\_EXIT
-``````````````````````````````
+.. _msg_file_func_exit:
+
+MSG\_FILE\_FUNCTION\_EXIT
+-------------------------
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| TID | uint32 | tid | thread id |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| return | string | arg | arg: type (char) + corresponding value |
-| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
-2.15 MSG\_CONTEXT\_SWITCH\_ENTRY, MSG\_CONTEXT\_SWITCH\_EXIT
-````````````````````````````````````````````````````````````
+.. _msg_context_switch:
+
+MSG\_CONTEXT\_SWITCH\_ENTRY, MSG\_CONTEXT\_SWITCH\_EXIT
+-------------------------------------------------------
+-------------+--------+---------+--------------------------------------------------------+
| name | type | value | description |
| CPU num | uint32 | number | on which CPU the function was executed |
+-------------+--------+---------+--------------------------------------------------------+
-2.16 MSG\_PROCESS\_MAP
-``````````````````````
+.. _msg_process_map:
+
+MSG\_PROCESS\_MAP
+-----------------
+------------------+--------+---------+--------------------------------------------------------------------------------------------------+
| name | type | value | description |
| library path | string | path | library path on target |
+------------------+--------+---------+--------------------------------------------------------------------------------------------------+
-2.17 MSG\_PROCESS\_UNMAP
-````````````````````````
+.. _msg_process_unmap:
+
+MSG\_PROCESS\_UNMAP
+-------------------
+------------------+--------+---------+--------------------------------------------------------------------------------------------------+
| name | type | value | description |
| highest address | uint64 | pointer | upper boundary address of executable in /proc/pid/maps file |
+------------------+--------+---------+--------------------------------------------------------------------------------------------------+
-2.18 MSG\_PROBE (see 'Probe log' worksheet for each probe message)
-``````````````````````````````````````````````````````````````````
+.. _msg_probe:
+
+MSG\_PROBE
+----------
+
+See `Probe log` for details of each probe message.
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| count of args | uint32 | any number | counts of args (type + value pairs) |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| args | string | array of | arg: type (char) + corresponding value |
-| | | args | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | args | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| return | string | arg | arg: type (char) + corresponding value |
-| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with '\\0') |
+| | | | type: c (1, char), d(4, int), x(8, long), p(8, pointer), f(4, float), w(8, double), b(1, bool), s(string end with "\\0") |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| errno | uint64 | number | error number |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
| original func addr | uint64 | pointer | original function address |
+---------------------+------------+------------+--------------------------------------------------------------------------------------------------------------------------+
-2.19 MSG\_WEB\_SAMPLING
-```````````````````````
+.. _msg_web_sampling:
+
+MSG\_WEB\_SAMPLING
+------------------
+----------------------+---------+-------+----------------------------+
| name | type | value | description |
| function url | string | url | source code function url |
+----------------------+---------+-------+----------------------------+
-2.20 MSG\_APP\_SETUP\_STAGE
-```````````````````````````
+.. _msg_app_setup_stage:
+
+MSG\_APP\_SETUP\_STAGE
+----------------------
+-------------+---------+--------+--------------------------------------------------------------------------------------+
| name | type | value | description |
| end time | uint64 | time | end setup time in (uint32 seconds << 32) + uint32 nanoseconds |
+-------------+---------+--------+--------------------------------------------------------------------------------------+
-2.21 MSG\_WEB\_APP\_SETUP\_STAGE
-````````````````````````````````
+.. _msg_web_app_setup_stage:
+
+MSG\_WEB\_APP\_SETUP\_STAGE
+---------------------------
+-------------+---------+--------+--------------------------------------------------------------------------------------+
| name | type | value | description |
| path | string | path | resource path if wsp id = 1, otherwise there is nothing |
+-------------+---------+--------+--------------------------------------------------------------------------------------+
-2.22 MSG\_LSAN
-``````````````
+.. _msg_lsan:
+
+MSG\_LSAN
+---------
+------------------+--------+---------+--------------------------------------------------------------------------------------------------+
| name | type | value | description |
| caller addr | uint64 | 0 | used by SWAP internally, it is always 0 |
+------------------+--------+---------+--------------------------------------------------------------------------------------------------+
-2.23 MSG\_UI\_HIERARCHY
-```````````````````````
+.. _msg_ui_hierarchy:
+
+MSG\_UI\_HIERARCHY
+------------------
-+-----------+--------+-------+----------------------------------------------------------------+
-| name | type | value | description |
-+===========+========+=======+================================================================+
-| file path | string | path | file contains binary stream of ui object info list, see 2.23.1 |
-+-----------+--------+-------+----------------------------------------------------------------+
++-----------+--------+-------+------------------------------------------------------------------------------------+
+| name | type | value | description |
++===========+========+=======+====================================================================================+
+| file path | string | path | file contains binary stream of ui object info list, see :ref:`ui_object_info_list` |
++-----------+--------+-------+------------------------------------------------------------------------------------+
-2.23.1 ui object info list
-''''''''''''''''''''''''''
+.. _ui_object_info_list:
+
+ui object info list
+^^^^^^^^^^^^^^^^^^^
+---------------------+--------------+------------------+-----------------------------------------------------+
| name | type | value | description |
+---------------------+--------------+------------------+-----------------------------------------------------+
| count of ui objects | uint32 | any number | count of elements in ui objects array |
+---------------------+--------------+------------------+-----------------------------------------------------+
-| ui objects array | array | array of objects | see 2.23.2 |
+| ui objects array | array | array of objects | see :ref:`ui_object` |
+---------------------+--------------+------------------+-----------------------------------------------------+
-2.23.2 ui object
-''''''''''''''''
+.. _ui_object:
+
+ui object
+^^^^^^^^^
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
| object category | byte | 1-3 | 0x01 - Evas, 0x02 - Elementary, 0x03 - Edje |
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
-| object type code | uint32 | number | see 2.23.3 |
+| object type code | uint32 | number | see :ref:`ui_object_code` |
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
| object type name | string | variable | ui object type name like "elm\_button" |
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
| parent object address | uint64 | pointer | parent object address is needed to make the UI Hierarchy, if it's a root object, this value is 0. |
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
-| properties | properties | variable | properties of a ui object, see 2.23.4 |
+| properties | properties | variable | properties of a ui object, see :ref:`ui_object_properties` |
+-------------------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------+
-2.23.3 code of ui object
-''''''''''''''''''''''''
+.. _ui_object_code:
+
+ui object code
+^^^^^^^^^^^^^^
+--------+-------------------------------+
| value | description |
| 0x0309 | background |
+--------+-------------------------------+
-2.23.4 properties of a UI Object
-''''''''''''''''''''''''''''''''
+.. _ui_object_properties:
+
+ui object properties
+^^^^^^^^^^^^^^^^^^^^
+--------------------------------+------------+------------+-----------------------------------------------------------------------+
| name | type | value | description |
+================================+============+============+=======================================================================+
-| common properties | struct | properties | see 6.1.1 |
+| common properties | struct | properties | see :ref:`evas_properties` |
+--------------------------------+------------+------------+-----------------------------------------------------------------------+
-| category specific properties | struct | properties | additional properties according to object category, see 6.1.2, 6.1.3 |
+| category specific properties | struct | properties | additional properties according to object category, |
+| | | | see :ref:`edje_properties`, :ref:`elm_properties` |
+--------------------------------+------------+------------+-----------------------------------------------------------------------+
-| type specific properties | struct | properties | additional properties according to object type, see 6.2, 6.3 |
+| type specific properties | struct | properties | additional properties according to object type, |
+| | | | see :ref:`evas_subtypes`, :ref:`elm_subtypes` |
+--------------------------------+------------+------------+-----------------------------------------------------------------------+
-3. Probe log
-------------
+Probe log
+=========
+
+Basic probe message format is presented in :ref:`msg_probe`.
-Basic probe message format is presented in 2.18.
+.. _msg_probe_memory:
-3.1. MSG\_PROBE\_MEMORY
-```````````````````````
+MSG\_PROBE\_MEMORY
+------------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| address | uint64 | pointer | memory address |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.2. MSG\_PROBE\_UIEVENT 0X3003
-```````````````````````````````
+.. _msg_probe_uievent:
+
+MSG\_PROBE\_UIEVENT
+-------------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+==================+========+==========+==============================================================================================================+
-| event type | uint32 | number | see 3.2.1 |
+| event type | uint32 | number | see :ref:`ui_event_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| detail type | uint32 | number | see 3.2.2 |
+| detail type | uint32 | number | see :ref:`ui_event_detail_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| x | uint32 | number | x axis position on screen |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| info2 | uint32 | number | additional info, depends on event type and detail type |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.2.1. UI event types
-'''''''''''''''''''''
+.. _ui_event_types:
+
+ui event types
+^^^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| \_EVENT\_GESTURE\_MOMENTUM | 14 |
+--------------------------------------------------+-----------+
-3.2.2. UI detail types
-''''''''''''''''''''''
+.. _ui_event_detail_types:
+
+ui detail types
+^^^^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| \_OS\_LANDSCAPE\_REVERSE | 4 |
+--------------------------------------------------+-----------+
-3.3. MSG\_PROBE\_RESOURCE
-`````````````````````````
+.. _msg_probe_resource:
+
+MSG\_PROBE\_RESOURCE
+--------------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| fd | uint64 | number | file descriptor |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| fd api type | uint32 | number | see 3.3.1 |
+| fd api type | uint32 | number | see :ref:`file_api_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| file size | uint64 | size | file size |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| file path | string | path | file path on target |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.3.1. File API types
-'''''''''''''''''''''
+.. _file_api_types:
+
+File API types
+^^^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| FD\_API\_LOCK\_RELEASE | 16 |
+--------------------------------------------------+-----------+
-3.4. MSG\_PROBE\_LIFECYCLE
-``````````````````````````
+.. _msg_probe_lifecycle:
+
+MSG\_PROBE\_LIFECYCLE
+---------------------
Nothing.
-3.5. MSG\_PROBE\_SCREENSHOT
-```````````````````````````
+.. _msg_probe_screenshot:
+
+MSG\_PROBE\_SCREENSHOT
+----------------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
| angle | uint32 | number | screenshot orientation, rotation angle: 0, 90, 180, 270 |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.6. MSG\_PROBE\_THREAD
-```````````````````````
+.. _msg_probe_thread:
+
+MSG\_PROBE\_THREAD
+------------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| tizen thread id | uint64 | number | if tizen thread then thread id, else 0 |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| thread type | uint32 | number | see 3.6.1 |
+| thread type | uint32 | number | see :ref:`thread_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| api type | uint32 | number | see 3.6.2 |
+| api type | uint32 | number | see :ref:`thread_api_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| class name | string | path | thread api class name |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.6.1. Thread types
-'''''''''''''''''''
+.. _thread_types:
+
+Thread types
+^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| THREAD\_TIZENTHREAD_EVENTDRIVEN | 2 |
+--------------------------------------------------+-----------+
+.. _thread_api_types:
-3.6.2. Thread API types
-'''''''''''''''''''''''
+Thread API types
+^^^^^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| THREAD\_API\_OTHER | 8 |
+--------------------------------------------------+-----------+
-3.7. MSG\_PROBE\_SYNC
-`````````````````````
+.. _msg_probe_sync:
+
+MSG\_PROBE\_SYNC
+----------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+==================+========+==========+==============================================================================================================+
| addr | uint64 | pointer | sync address |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| type | uint32 | number | see 3.7.1 |
+| type | uint32 | number | see :ref:`sync_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| api type | uint32 | number | see 3.7.2 |
+| api type | uint32 | number | see :ref:`sync_api_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.7.1. Sync types
-'''''''''''''''''
+.. _sync_types:
+
+Sync types
+^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| SYNC\_PTHREAD\_BARRIER | 7 |
+--------------------------------------------------+-----------+
-3.7.2. Sync API types
-'''''''''''''''''''''
+.. _sync_api_types:
+
+Sync API types
+^^^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| SYNC\_API\_OTHER | 9 |
+--------------------------------------------------+-----------+
-3.8. MSG\_PROBE\_NETWORK
-````````````````````````
+.. _msg_probe_network:
+
+MSG\_PROBE\_NETWORK
+-------------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| fd | uint64 | number | fd value |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| api type | uint32 | number | see 3.8.1 |
+| api type | uint32 | number | see :ref:`network_api_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| dest ip | uint32 | number | destination IP address |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| message | string | variable | message text |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.8.1. Network API types
-''''''''''''''''''''''''
+.. _network_api_types:
+
+Network API types
+^^^^^^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| HTTP\_API\_CLOSE | 23 |
+--------------------------------------------------+-----------+
-3.9. MSG\_PROBE\_GL
-```````````````````
+.. _msg_probe_gl:
+
+MSG\_PROBE\_GL
+--------------
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| name | type | value | description |
+==================+========+==========+==============================================================================================================+
| addr | uint64 | pointer | should be GL current context address but now it is always 0 |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-| api type | uint32 | number | see 3.9.1 |
+| api type | uint32 | number | see :ref:`gl_api_types` |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| time | uint64 | number | elapsed time in nanoseconds |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
| context | string | variable | GL context value |
+------------------+--------+----------+--------------------------------------------------------------------------------------------------------------+
-3.9.1. GL API types
-'''''''''''''''''''
+.. _gl_api_types:
+
+GL API types
+^^^^^^^^^^^^
+--------------------------------------------------+-----------+
| name | value |
| APITYPE\_NO\_CONTEXT | 2 |
+--------------------------------------------------+-----------+
-4. Instrumentation blacklist
-----------------------------
+Instrumentation blacklist
+=========================
+-----------------------------+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| library name | functions | |
| | | current return address info. The problem is similar to \*setjmp\* |
+-----------------------------+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-5. Size limits in swap manager
-------------------------------
+Size limits in swap manager
+===========================
+-----------------------------------------------------+
| **MSG\_SYSTEM period** |
| US\_APP\_INST\_LIB\_MAX | 1000 |
+-----------------------------+-----------------------+
-6. HV Properties
-----------------
+HV Properties
+=============
-6.1 Category specific properties
-````````````````````````````````
+Category specific properties
+----------------------------
-6.1.1 properties of Evas
-''''''''''''''''''''''''
+.. _evas_properties:
+
+properties of Evas
+^^^^^^^^^^^^^^^^^^
+---------------------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------+
| name | type | description |
| | | | EVAS\_RENDER\_MUL = 0x0B |
+---------------------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------+
-6.1.2 properties of Elementary
-''''''''''''''''''''''''''''''
+.. _elm_properties:
+
+properties of Elementary
+^^^^^^^^^^^^^^^^^^^^^^^^
+--------------------------+--------+-----------------------------------------------------------------------+
| name | type | description |
| elementary\_widget\_type | string | const char \*elm\_object\_widget\_type\_get(const Evas\_Object \*obj) |
+--------------------------+--------+-----------------------------------------------------------------------+
-6.1.3 properties of Edje
-''''''''''''''''''''''''
+.. _edje_properties:
+
+properties of Edje
+^^^^^^^^^^^^^^^^^^
+-------------------+--------+-----------------------------------------------------------------------------------------------------+
| name | type | description |
| | uint32 | |
+-------------------+--------+-----------------------------------------------------------------------------------------------------+
-6.2 Evas subtype specific properties
-````````````````````````````````````
+.. _evas_subtypes:
-6.2.1 properties of Image (EVAS) : 0x0101
-'''''''''''''''''''''''''''''''''''''''''
+Evas subtype specific properties
+--------------------------------
+
+properties of Image
+^^^^^^^^^^^^^^^^^^^
+-------------------------------------+--------+----------------------------------------------------------------------------------------------------------------------------------+
| name | type | description |
| evas\_image\_stride | uint32 | int evas\_object\_image\_stride\_get(const Evas\_Image \*obj) |
+-------------------------------------+--------+----------------------------------------------------------------------------------------------------------------------------------+
-6.2.2 properties of Line (EVAS) : 0x0102
-''''''''''''''''''''''''''''''''''''''''
+properties of Line
+^^^^^^^^^^^^^^^^^^
+----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------+
| name | type | description |
| | uint32 | |
+----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------+
-6.2.3 properties of Polygon (EVAS) : 0x0103
-'''''''''''''''''''''''''''''''''''''''''''
+properties of Polygon
+^^^^^^^^^^^^^^^^^^^^^
Nothing
-6.2.4 properties of Rectangle (EVAS) : 0x0104
-'''''''''''''''''''''''''''''''''''''''''''''
+properties of Rectangle
+^^^^^^^^^^^^^^^^^^^^^^^
Nothing
-6.2.5 properties of Text (EVAS) : 0x0105
-''''''''''''''''''''''''''''''''''''''''
+properties of Text
+^^^^^^^^^^^^^^^^^^
+------------------------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------+
| name | type | description |
| | | | EVAS\_BIDI\_DIRECTION\_RTL = 0x03 |
+------------------------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------+
-6.2.6 properties of Textblock (EVAS) : 0x0106
-'''''''''''''''''''''''''''''''''''''''''''''
+properties of Textblock
+^^^^^^^^^^^^^^^^^^^^^^^
+-----------------------------------+--------+-----------------------------------------------------------------------------------------+
| name | type | description |
| evas\_textblock\_text\_markup | string | const char \* evas\_object\_textblock\_text\_markup\_get (const Evas\_Object \*obj) |
+-----------------------------------+--------+-----------------------------------------------------------------------------------------+
-6.2.7 properties of Vector (EVAS) : 0x0107
-''''''''''''''''''''''''''''''''''''''''''
+properties of Vector
+^^^^^^^^^^^^^^^^^^^^
Nothing
-6.2.8 properties of Table (EVAS) : 0x0108
-'''''''''''''''''''''''''''''''''''''''''
+properties of Table
+^^^^^^^^^^^^^^^^^^^
+-----------------------------+----------+-------------------------------------------------------------------------------------------------------------------+
| name | type | description |
| | uint32 | |
+-----------------------------+----------+-------------------------------------------------------------------------------------------------------------------+
-6.2.9 properties of Box (EVAS) : 0x0109
-'''''''''''''''''''''''''''''''''''''''
+properties of Box
+^^^^^^^^^^^^^^^^^
+------------------+----------+---------------------------------------------------------------------------------------------------+
| name | type | description |
| | float | |
+------------------+----------+---------------------------------------------------------------------------------------------------+
-6.1.10 properties of Grid (EVAS) : 0x010A
-'''''''''''''''''''''''''''''''''''''''''
+properties of Grid
+^^^^^^^^^^^^^^^^^^
+----------------------+--------+-------------------------------------------------------------------------------------------------+
| name | type | description |
| evas\_grid\_pack | int[4] | Eina\_uint8evas\_obj\_grid\_pack\_get(Evas\_Object \*child, int \*x, int \*y, int \*w, int \*h) |
+----------------------+--------+-------------------------------------------------------------------------------------------------+
-6.2.11 properties of Textgrid (EVAS) : 0x010B
-'''''''''''''''''''''''''''''''''''''''''''''
+properties of Textgrid
+^^^^^^^^^^^^^^^^^^^^^^
+----------------------------+--------+-----------------------------------------------------------------------------------------------------+
| name | type | description |
| | uint32 | |
+----------------------------+--------+-----------------------------------------------------------------------------------------------------+
-6.2.12 properties of Smart (EVAS) : 0x010C
-''''''''''''''''''''''''''''''''''''''''''
+properties of Smart
+^^^^^^^^^^^^^^^^^^^
Nothing
-6.3 Elementary subtype specific properties
-``````````````````````````````````````````
+.. _elm_subtypes:
+
+Elementary subtype specific properties
+--------------------------------------
-6.3.1 properties of Background (Elementary) : 0x0201
-''''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Background
+^^^^^^^^^^^^^^^^^^^^^^^^
+-------------------------+--------+-------------------------------------------------------------------------------+
| name | type | description |
| | | | ELM\_BG\_OPTION\_LAST = 0x04 |
+-------------------------+--------+-------------------------------------------------------------------------------+
-6.3.2 properties of Button (Elementary) : 0x0202
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Button
+^^^^^^^^^^^^^^^^^^^^
+-------------------------------------------+-------+---------------------------------------------------------------------------------+
| name | type | description |
| elm\_button\_autorepeat | uint8 | Eina\_uint8elm\_button\_autorepeat\_get (const Elm\_Button \*obj) |
+-------------------------------------------+-------+---------------------------------------------------------------------------------+
-6.3.3 properties of Check (Elementary) : 0x0203
-'''''''''''''''''''''''''''''''''''''''''''''''
+properties of Check
+^^^^^^^^^^^^^^^^^^^
+-------------------+------+-----------------------------------------------------------+
| name | type | description |
| elm\_check\_state | uint8| Eina\_uint8elm\_check\_state\_get(const Elm\_Check \*obj) |
+-------------------+------+-----------------------------------------------------------+
-6.3.4 properties of Colorselector (Elementary) : 0x0204
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Colorselector
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+-----------------------------------+--------+---------------------------------------------------------------------------------------------------------+
| name | type | description |
| | | | ELM\_COLORSELECTOR\_ALL = 0x06 |
+-----------------------------------+--------+---------------------------------------------------------------------------------------------------------+
-6.3.5 properties of Ctxpopup (Elementary) : 0x0205
-''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Ctxpopup
+^^^^^^^^^^^^^^^^^^^^^^
+---------------------------+------+------------------------------------------------------+
| name | type | description |
| elm\_ctxpopup\_horizontal | uint8| Eina\_uint8elm\_obj\_ctxpopup\_horizontal\_get(void) |
+---------------------------+------+------------------------------------------------------+
-6.3.6 properties of Datetime (Elementary) : 0x0206
-''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Datetime
+^^^^^^^^^^^^^^^^^^^^^^
+-----------------------+--------+-----------------------------------------------------------------------------------------+
| name | type | description |
| | | | int tm\_yday; /\* Days in year.[0-365] \*/ |
+-----------------------+--------+-----------------------------------------------------------------------------------------+
-6.3.7 properties of Entry (Elementary) : 0x0207
-'''''''''''''''''''''''''''''''''''''''''''''''
+properties of Entry
+^^^^^^^^^^^^^^^^^^^
+--------------------------------------------+--------+--------------------------------------------------------------------------------------+
| name | type | description |
| elm\_entry\_cursor\_is\_visible\_format | uint8 | EAPI Eina\_uint8elm\_entry\_cursor\_is\_visible\_format\_get(const Elm\_Entry \*obj) |
+--------------------------------------------+--------+--------------------------------------------------------------------------------------+
-6.3.8 properties of Flip (Elementary) : 0x0208
-''''''''''''''''''''''''''''''''''''''''''''''
+properties of Flip
+^^^^^^^^^^^^^^^^^^
+---------------------------+------+-----------------------------------------------------------------+
| name | type | description |
| elm\_flip\_front\_visible | uint8| Eina\_uint8elm\_obj\_flip\_front\_visible\_get(void) |
+---------------------------+------+-----------------------------------------------------------------+
-6.3.9 properties of Gengrid (Elementary) : 0x0209
-'''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Gengrid
+^^^^^^^^^^^^^^^^^^^^^
+-----------------------------------+----------+-----------------------------------------------------------------------------------------------------------------+
| name | type | description |
| elm\_gengrid\_items\_count | uint32 | EAPI unsigned int elm\_gengrid\_items\_count(const Elm\_Gengrid \*obj) |
+-----------------------------------+----------+-----------------------------------------------------------------------------------------------------------------+
-6.3.10 properties of Genlist (Elementary) : 0x020A
-''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Genlist
+^^^^^^^^^^^^^^^^^^^^^
+-------------------------------------+-------+---------------------------------------------------------------------------------------+
| name | type | description |
| elm\_genlist\_realization\_mode | uint8 | Eina\_uint8elm\_genlist\_realization\_mode\_get(Evas\_Object \*obj) |
+-------------------------------------+-------+---------------------------------------------------------------------------------------+
-6.3.11 properties of Glview (Elementary) : 0x020B
-'''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Glview
+^^^^^^^^^^^^^^^^^^^^
+-----------------------+--------+------------------------------------------------------------------------+
| name | type | description |
| elm\_glview\_rotation | uint32 | int elm\_glview\_rotation\_get(const Elm\_Glview \*obj) |
+-----------------------+--------+------------------------------------------------------------------------+
-6.3.12 properties of Icon (Elementary) : 0x020C
-'''''''''''''''''''''''''''''''''''''''''''''''
+properties of Icon
+^^^^^^^^^^^^^^^^^^
+--------------------------+--------+---------------------------------------------------------------------------------+
| name | type | description |
| elm\_icon\_standard | string | const char \*elm\_icon\_standard\_get(const Elm\_Icon \*obj) |
+--------------------------+--------+---------------------------------------------------------------------------------+
-6.3.13 properties of Image (Elementary) : 0x020D
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Image
+^^^^^^^^^^^^^^^^^^^
+---------------------------------+---------+---------------------------------------------------------------------------------------------+
| name | type | description |
| | uint32 | |
+---------------------------------+---------+---------------------------------------------------------------------------------------------+
-6.3.14 properties of Index (Elementary) : 0x020E
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Index
+^^^^^^^^^^^^^^^^^^^
+---------------------------------+-------+-------------------------------------------------------------------------+
| name | type | description |
| elm\_index\_item\_level | uint32| int elm\_index\_item\_level\_get(const Elm\_Index \*obj) |
+---------------------------------+-------+-------------------------------------------------------------------------+
-6.3.15 properties of Label (Elementary) : 0x020F
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Label
+^^^^^^^^^^^^^^^^^^^
+--------------------------+---------+--------------------------------------------------------------------------------+
| name | type | description |
| | | | ELM\_LABEL\_SLIDE\_MODE\_ALWAYS = 0x02 |
+--------------------------+---------+--------------------------------------------------------------------------------+
-6.3.16 properties of List (Elementary) : 0x0210
-'''''''''''''''''''''''''''''''''''''''''''''''
+properties of List
+^^^^^^^^^^^^^^^^^^
+---------------------------------+------+-----------------------------------------------------------------------------------------------+
| name | type | description |
| elm\_list\_mode | uint8| Elm\_List\_Mode elm\_list\_mode\_get(const Elm\_List \*obj) |
+---------------------------------+------+-----------------------------------------------------------------------------------------------+
-6.3.17 properties of Map (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''
+properties of Map
+^^^^^^^^^^^^^^^^^
+---------------------------+----------+-------------------------------------------------------------------------------------------------------+
| name | type | description |
| | float | |
+---------------------------+----------+-------------------------------------------------------------------------------------------------------+
-6.3.18 properties of Notify (Elementary) : 0x0211
-'''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Notify
+^^^^^^^^^^^^^^^^^^^^
+----------------------------+----------+-----------------------------------------------------------------------------------------------+
| name | type | description |
| elm\_notify\_timeout | float | double elm\_notify\_timeout\_get(const Elm\_Notify \*obj) |
+----------------------------+----------+-----------------------------------------------------------------------------------------------+
-6.3.19 properties of Panel (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Panel
+^^^^^^^^^^^^^^^^^^^
+------------------------+------+----------------------------------------------------------------------+
| name | type | description |
| elm\_panel\_scrollable | uint8| Eina\_uint8elm\_panel\_scrollable\_get(const Elm\_Panel \*obj) |
+------------------------+------+----------------------------------------------------------------------+
-6.3.20 properties of Photo (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Photo
+^^^^^^^^^^^^^^^^^^^
+---------------------------+--------+-------------------------------------------------------------------+
| name | type | description |
| elm\_photo\_size | uint32 | int elm\_photo\_size\_get(const Elm\_Photo \*obj) |
+---------------------------+--------+-------------------------------------------------------------------+
-6.3.21 properties of Photocam (Elementary) : 0x0211
-'''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Photocam
+^^^^^^^^^^^^^^^^^^^^^^
+---------------------------------+--------+---------------------------------------------------------------------------------------+
| name | type | description |
| | int | |
+---------------------------------+--------+---------------------------------------------------------------------------------------+
-6.3.22 properties of Plug (Elementary) : 0x0211
-'''''''''''''''''''''''''''''''''''''''''''''''
+properties of Plug
+^^^^^^^^^^^^^^^^^^
Nothing
-6.3.23 properties of Popup (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Popup
+^^^^^^^^^^^^^^^^^^^
+---------------------------------------+----------+-----------------------------------------------------------------------------------------------------------------------+
| name | type | description |
| elm\_popup\_timeout | float | double elm\_popup\_timeout\_get(const Elm\_Popup \*obj) |
+---------------------------------------+----------+-----------------------------------------------------------------------------------------------------------------------+
-6.3.24 properties of Progressbar (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Progressbar
+^^^^^^^^^^^^^^^^^^^^^^^^^
+--------------------------------+--------+--------------------------------------------------------------------------------+
| name | type | description |
| elm\_progressbar\_unit\_format | string | const char \*elm\_progressbar\_unit\_format\_get(const Elm\_Progressbar \*obj) |
+--------------------------------+--------+--------------------------------------------------------------------------------+
-6.3.25 properties of Radio (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Radio
+^^^^^^^^^^^^^^^^^^^
+--------------------------+------+-----------------------------------------------------------+
| name | type | description |
| elm\_radio\_value | int | int elm\_radio\_value\_get(const Elm\_Radio \*obj) |
+--------------------------+------+-----------------------------------------------------------+
-6.3.26 properties of Segmentcontrol (Elementary) : 0x0211
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Segmentcontrol
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------------------------+------+--------------------------------------------------------------------------------+
| name | type | description |
| elm\_segmentcontrol\_item\_count | int | int elm\_segment\_control\_item\_count\_get(const Elm\_Segment\_Control \*obj) |
+----------------------------------+------+--------------------------------------------------------------------------------+
-6.3.27 properties of Slider (Elementary) : 0x0211
-'''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Slider
+^^^^^^^^^^^^^^^^^^^^
+--------------------------------+--------+---------------------------------------------------------------------------+
| name | type | description |
| elm\_slider\_indicator\_format | string | const char \*elm\_slider\_indicator\_format\_get(const Elm\_Slider \*obj) |
+--------------------------------+--------+---------------------------------------------------------------------------+
-6.3.28 properties of Spinner (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Spinner
+^^^^^^^^^^^^^^^^^^^^^
+-----------------------------+----------+----------------------------------------------------------------------------------------+
| name | type | description |
| elm\_spinner\_label\_format | string | const char \*elm\_spinner\_label\_format\_get(const Elm\_Spinner \*obj) |
+-----------------------------+----------+----------------------------------------------------------------------------------------+
-6.3.29 properties of Toolbar (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Toolbar
+^^^^^^^^^^^^^^^^^^^^^
+------------------------------------+-------+---------------------------------------------------------------------------------------+
| name | type | description |
| elm\_toolbar\_items\_count | uint32| unsigned int elm\_toolbar\_items\_count(const Elm\_Toolbar \*obj) |
+------------------------------------+-------+---------------------------------------------------------------------------------------+
-6.3.30 properties of Tooltip (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''''''
+properties of Tooltip
+^^^^^^^^^^^^^^^^^^^^^
+------------------------------------+--------+------------------------------------------------------------------------------+
| name | type | description |
| elm\_object\_tooltip\_window\_mode | uint8 | Eina\_uint8elm\_object\_tooltip\_window\_mode\_get(const Evas\_Object \*obj) |
+------------------------------------+--------+------------------------------------------------------------------------------+
-6.3.31 properties of Win (Elementary) : 0x0211
-''''''''''''''''''''''''''''''''''''''''''''''
+properties of Win
+^^^^^^^^^^^^^^^^^
+-------------------------------------+--------+--------------------------------------------------------------------------------------------------+
| name | type | description |