{"id":14731,"url":"https://patchwork.libcamera.org/api/1.1/covers/14731/?format=json","web_url":"https://patchwork.libcamera.org/cover/14731/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20211123224015.3619282-1-kieran.bingham@ideasonboard.com>","date":"2021-11-23T22:40:00","name":"[libcamera-devel,00/15] Use pragma once","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/1.1/people/4/?format=json","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/14731/mbox/","series":[{"id":2749,"url":"https://patchwork.libcamera.org/api/1.1/series/2749/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2749","date":"2021-11-23T22:40:00","name":"Use pragma once","version":1,"mbox":"https://patchwork.libcamera.org/series/2749/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/14731/comments/","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 26D17BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 23 Nov 2021 22:40:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1FACF603F9;\n\tTue, 23 Nov 2021 23:40:23 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BDF2260121\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Nov 2021 23:40:20 +0100 (CET)","from Monstersaurus.ksquared.org.uk.beta.tailscale.net\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 44E7AA1B;\n\tTue, 23 Nov 2021 23:40:20 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"fkgI9Axj\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1637707220;\n\tbh=8QM14fT99iVDbuVw8QSo8F9bUNQCfDhJeDn67WynikE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=fkgI9AxjHhPBE3g1OEA0Au4z2pxE51FEBYaKyEfkKMWC/rF0TNeE8sI1WkKmR75YA\n\tjXq36PaJKBFziPn0F+fAn8PKhw/kaYOOkSqvMB0ehMLMZsaHMVkihAnacyls6c+QFX\n\tEIwj+tha8E8JxSHNJHZOrTREnSr+u986ElJicIeQ=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"libcamera devel <libcamera-devel@lists.libcamera.org>","Date":"Tue, 23 Nov 2021 22:40:00 +0000","Message-Id":"<20211123224015.3619282-1-kieran.bingham@ideasonboard.com>","X-Mailer":"git-send-email 2.30.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 00/15] Use pragma once","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"We've always used the following pattern to maintain idempotency with\nheaders:\n\n #ifndef __PATH_TO_FILE_H__\n #define __PATH_TO_FILE_H__\n ..\n #endif // __PATH_TO_FILE_H__\n\nThis is fine, and long established, but makes for awkward names in cases\nsuch as:\n  src/ipa/ipu3/algorithm/algorithm.h\n\nrequiring duplication, and constant concern over updating these names\nwhen files are moved or renamed.\n\nRemove all ifndef usages and ensure consistency across the project using\n\n #pragma once\n\nThe changes are broken down into grouped components to ease review.\n\n\nKieran Bingham (15):\n  libcamera: Convert to pragma once\n  libcamera: base: Convert to pragma once\n  libcamera: internal: Convert to pragma once\n  libcamera: ipa: Convert to pragma once\n  libcamera: pipeline: Convert to pragma once\n  android: Convert to pragma once\n  cam: Convert to pragma once\n  gstreamer: Convert to pragma once\n  ipa: ipu3: Convert to pragma once\n  ipa: libipa: Convert to pragma once\n  lc-compliance: Convert to pragma once\n  qcam: Convert to pragma once\n  test: Convert to pragma once\n  utils: Convert to pragma once\n  v4l2: Convert to pragma once\n\n include/libcamera/base/backtrace.h                       | 6 ++----\n include/libcamera/base/bound_method.h                    | 6 ++----\n include/libcamera/base/class.h                           | 6 ++----\n include/libcamera/base/event_dispatcher.h                | 6 ++----\n include/libcamera/base/event_dispatcher_poll.h           | 6 ++----\n include/libcamera/base/event_notifier.h                  | 6 ++----\n include/libcamera/base/file.h                            | 6 ++----\n include/libcamera/base/flags.h                           | 6 ++----\n include/libcamera/base/log.h                             | 6 ++----\n include/libcamera/base/message.h                         | 6 ++----\n include/libcamera/base/object.h                          | 6 ++----\n include/libcamera/base/semaphore.h                       | 6 ++----\n include/libcamera/base/signal.h                          | 6 ++----\n include/libcamera/base/span.h                            | 5 +----\n include/libcamera/base/thread.h                          | 6 ++----\n include/libcamera/base/timer.h                           | 6 ++----\n include/libcamera/base/utils.h                           | 6 ++----\n include/libcamera/camera.h                               | 6 ++----\n include/libcamera/camera_manager.h                       | 6 ++----\n include/libcamera/compiler.h                             | 6 ++----\n include/libcamera/control_ids.h.in                       | 5 +----\n include/libcamera/controls.h                             | 5 +----\n include/libcamera/file_descriptor.h                      | 6 ++----\n include/libcamera/formats.h.in                           | 6 ++----\n include/libcamera/framebuffer.h                          | 6 ++----\n include/libcamera/framebuffer_allocator.h                | 6 ++----\n include/libcamera/geometry.h                             | 5 +----\n include/libcamera/internal/bayer_format.h                | 6 ++----\n include/libcamera/internal/byte_stream_buffer.h          | 6 ++----\n include/libcamera/internal/camera.h                      | 6 ++----\n include/libcamera/internal/camera_controls.h             | 6 ++----\n include/libcamera/internal/camera_sensor.h               | 6 ++----\n include/libcamera/internal/camera_sensor_properties.h    | 6 ++----\n include/libcamera/internal/control_serializer.h          | 6 ++----\n include/libcamera/internal/control_validator.h           | 6 ++----\n include/libcamera/internal/delayed_controls.h            | 6 ++----\n include/libcamera/internal/device_enumerator.h           | 6 ++----\n include/libcamera/internal/device_enumerator_sysfs.h     | 6 ++----\n include/libcamera/internal/device_enumerator_udev.h      | 6 ++----\n include/libcamera/internal/formats.h                     | 5 +----\n include/libcamera/internal/framebuffer.h                 | 6 ++----\n include/libcamera/internal/ipa_data_serializer.h         | 6 ++----\n include/libcamera/internal/ipa_manager.h                 | 6 ++----\n include/libcamera/internal/ipa_module.h                  | 6 ++----\n include/libcamera/internal/ipa_proxy.h                   | 6 ++----\n include/libcamera/internal/ipc_pipe.h                    | 6 ++----\n include/libcamera/internal/ipc_pipe_unixsocket.h         | 6 ++----\n include/libcamera/internal/ipc_unixsocket.h              | 5 +----\n include/libcamera/internal/mapped_framebuffer.h          | 6 ++----\n include/libcamera/internal/media_device.h                | 6 ++----\n include/libcamera/internal/media_object.h                | 6 ++----\n include/libcamera/internal/pipeline_handler.h            | 6 ++----\n include/libcamera/internal/process.h                     | 6 ++----\n include/libcamera/internal/pub_key.h                     | 6 ++----\n include/libcamera/internal/source_paths.h                | 6 ++----\n include/libcamera/internal/sysfs.h                       | 6 ++----\n include/libcamera/internal/tracepoints.h.in              | 6 ++----\n include/libcamera/internal/v4l2_device.h                 | 6 ++----\n include/libcamera/internal/v4l2_pixelformat.h            | 6 ++----\n include/libcamera/internal/v4l2_subdevice.h              | 6 ++----\n include/libcamera/internal/v4l2_videodevice.h            | 6 ++----\n include/libcamera/ipa/ipa_controls.h                     | 6 ++----\n include/libcamera/ipa/ipa_interface.h                    | 6 ++----\n include/libcamera/ipa/ipa_module_info.h                  | 6 ++----\n include/libcamera/ipa/raspberrypi.h                      | 6 ++----\n include/libcamera/logging.h                              | 6 ++----\n include/libcamera/pixel_format.h                         | 6 ++----\n include/libcamera/property_ids.h.in                      | 5 +----\n include/libcamera/request.h                              | 6 ++----\n include/libcamera/stream.h                               | 6 ++----\n include/libcamera/transform.h                            | 5 +----\n include/libcamera/version.h.in                           | 6 ++----\n src/android/camera_buffer.h                              | 5 ++---\n src/android/camera_capabilities.h                        | 6 ++----\n src/android/camera_device.h                              | 6 ++----\n src/android/camera_hal_config.h                          | 5 ++---\n src/android/camera_hal_manager.h                         | 6 ++----\n src/android/camera_metadata.h                            | 6 ++----\n src/android/camera_ops.h                                 | 6 ++----\n src/android/camera_request.h                             | 6 ++----\n src/android/camera_stream.h                              | 6 ++----\n src/android/camera_worker.h                              | 6 ++----\n src/android/jpeg/encoder.h                               | 6 ++----\n src/android/jpeg/encoder_libjpeg.h                       | 6 ++----\n src/android/jpeg/exif.h                                  | 6 ++----\n src/android/jpeg/post_processor_jpeg.h                   | 6 ++----\n src/android/jpeg/thumbnailer.h                           | 6 ++----\n src/android/post_processor.h                             | 6 ++----\n src/android/yuv/post_processor_yuv.h                     | 6 ++----\n src/cam/camera_session.h                                 | 6 ++----\n src/cam/drm.h                                            | 6 ++----\n src/cam/event_loop.h                                     | 6 ++----\n src/cam/file_sink.h                                      | 6 ++----\n src/cam/frame_sink.h                                     | 6 ++----\n src/cam/image.h                                          | 6 ++----\n src/cam/kms_sink.h                                       | 6 ++----\n src/cam/main.h                                           | 6 ++----\n src/cam/options.h                                        | 6 ++----\n src/cam/stream_options.h                                 | 6 ++----\n src/gstreamer/gstlibcamera-utils.h                       | 5 +----\n src/gstreamer/gstlibcameraallocator.h                    | 5 +----\n src/gstreamer/gstlibcamerapad.h                          | 5 +----\n src/gstreamer/gstlibcamerapool.h                         | 6 +-----\n src/gstreamer/gstlibcameraprovider.h                     | 6 +-----\n src/gstreamer/gstlibcamerasrc.h                          | 5 +----\n src/ipa/ipu3/algorithms/agc.h                            | 6 ++----\n src/ipa/ipu3/algorithms/algorithm.h                      | 6 ++----\n src/ipa/ipu3/algorithms/awb.h                            | 5 ++---\n src/ipa/ipu3/algorithms/blc.h                            | 6 ++----\n src/ipa/ipu3/algorithms/tone_mapping.h                   | 6 ++----\n src/ipa/ipu3/ipa_context.h                               | 6 ++----\n src/ipa/libipa/camera_sensor_helper.h                    | 6 ++----\n src/ipa/libipa/histogram.h                               | 6 ++----\n src/lc-compliance/environment.h                          | 6 ++----\n src/lc-compliance/simple_capture.h                       | 6 ++----\n src/libcamera/pipeline/ipu3/cio2.h                       | 6 ++----\n src/libcamera/pipeline/ipu3/frames.h                     | 6 ++----\n src/libcamera/pipeline/ipu3/imgu.h                       | 6 ++----\n src/libcamera/pipeline/raspberrypi/dma_heaps.h           | 6 ++----\n src/libcamera/pipeline/raspberrypi/rpi_stream.h          | 6 ++----\n src/libcamera/pipeline/rkisp1/rkisp1_path.h              | 6 ++----\n src/libcamera/pipeline/simple/converter.h                | 5 +----\n src/qcam/dng_writer.h                                    | 6 ++----\n src/qcam/format_converter.h                              | 6 ++----\n src/qcam/main_window.h                                   | 6 ++----\n src/qcam/message_handler.h                               | 6 ++----\n src/qcam/viewfinder.h                                    | 6 ++----\n src/qcam/viewfinder_gl.h                                 | 6 ++----\n src/qcam/viewfinder_qt.h                                 | 6 ++----\n src/v4l2/v4l2_camera.h                                   | 5 +----\n src/v4l2/v4l2_camera_file.h                              | 5 +----\n src/v4l2/v4l2_camera_proxy.h                             | 5 +----\n src/v4l2/v4l2_compat_manager.h                           | 5 +----\n test/gstreamer/gstreamer_test.h                          | 5 +----\n test/libtest/buffer_source.h                             | 6 ++----\n test/libtest/camera_test.h                               | 6 ++----\n test/libtest/test.h                                      | 6 ++----\n test/media_device/media_device_test.h                    | 6 ++----\n test/serialization/serialization_test.h                  | 6 ++----\n test/v4l2_subdevice/v4l2_subdevice_test.h                | 5 +----\n test/v4l2_videodevice/v4l2_videodevice_test.h            | 6 ++----\n utils/gen-header.sh                                      | 9 ++-------\n .../libcamera_templates/core_ipa_interface.h.tmpl        | 5 +----\n .../libcamera_templates/core_ipa_serializer.h.tmpl       | 5 +----\n .../libcamera_templates/module_ipa_interface.h.tmpl      | 5 +----\n .../libcamera_templates/module_ipa_proxy.h.tmpl          | 5 +----\n .../libcamera_templates/module_ipa_serializer.h.tmpl     | 5 +----\n 147 files changed, 268 insertions(+), 590 deletions(-)"}