On Fri, Apr 19, 2024 at 11:59:48AM -0700, dongwon....@intel.com wrote: > From: Dongwon Kim <dongwon....@intel.com> > > New header and source files are added for containing QemuDmaBuf struct > definition and newly introduced helpers for creating/freeing the struct > and accessing its data. > > Suggested-by: Marc-André Lureau <marcandre.lur...@redhat.com> > Cc: Philippe Mathieu-Daudé <phi...@linaro.org> > Cc: Daniel P. Berrangé <berra...@redhat.com> > Cc: Vivek Kasireddy <vivek.kasire...@intel.com> > Signed-off-by: Dongwon Kim <dongwon....@intel.com> > --- > include/ui/console.h | 20 +---- > include/ui/dmabuf.h | 81 +++++++++++++++++ > ui/dmabuf.c | 206 +++++++++++++++++++++++++++++++++++++++++++ > ui/meson.build | 1 + > 4 files changed, 289 insertions(+), 19 deletions(-) > create mode 100644 include/ui/dmabuf.h > create mode 100644 ui/dmabuf.c > > diff --git a/include/ui/console.h b/include/ui/console.h > index 0bc7a00ac0..a208a68b88 100644 > --- a/include/ui/console.h > +++ b/include/ui/console.h > @@ -7,6 +7,7 @@ > #include "qapi/qapi-types-ui.h" > #include "ui/input.h" > #include "ui/surface.h" > +#include "ui/dmabuf.h" > > #define TYPE_QEMU_CONSOLE "qemu-console" > OBJECT_DECLARE_TYPE(QemuConsole, QemuConsoleClass, QEMU_CONSOLE) > @@ -185,25 +186,6 @@ struct QEMUGLParams { > int minor_ver; > }; > > -typedef struct QemuDmaBuf { > - int fd; > - uint32_t width; > - uint32_t height; > - uint32_t stride; > - uint32_t fourcc; > - uint64_t modifier; > - uint32_t texture; > - uint32_t x; > - uint32_t y; > - uint32_t backing_width; > - uint32_t backing_height; > - bool y0_top; > - void *sync; > - int fence_fd; > - bool allow_fences; > - bool draw_submitted; > -} QemuDmaBuf; > - > enum display_scanout { > SCANOUT_NONE, > SCANOUT_SURFACE, > diff --git a/include/ui/dmabuf.h b/include/ui/dmabuf.h > new file mode 100644 > index 0000000000..e332958c39 > --- /dev/null > +++ b/include/ui/dmabuf.h > @@ -0,0 +1,81 @@ > +/* > + * SPDX-License-Identifier: MIT
QEMU's expected license for new contributions is generally GPL-2.0-or-later. If you need to diverge from that please explain why. > + * > + * QemuDmaBuf struct and helpers used for accessing its data > + * > + * Copyright (c) 2024 Dongwon Kim <dongwon....@intel.com> > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > + * of this software and associated documentation files (the "Software"), to > deal > + * in the Software without restriction, including without limitation the > rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > diff --git a/ui/dmabuf.c b/ui/dmabuf.c > new file mode 100644 > index 0000000000..ef3b07956e > --- /dev/null > +++ b/ui/dmabuf.c > @@ -0,0 +1,206 @@ > +/* > + * SPDX-License-Identifier: MIT > + * > + * QemuDmaBuf struct and helpers used for accessing its data > + * > + * Copyright (c) 2024 Dongwon Kim <dongwon....@intel.com> > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > + * of this software and associated documentation files (the "Software"), to > deal > + * in the Software without restriction, including without limitation the > rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|