Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * This file is subject to the terms and conditions of the GNU General Public |
| 3 | * License. See the file "COPYING" in the main directory of this archive |
| 4 | * for more details. |
| 5 | * |
| 6 | * This is the user-visible SGI GFX interface. |
| 7 | * |
| 8 | * This must be used verbatim into the GNU libc. It does not include |
| 9 | * any kernel-only bits on it. |
| 10 | * |
| 11 | * miguel@nuclecu.unam.mx |
| 12 | */ |
| 13 | #ifndef _ASM_GFX_H |
| 14 | #define _ASM_GFX_H |
| 15 | |
| 16 | /* The iocls, yes, they do not make sense, but such is life */ |
| 17 | #define GFX_BASE 100 |
| 18 | #define GFX_GETNUM_BOARDS (GFX_BASE + 1) |
| 19 | #define GFX_GETBOARD_INFO (GFX_BASE + 2) |
| 20 | #define GFX_ATTACH_BOARD (GFX_BASE + 3) |
| 21 | #define GFX_DETACH_BOARD (GFX_BASE + 4) |
| 22 | #define GFX_IS_MANAGED (GFX_BASE + 5) |
| 23 | |
| 24 | #define GFX_MAPALL (GFX_BASE + 10) |
| 25 | #define GFX_LABEL (GFX_BASE + 11) |
| 26 | |
| 27 | #define GFX_INFO_NAME_SIZE 16 |
| 28 | #define GFX_INFO_LABEL_SIZE 16 |
| 29 | |
| 30 | struct gfx_info { |
| 31 | char name [GFX_INFO_NAME_SIZE]; /* board name */ |
| 32 | char label [GFX_INFO_LABEL_SIZE]; /* label name */ |
| 33 | unsigned short int xpmax, ypmax; /* screen resolution */ |
| 34 | unsigned int lenght; /* size of a complete gfx_info for this board */ |
| 35 | }; |
| 36 | |
| 37 | struct gfx_getboardinfo_args { |
| 38 | unsigned int board; /* board number. starting from zero */ |
| 39 | void *buf; /* pointer to gfx_info */ |
| 40 | unsigned int len; /* buffer size of buf */ |
| 41 | }; |
| 42 | |
| 43 | struct gfx_attach_board_args { |
| 44 | unsigned int board; /* board number, starting from zero */ |
| 45 | void *vaddr; /* address where the board registers should be mapped */ |
| 46 | }; |
| 47 | |
| 48 | #ifdef __KERNEL__ |
| 49 | /* umap.c */ |
| 50 | extern void remove_mapping (struct vm_area_struct *vma, struct task_struct *, unsigned long, unsigned long); |
| 51 | extern void *vmalloc_uncached (unsigned long size); |
| 52 | extern int vmap_page_range (struct vm_area_struct *vma, unsigned long from, unsigned long size, unsigned long vaddr); |
| 53 | #endif |
| 54 | |
| 55 | #endif /* _ASM_GFX_H */ |