summaryrefslogtreecommitdiff
path: root/utils
AgeCommit message (Expand)Author
2021-07-09utils: ipc: proxy: Reset ControlSerializer during IPA configureUmang Jain
2021-06-25libcamera/base: Move extended base functionalityKieran Bingham
2021-06-01utils: ipc: mojo: Error if ControlInfoMap/List doesn't prefix libcameraPaul Elder
2021-05-31utils: ipc: extract-docs: Extract the SPDX headerPaul Elder
2021-05-27utils: ipc: Add script to extract doxygen docs from mojom filesPaul Elder
2021-05-26utils: ipc: Update mojoPaul Elder
2021-05-26utils: update-mojo.sh: Add script for updating mojoPaul Elder
2021-05-24ipa: Move core IPA interface documentation to a .cpp fileUmang Jain
2021-04-27utils: ipc: Use the proper namespace for mojom structsPaul Elder
2021-03-29utils: ipc: proxy: Track IPA with a state machineKieran Bingham
2021-03-24utils: ipc: proxy: Process pending messagesLaurent Pinchart
2021-03-24utils: ipc: proxy: Assert asynchronous calls execute in the running stateLaurent Pinchart
2021-03-12utils: raspberrypi: Add a DelayedControls log parserNaushir Patuck
2021-03-09utils: ipc: Make first output parameter direct return if int32Paul Elder
2021-03-09utils: ipc: Support custom parameters to init()Paul Elder
2021-03-08utils: Add kernel headers update scriptLaurent Pinchart
2021-03-04utils: ipc: templates: Drop unused variableLaurent Pinchart
2021-02-16utils: checkstyle.py: Handle renamed files in header add checkerLaurent Pinchart
2021-02-16utils: checkstyle.py: Restore checks of renamed filesLaurent Pinchart
2021-02-16meson: ipa, proxy: Generate headers and proxy with mojoPaul Elder
2021-02-16utils: ipc: add parser scriptPaul Elder
2021-02-16utils: ipc: add generator scriptPaul Elder
2021-02-16utils: ipc: add templates for code generation for IPC mechanismPaul Elder
2021-02-01utils: gen-formats: Support big-endian DRM formatsLaurent Pinchart
2021-01-21utils: checkstyle.py: Fix "protected" members in Commit classLaurent Pinchart
2020-12-29utils: checkstyle.py: Drop astyle supportLaurent Pinchart
2020-12-29utils: checkstyle.py: Add header add checkerLaurent Pinchart
2020-12-29utils: checkstyle.py: Add commit checkersLaurent Pinchart
2020-12-29utils: checkstyle.py: Move diff parsing to Commit classLaurent Pinchart
2020-12-29utils: checkstyle.py: Add ability to filter files by status in a commitLaurent Pinchart
2020-12-29utils: checkstyle.py: Make title and files properties of commit classLaurent Pinchart
2020-12-29utils: checkstyle.py: Move commit handling to a separate sectionLaurent Pinchart
2020-12-29utils: checkstyle.py: Factor out automatic class registryLaurent Pinchart
2020-12-29utils: checkstyle.py: Drop arguments to super() when possibleLaurent Pinchart
2020-12-27utils: gen-controls: Fix enumerators documentationLaurent Pinchart
2020-11-20src: ipa: raspberrypi: Change 'sport' exposure mode name to 'short'David Plowman
2020-11-11README, meson: Add dependency on ply and jinja2 for IPA interface generationPaul Elder
2020-11-11utils: ipc: import mojoPaul Elder
2020-11-08utils: checkstyle.py: Add d-pointer formatterLaurent Pinchart
2020-11-03utils: tracepoints: Add simple statistics scriptPaul Elder
2020-11-03libcamera: tracing: Implement tracing infrastructurePaul Elder
2020-11-02utils: hooks: pre-push: Reject commits with a Change-IdLaurent Pinchart
2020-10-26libcamera: controls: Fix rogue whitespaceJacopo Mondi
2020-10-26libcamera: controls: Generate an array of valid valuesJacopo Mondi
2020-10-26libcamera: controls: Rename enumerate valuesJacopo Mondi
2020-10-26libcamera: Support draft controls and propertiesKieran Bingham
2020-10-02utils: hooks: pre-push: Accept Acked-by in addition to Reviewed-byLaurent Pinchart
2020-09-24meson: Define python3 and python3-yaml required dependenciesEzequiel Garcia
2020-09-24libcamera: ipa: Move key generation to utilsKieran Bingham
2020-09-24libcamera: Move Header generation utilities to utilsKieran Bingham
()" if not iter}} + {{param.mojom_name}}Start, {%- if loop.last and not iter %} {{buf}}.cend() {%- elif not iter %} {{buf}}.cbegin() + {{param.mojom_name}}Start + {{param.mojom_name}}BufSize {%- elif iter and loop.length == 1 %} {{buf}} + {{data_size}} {%- else %} {{buf}} + {{param.mojom_name}}Start + {{param.mojom_name}}BufSize {%- endif -%} {{- "," if param|has_fd}} {%- if param|has_fd %} {{fds}}.cbegin() + {{param.mojom_name}}FdStart, {%- if loop.last %} {{fds}}.cend() {%- else %} {{fds}}.cbegin() + {{param.mojom_name}}FdStart + {{param.mojom_name}}FdsSize {%- endif -%} {%- endif -%} {{- "," if param|needs_control_serializer}} {%- if param|needs_control_serializer %} &controlSerializer_ {%- endif -%} ){{")" if param|is_enum and not param|is_flags}}; {%- endmacro -%} {# # \brief Deserialize multiple objects from data buffer and fd vector # # \param pointer If true, deserialize objects into pointers, and adds a null check. # \param declare If true, declare the objects in addition to deserialization. # \param iter if true, treat \a buf as an iterator instead of a vector # \param data_size Variable that holds the size of the vector referenced by \a buf # # Generate code to deserialize multiple objects, as specified in \a params # (which are the parameters to some function), from \a buf data buffer and # \a fds fd vector. # This code is meant to be used by the proxy, for deserializing after IPC calls. # # \todo Avoid intermediate vectors #} {%- macro deserialize_call(params, buf, fds, pointer = true, declare = false, iter = false, data_size = '', init_offset = 0) -%} {% set ns = namespace(size_offset = init_offset) %} {%- if params|length > 1 %} {%- for param in params %} [[maybe_unused]] const size_t {{param.mojom_name}}BufSize = readPOD<uint32_t>({{buf}}, {{ns.size_offset}} {%- if iter -%} , {{buf}} + {{data_size}} {%- endif -%} ); {%- set ns.size_offset = ns.size_offset + 4 %} {%- if param|has_fd %} [[maybe_unused]] const size_t {{param.mojom_name}}FdsSize = readPOD<uint32_t>({{buf}}, {{ns.size_offset}} {%- if iter -%} , {{buf}} + {{data_size}} {%- endif -%} ); {%- set ns.size_offset = ns.size_offset + 4 %} {%- endif %} {%- endfor %} {%- endif %} {% for param in params %} {%- if loop.first %} const size_t {{param.mojom_name}}Start = {{ns.size_offset}}; {%- else %} const size_t {{param.mojom_name}}Start = {{loop.previtem.mojom_name}}Start + {{loop.previtem.mojom_name}}BufSize; {%- endif %} {%- endfor %} {% for param in params|with_fds %} {%- if loop.first %} const size_t {{param.mojom_name}}FdStart = 0; {%- elif not loop.last %} const size_t {{param.mojom_name}}FdStart = {{loop.previtem.mojom_name}}FdStart + {{loop.previtem.mojom_name}}FdsSize; {%- endif %} {%- endfor %} {% for param in params %} {%- if pointer %} if ({{param.mojom_name}}) { {{deserialize_param(param, pointer, loop, buf, fds, iter, data_size)|indent(16, True)}} } {%- else %} {{param|name + " " if declare}}{{deserialize_param(param, pointer, loop, buf, fds, iter, data_size)|indent(8)}} {%- endif %} {% endfor %} {%- endmacro -%}