Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:13

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @brief Frame Buffer Device Driver for all Boards
0007  *
0008  * This file describes the Frame Buffer Device Driver for all boards.
0009  */
0010 
0011 /*
0012  *  COPYRIGHT (c) 1989-2011.
0013  *  On-Line Applications Research Corporation (OAR).
0014  *
0015  * Redistribution and use in source and binary forms, with or without
0016  * modification, are permitted provided that the following conditions
0017  * are met:
0018  * 1. Redistributions of source code must retain the above copyright
0019  *    notice, this list of conditions and the following disclaimer.
0020  * 2. Redistributions in binary form must reproduce the above copyright
0021  *    notice, this list of conditions and the following disclaimer in the
0022  *    documentation and/or other materials provided with the distribution.
0023  *
0024  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0025  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0026  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0027  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0028  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0029  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0030  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0031  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0032  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0033  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0034  * POSSIBILITY OF SUCH DAMAGE.
0035  */
0036 
0037 #ifndef __RTEMS_FRAMEBUFFER_h__
0038 #define __RTEMS_FRAMEBUFFER_h__
0039 
0040 #include <rtems/io.h>
0041 
0042 #ifdef __cplusplus
0043 extern "C" {
0044 #endif
0045 
0046 /**
0047  *  This macro defines the standard name for the frame buffer device
0048  *  that is available to applications.
0049  */
0050 #define FRAMEBUFFER_DEVICE_NAME "/dev/fb"
0051 
0052 /**
0053  * @brief Standard device file path of first frame buffer device.
0054  *
0055  * This device is the default frame buffer device for the Microwindows Screen
0056  * Driver.
0057  */
0058 #define FRAMEBUFFER_DEVICE_0_NAME "/dev/fb0"
0059 
0060 /**
0061  *  This macro defines the standard device driver table entry for
0062  *  a frame buffer device driver.
0063  */
0064 #define FRAME_BUFFER_DRIVER_TABLE_ENTRY \
0065   { frame_buffer_initialize, frame_buffer_open, frame_buffer_close, \
0066     frame_buffer_read, frame_buffer_write, frame_buffer_control }
0067 
0068 /**
0069  *  @brief Frame Buffer Initialization Entry Point
0070  *
0071  *  This method initializes the frame buffer device driver.
0072  *
0073  *  @param[in] major is the device driver major number
0074  *  @param[in] minor is the device driver minor number
0075  *  @param[in] arg is the parameters to this call
0076  *
0077  *  @return This method returns RTEMS_SUCCESSFUL when
0078  *          the device driver is successfully initialized.
0079  */
0080 rtems_device_driver frame_buffer_initialize(
0081   rtems_device_major_number  major,
0082   rtems_device_minor_number  minor,
0083   void                      *arg
0084 );
0085 
0086 /**
0087  *  @brief Frame Buffer Open Entry Point
0088  *
0089  *  This method opens a specific device supported by the
0090  *  frame buffer device driver.
0091  *
0092  *  @param[in] major is the device driver major number
0093  *  @param[in] minor is the device driver minor number
0094  *  @param[in] arg is the parameters to this call
0095  *
0096  *  @return This method returns RTEMS_SUCCESSFUL when
0097  *          the device driver is successfully opened.
0098  */
0099 rtems_device_driver frame_buffer_open(
0100   rtems_device_major_number  major,
0101   rtems_device_minor_number  minor,
0102   void                      *arg
0103 );
0104 
0105 /**
0106  *  @brief Frame Buffer Close Entry Point
0107  *
0108  *  This method closes a specific device supported by the
0109  *  frame buffer device driver.
0110  *
0111  *  @param[in] major is the device driver major number
0112  *  @param[in] minor is the device driver minor number
0113  *  @param[in] arg is the parameters to this call
0114  *
0115  *  @return This method returns RTEMS_SUCCESSFUL when
0116  *          the device is successfully closed.
0117  */
0118 rtems_device_driver frame_buffer_close(
0119   rtems_device_major_number  major,
0120   rtems_device_minor_number  minor,
0121   void                      *arg
0122 );
0123 
0124 /**
0125  *  @brief Frame Buffer Read Entry Point
0126  *
0127  *  This method reads from a specific device supported by the
0128  *  frame buffer device driver.
0129  *
0130  *  @param[in] major is the device driver major number
0131  *  @param[in] minor is the device driver minor number
0132  *  @param[in] arg is the parameters to this call
0133  *
0134  *  @return This method returns RTEMS_SUCCESSFUL when
0135  *          the device is successfully read from.
0136  */
0137 rtems_device_driver frame_buffer_read(
0138   rtems_device_major_number  major,
0139   rtems_device_minor_number  minor,
0140   void                      *arg
0141 );
0142 
0143 /**
0144  *  @brief Frame Buffer Write Entry Point
0145  *
0146  *  This method writes to a specific device supported by the
0147  *  frame buffer device driver.
0148  *
0149  *  @param[in] major is the device driver major number
0150  *  @param[in] minor is the device driver minor number
0151  *  @param[in] arg is the parameters to this call
0152  *
0153  *  @return This method returns RTEMS_SUCCESSFUL when
0154  *          the device is successfully written.
0155  */
0156 rtems_device_driver frame_buffer_write(
0157   rtems_device_major_number  major,
0158   rtems_device_minor_number  minor,
0159   void                      *arg
0160 );
0161 
0162 /**
0163  *  @brief Frame Buffer IO Control Entry Point
0164  *
0165  *  This method performs an IO Control operation on a
0166  *  specific device supported by the frame buffer device driver.
0167  *
0168  *  @param[in] major is the device driver major number
0169  *  @param[in] minor is the device driver minor number
0170  *  @param[in] arg is the parameters to this call
0171  *
0172  *  @return This method returns RTEMS_SUCCESSFUL when
0173  *          the device driver IO control operation is
0174  *          successfully performed.
0175  */
0176 rtems_device_driver frame_buffer_control(
0177   rtems_device_major_number  major,
0178   rtems_device_minor_number  minor,
0179   void                      *arg
0180 );
0181 
0182 #ifdef __cplusplus
0183 }
0184 #endif
0185 
0186 #endif
0187 /* end of include file */