1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_OZONE_PLATFORM_DRI_SCOPED_DRM_TYPES_H_ 6 #define UI_OZONE_PLATFORM_DRI_SCOPED_DRM_TYPES_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 10 typedef struct _drmModeConnector drmModeConnector; 11 typedef struct _drmModeCrtc drmModeCrtc; 12 typedef struct _drmModeEncoder drmModeEncoder; 13 typedef struct _drmModeFB drmModeFB; 14 typedef struct _drmModeObjectProperties drmModeObjectProperties; 15 typedef struct _drmModePlane drmModePlane; 16 typedef struct _drmModePlaneRes drmModePlaneRes; 17 typedef struct _drmModeProperty drmModePropertyRes; 18 typedef struct _drmModePropertyBlob drmModePropertyBlobRes; 19 typedef struct _drmModeRes drmModeRes; 20 21 namespace ui { 22 23 struct DrmResourcesDeleter { 24 void operator()(drmModeRes* resources) const; 25 }; 26 struct DrmConnectorDeleter { 27 void operator()(drmModeConnector* connector) const; 28 }; 29 struct DrmCrtcDeleter { 30 void operator()(drmModeCrtc* crtc) const; 31 }; 32 struct DrmEncoderDeleter { 33 void operator()(drmModeEncoder* encoder) const; 34 }; 35 struct DrmObjectPropertiesDeleter { 36 void operator()(drmModeObjectProperties* properties) const; 37 }; 38 struct DrmPlaneDeleter { 39 void operator()(drmModePlane* plane) const; 40 }; 41 struct DrmPlaneResDeleter { 42 void operator()(drmModePlaneRes* plane_res) const; 43 }; 44 struct DrmPropertyDeleter { 45 void operator()(drmModePropertyRes* property) const; 46 }; 47 struct DrmPropertyBlobDeleter { 48 void operator()(drmModePropertyBlobRes* property) const; 49 }; 50 struct DrmFramebufferDeleter { 51 void operator()(drmModeFB* framebuffer) const; 52 }; 53 54 typedef scoped_ptr<drmModeRes, DrmResourcesDeleter> ScopedDrmResourcesPtr; 55 typedef scoped_ptr<drmModeConnector, DrmConnectorDeleter> ScopedDrmConnectorPtr; 56 typedef scoped_ptr<drmModeCrtc, DrmCrtcDeleter> ScopedDrmCrtcPtr; 57 typedef scoped_ptr<drmModeEncoder, DrmEncoderDeleter> ScopedDrmEncoderPtr; 58 typedef scoped_ptr<drmModeObjectProperties, DrmObjectPropertiesDeleter> 59 ScopedDrmObjectPropertyPtr; 60 typedef scoped_ptr<drmModePlane, DrmPlaneDeleter> ScopedDrmPlanePtr; 61 typedef scoped_ptr<drmModePlaneRes, DrmPlaneResDeleter> ScopedDrmPlaneResPtr; 62 typedef scoped_ptr<drmModePropertyRes, DrmPropertyDeleter> ScopedDrmPropertyPtr; 63 typedef scoped_ptr<drmModePropertyBlobRes, DrmPropertyBlobDeleter> 64 ScopedDrmPropertyBlobPtr; 65 typedef scoped_ptr<drmModeFB, DrmFramebufferDeleter> ScopedDrmFramebufferPtr; 66 67 } // namespace ui 68 69 #endif // UI_OZONE_PLATFORM_DRI_SCOPED_DRM_TYPES_H_ 70