1/*
2 * Copyright 1999, Be Incorporated.
3 * Copyright 2007, Haiku.
4 * Distributed under the terms of the MIT License.
5 *
6 * Authors:
7 *		Be Incorporated
8 *		Eric Petit <eric.petit@lapsus.org>
9 */
10
11#ifndef GENERIC_H
12#define GENERIC_H
13
14status_t INIT_ACCELERANT(int fd);
15ssize_t ACCELERANT_CLONE_INFO_SIZE(void);
16void GET_ACCELERANT_CLONE_INFO(void *data);
17status_t CLONE_ACCELERANT(void *data);
18void UNINIT_ACCELERANT(void);
19status_t GET_ACCELERANT_DEVICE_INFO(accelerant_device_info *adi);
20sem_id ACCELERANT_RETRACE_SEMAPHORE(void);
21
22uint32 ACCELERANT_MODE_COUNT(void);
23status_t GET_MODE_LIST(display_mode *dm);
24status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, const display_mode *high);
25status_t SET_DISPLAY_MODE(display_mode *mode_to_set);
26status_t GET_DISPLAY_MODE(display_mode *current_mode);
27status_t GET_FRAME_BUFFER_CONFIG(frame_buffer_config *a_frame_buffer);
28status_t GET_PIXEL_CLOCK_LIMITS(display_mode *dm, uint32 *low, uint32 *high);
29status_t MOVE_DISPLAY(uint16 h_display_start, uint16 v_display_start);
30status_t GET_TIMING_CONSTRAINTS(display_timing_constraints *dtc);
31void SET_INDEXED_COLORS(uint count, uint8 first, uint8 *color_data, uint32 flags);
32
33uint32 DPMS_CAPABILITIES(void);
34uint32 DPMS_MODE(void);
35status_t SET_DPMS_MODE(uint32 dpms_flags);
36
37status_t SET_CURSOR_SHAPE(uint16 width, uint16 height, uint16 hot_x, uint16 hot_y, uint8 *andMask, uint8 *xorMask);
38void MOVE_CURSOR(uint16 x, uint16 y);
39void SHOW_CURSOR(bool is_visible);
40
41uint32 ACCELERANT_ENGINE_COUNT(void);
42status_t ACQUIRE_ENGINE(uint32 capabilities, uint32 max_wait, sync_token *st, engine_token **et);
43status_t RELEASE_ENGINE(engine_token *et, sync_token *st);
44void WAIT_ENGINE_IDLE(void);
45status_t GET_SYNC_TOKEN(engine_token *et, sync_token *st);
46status_t SYNC_TO_TOKEN(sync_token *st);
47
48void SCREEN_TO_SCREEN_BLIT(engine_token *et, blit_params *list, uint32 count);
49void FILL_RECTANGLE(engine_token *et, uint32 color, fill_rect_params *list, uint32 count);
50void INVERT_RECTANGLE(engine_token *et, fill_rect_params *list, uint32 count);
51
52void FILL_SPAN(engine_token *et, uint32 color, uint16 *list, uint32 count);
53
54#endif
55