codegen: Drop MemberAccess creation for field array initializer
[vala-lang.git] / vapi / linux.vapi
blob2611011d48cdf45eb08f30df690156d95cd190a4
1 /* linux.vapi
2  *
3  * Copyright (C) 2009-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
18  */
20 [CCode (cprefix = "", lower_case_cprefix = "")]
21 namespace Linux {
23     /*
24      * Console
25      */
26     [CCode (cprefix = "", lower_case_cprefix = "")]
27     namespace Console {
29         /* constants */
31         [CCode (cheader_filename = "linux/kd.h")]
32         public const int GIO_FONT;
33         [CCode (cheader_filename = "linux/kd.h")]
34         public const int PIO_FONT;
35         [CCode (cheader_filename = "linux/kd.h")]
36         public const int GIO_FONTX;
37         [CCode (cheader_filename = "linux/kd.h")]
38         public const int PIO_FONTX;
39         [CCode (cheader_filename = "linux/kd.h")]
40         public const int PIO_FONTRESET;
41         [CCode (cheader_filename = "linux/kd.h")]
42         public const int GIO_CMAP;
43         [CCode (cheader_filename = "linux/kd.h")]
44         public const int PIO_CMAP;
45         [CCode (cheader_filename = "linux/kd.h")]
46         public const int KIOCSOUND;
47         [CCode (cheader_filename = "linux/kd.h")]
48         public const int KDMKTONE;
49         [CCode (cheader_filename = "linux/kd.h")]
50         public const int KDGETLED;
51         [CCode (cheader_filename = "linux/kd.h")]
52         public const int KDSETLED;
53         [CCode (cheader_filename = "linux/kd.h")]
54         public const int KDGKBTYPE;
55         [CCode (cheader_filename = "linux/kd.h")]
56         public const int KB_84;
57         [CCode (cheader_filename = "linux/kd.h")]
58         public const int KB_101;
59         [CCode (cheader_filename = "linux/kd.h")]
60         public const int KB_OTHER;
61         [CCode (cheader_filename = "linux/kd.h")]
62         public const int KDADDIO;
63         [CCode (cheader_filename = "linux/kd.h")]
64         public const int KDDELIO;
65         [CCode (cheader_filename = "linux/kd.h")]
66         public const int KDENABIO;
67         [CCode (cheader_filename = "linux/kd.h")]
68         public const int KDDISABIO;
69         [CCode (cheader_filename = "linux/kd.h")]
70         public const int KDSETMODE;
71         [CCode (cheader_filename = "linux/kd.h")]
72         public const int KDGETMODE;
73         [CCode (cheader_filename = "linux/kd.h")]
74         public const int KDMAPDISP;
75         [CCode (cheader_filename = "linux/kd.h")]
76         public const int KDUNMAPDISP;
77         [CCode (cheader_filename = "linux/kd.h")]
78         public const int E_TABSZ;
79         [CCode (cheader_filename = "linux/kd.h")]
80         public const int GIO_SCRNMAP;
81         [CCode (cheader_filename = "linux/kd.h")]
82         public const int PIO_SCRNMAP;
83         [CCode (cheader_filename = "linux/kd.h")]
84         public const int GIO_UNISCRNMAP;
85         [CCode (cheader_filename = "linux/kd.h")]
86         public const int PIO_UNISCRNMAP;
87         [CCode (cheader_filename = "linux/kd.h")]
88         public const int GIO_UNIMAP;
89         [CCode (cheader_filename = "linux/kd.h")]
90         public const int PIO_UNIMAP;
91         [CCode (cheader_filename = "linux/kd.h")]
92         public const int PIO_UNIMAPCLR;
93         [CCode (cheader_filename = "linux/kd.h")]
94         public const int UNI_DIRECT_BASE;
95         [CCode (cheader_filename = "linux/kd.h")]
96         public const int UNI_DIRECT_MASK;
97         [CCode (cheader_filename = "linux/kd.h")]
98         public const int KDGKBMODE;
99         [CCode (cheader_filename = "linux/kd.h")]
100         public const int KDSKBMODE;
101         [CCode (cheader_filename = "linux/kd.h")]
102         public const int KDGKBMETA;
103         [CCode (cheader_filename = "linux/kd.h")]
104         public const int KDSKBMETA;
105         [CCode (cheader_filename = "linux/kd.h")]
106         public const int KDGKBLED;
107         [CCode (cheader_filename = "linux/kd.h")]
108         public const int KDSKBLED;
109         [CCode (cheader_filename = "linux/kd.h")]
110         public const int K_NORMTAB;
111         [CCode (cheader_filename = "linux/kd.h")]
112         public const int K_SHIFTTAB;
113         [CCode (cheader_filename = "linux/kd.h")]
114         public const int K_ALTTAB;
115         [CCode (cheader_filename = "linux/kd.h")]
116         public const int K_ALTSHIFTTAB;
117         [CCode (cheader_filename = "linux/kd.h")]
118         public const int KDGKBSENT;
119         [CCode (cheader_filename = "linux/kd.h")]
120         public const int KDSKBSENT;
121         [CCode (cheader_filename = "linux/kd.h")]
122         public const int KDGKBDIACR;
123         [CCode (cheader_filename = "linux/kd.h")]
124         public const int KDSKBDIACR;
125         [CCode (cheader_filename = "linux/kd.h")]
126         public const int KDGKBDIACRUC;
127         [CCode (cheader_filename = "linux/kd.h")]
128         public const int KDSKBDIACRUC;
129         [CCode (cheader_filename = "linux/kd.h")]
130         public const int KDGETKEYCODE;
131         [CCode (cheader_filename = "linux/kd.h")]
132         public const int KDSETKEYCODE;
133         [CCode (cheader_filename = "linux/kd.h")]
134         public const int KDSIGACCEPT;
135         [CCode (cheader_filename = "linux/kd.h")]
136         public const int KDKBDREP;
137         [CCode (cheader_filename = "linux/kd.h")]
138         public const int KDFONTOP;
139         [CCode (cheader_filename = "linux/kd.h")]
140         public const int KD_FONT_FLAG_DONT_RECALC;
142         /* enums */
144         [CCode (cprefix = "KD_FONT_OP_", cheader_filename = "linux/kd.h")]
145         public enum FontOperationCode {
146             SET,
147             GET,
148             SET_DEFAULT,
149             COPY
150         }
152         [CCode (cprefix = "K_", cheader_filename = "linux/kd.h")]
153         public enum KeyboardMode {
154             RAW,
155             XLATE,
156             MEDIUMRAW,
157             UNICODE
158         }
160         [CCode (cprefix = "K_", cheader_filename = "linux/kd.h")]
161         public enum LedMode {
162             SCROLLLOCK,
163             NUMLOCK,
164             CAPSLOCK
165         }
167         [CCode (cprefix = "LED_", cheader_filename = "linux/kd.h")]
168         public enum LedType {
169             SCR,
170             NUM,
171             CAP
172         }
174         [CCode (cprefix = "KD_", cheader_filename = "linux/kd.h")]
175         public enum TerminalMode {
176             TEXT,
177             GRAPHICS
178         }
180         [CCode (cprefix = "K_", cheader_filename = "linux/kd.h")]
181         public enum MetaMode {
182             METABIT,
183             ESCPREFIX
184         }
186         /* structs */
188         [CCode (cname = "struct kbdiacr", cheader_filename = "linux/kd.h")]
189         public struct Diacritic {
190             public uchar diacr;
191             public uchar base;
192             public uchar result;
193         }
195         [CCode (cname = "struct kbdiacrs", cheader_filename = "linux/kd.h")]
196         public struct Diacritics {
197             public uint kb_cnt;
198             public Diacritic kbdiacr[256];
199         }
201         [CCode (cname = "struct kbdiacruc", cheader_filename = "linux/kd.h")]
202         public struct Diacruc {
203             public uint diacr;
204             public uint base;
205             public uint result;
206         }
208         [CCode (cname = "struct kbdiacrsuc", cheader_filename = "linux/kd.h")]
209         public struct Diacrucs {
210             public uint kb_cnt;
211             public Diacruc kbdiacruc[256];
212         }
214         [CCode (cname = "struct console_font", cheader_filename = "linux/kd.h")]
215         public struct Font {
216             public uint width;
217             public uint height;
218             public uint charcount;
219             public uchar* data;
220         }
222         [CCode (cname = "struct consolefontdesc", cheader_filename = "linux/kd.h")]
223         public struct FontDescription {
224             public uint16 charcount;
225             public uint16 charheight;
226             public string chardata;
227         }
229         [CCode (cname = "struct console_font_op", cheader_filename = "linux/kd.h")]
230         public struct FontOperation {
231             public FontOperationCode op;
232             public uint flags;
233             public uint width;
234             public uint height;
235             public uint charcount;
236             public uchar* data;
237         }
239         [CCode (cname = "struct kbkeycode", cheader_filename = "linux/kd.h")]
240         public struct KeyCode {
241             public uint scancode;
242             public uint keycode;
243         }
245         [CCode (cname = "struct kbentry", cheader_filename = "linux/kd.h")]
246         public struct KeyboardEntry {
247             public uchar kb_table;
248             public uchar kb_index;
249             public uint16 kb_value;
250         }
252         [CCode (cname = "struct kbsentry", cheader_filename = "linux/kd.h")]
253         public struct KeyboardEntries {
254             public uchar kb_func;
255             public uchar kb_string[512];
256         }
258         [CCode (cname = "struct kbd_repeat", cheader_filename = "linux/kd.h")]
259         public struct KeyRepeat {
260             public int delay;
261             public int period;
262         }
264         [CCode (cname = "struct unipair", cheader_filename = "linux/kd.h")]
265         public struct UniPair {
266             public uint16 unicode;
267             public uint16 fontpos;
268         }
270         [CCode (cname = "struct unimapdesc", cheader_filename = "linux/kd.h")]
271         public struct UniMapDesc {
272             public uint16 entry_ct;
273             UniPair entries;
274         }
276         [CCode (cname = "struct unimapinit", cheader_filename = "linux/kd.h")]
277         public struct UniMapInit {
278             public uint16 advised_hashsize;
279             public uint16 advised_hashstep;
280             public uint16 advised_hashlevel;
281         }
282     }
284     /*
285      * EventFd
286      */
287     [CCode (cprefix = "EFD_", cheader_filename = "sys/eventfd.h")]
288     public enum EventFdFlags {
289         CLOEXEC,
290         NONBLOCK
291     }
293     [CCode (cheader_filename = "sys/eventfd.h")]
294     public int eventfd (uint count = 0, EventFdFlags flags = 0);
295     public int eventfd_read (int fd, out uint64 value);
296     public int eventfd_write (int fd, uint64 value);
298     /*
299      * Epoll
300      */
301     [CCode (cprefix = "EPOLL_", cheader_filename = "sys/epoll.h")]
302     public enum EpollFdFlags {
303         CLOEXEC,
304     }
306     [CCode (cheader_filename = "sys/epoll.h", cname = "union epoll_data")]
307     public struct EpollData {
308         public void* ptr;
309         public int fd;
310         public uint32 u32;
311         public uint64 u64;
312     }
314     [CCode (cheader_filename = "sys/epoll.h", cname = "struct epoll_event")]
315     public struct EpollEvent {
316         public uint32 events;
317         public EpollData data;
318     }
320     [CCode (cheader_filename = "sys/epoll.h")]
321     public int epoll_create (int size = 0);
322     [CCode (cheader_filename = "sys/epoll.h")]
323     public int epoll_create1 (int flags = 0);
324     [CCode (cheader_filename = "sys/epoll.h")]
325     public int epoll_wait (int epfd, EpollEvent[] events, int timeout);
326     [CCode (cheader_filename = "sys/epoll.h")]
327     public int epoll_pwait (int epfd, EpollEvent[] events, Posix.sigset_t? sigmask, int timeout);
328     [CCode (cheader_filename = "sys/epoll.h")]
329     public int epoll_ctl (int epfd, int op, int fd, EpollEvent? ev);
330     [CCode (cheader_filename = "sys/epoll.h")]
331     public const int EPOLLIN;
332     [CCode (cheader_filename = "sys/epoll.h")]
333     public const int EPOLLOUT;
334     [CCode (cheader_filename = "sys/epoll.h")]
335     public const int EPOLLERR;
336     [CCode (cheader_filename = "sys/epoll.h")]
337     public const int EPOLLHUP;
338     [CCode (cheader_filename = "sys/epoll.h")]
339     public const int EPOLLET;
340     [CCode (cheader_filename = "sys/epoll.h")]
341     public const int EPOLL_CTL_ADD;
342     [CCode (cheader_filename = "sys/epoll.h")]
343     public const int EPOLL_CTL_MOD;
344     [CCode (cheader_filename = "sys/epoll.h")]
345     public const int EPOLL_CTL_DEL;
347     /*
348      * Framebuffer
349      */
350     [CCode (cprefix = "", lower_case_cprefix = "")]
351     namespace Framebuffer {
353         /* ioctls */
354         [CCode (cheader_filename = "linux/fb.h")]
355         public const int FBIOGET_VSCREENINFO;
356         [CCode (cheader_filename = "linux/fb.h")]
357         public const int FBIOPUT_VSCREENINFO;
358         [CCode (cheader_filename = "linux/fb.h")]
359         public const int FBIOGET_FSCREENINFO;
360         [CCode (cheader_filename = "linux/fb.h")]
361         public const int FBIOGETCMAP;
362         [CCode (cheader_filename = "linux/fb.h")]
363         public const int FBIOPUTCMAP;
364         [CCode (cheader_filename = "linux/fb.h")]
365         public const int FBIOPAN_DISPLAY;
366         [CCode (cheader_filename = "linux/fb.h")]
367         public const int FBIO_CURSOR;
368         [CCode (cheader_filename = "linux/fb.h")]
369         public const int FBIOGET_MONITORSPEC;
370         [CCode (cheader_filename = "linux/fb.h")]
371         public const int FBIOPUT_MONITORSPEC;
372         [CCode (cheader_filename = "linux/fb.h")]
373         public const int FBIOSWITCH_MONIBIT;
374         [CCode (cheader_filename = "linux/fb.h")]
375         public const int FBIOGET_CON2FBMAP;
376         [CCode (cheader_filename = "linux/fb.h")]
377         public const int FBIOPUT_CON2FBMAP;
378         [CCode (cheader_filename = "linux/fb.h")]
379         public const int FBIOBLANK;
380         [CCode (cheader_filename = "linux/fb.h")]
381         public const int FBIOGET_VBLANK;
382         [CCode (cheader_filename = "linux/fb.h")]
383         public const int FBIO_ALLOC;
384         [CCode (cheader_filename = "linux/fb.h")]
385         public const int FBIO_FREE;
386         [CCode (cheader_filename = "linux/fb.h")]
387         public const int FBIOGET_GLYPH;
388         [CCode (cheader_filename = "linux/fb.h")]
389         public const int FBIOGET_HWCINFO;
390         [CCode (cheader_filename = "linux/fb.h")]
391         public const int FBIOPUT_MODEINFO;
392         [CCode (cheader_filename = "linux/fb.h")]
393         public const int FBIOGET_DISPINFO;
395         /* enums */
397         [CCode (cname = "guint32", cprefix = "FB_TYPE_", has_type_id = false, cheader_filename = "linux/fb.h")]
398         public enum Type {
399             PACKED_PIXELS,
400             PLANES,
401             INTERLEAVED_PLANES,
402             TEXT,
403             VGA_PLANES
404         }
406         [CCode (cname = "guint32", cprefix = "FB_ACTIVATE_", has_type_id = false, cheader_filename = "linux/fb.h")]
407         public enum Activate {
408             NOW,
409             NXTOPEN,
410             TEST,
411             MASK,
412             VBL,
413             [CCode (cname = "FB_CHANGE_CMAP_VBL")]
414             CHANGE_CMAP_VBL,
415             ALL,
416             FORCE,
417             INV_MODE
418         }
420         [CCode (cname = "guint32", cprefix = "FB_ACCEL_", has_type_id = false, cheader_filename = "linux/fb.h")]
421         public enum Accel {
422             NONE
423         }
425         [CCode (cname = "guint32", cprefix = "FB_AUX_", has_type_id = false, cheader_filename = "linux/fb.h")]
426         public enum Aux {
427              TEXT_MDA,
428              TEXT_CGA,
429              TEXT_S3_MMIO,
430              TEXT_MGA_STEP16,
431              TEXT_MGA_STEP8,
432              TEXT_SVGA_GROUP,
433              TEXT_SVGA_MASK,
434              TEXT_SVGA_STEP2,
435              TEXT_SVGA_STEP4,
436              TEXT_SVGA_STEP8,
437              TEXT_SVGA_STEP16,
438              TEXT_SVGA_LAST,
439              VGA_PLANES_VGA4,
440              VGA_PLANES_CFB4,
441              VGA_PLANES_CFB8
442         }
444         [CCode (cprefix = "FB_BLANK_", has_type_id = false, cheader_filename = "linux/fb.h")]
445         public enum Blank {
446             UNBLANK,
447             NORMAL,
448             VSYNC_SUSPEND,
449             HSYNC_SUSPEND,
450             POWERDOWN
451         }
453         [CCode (cprefix = "FB_CUR_", has_type_id = false, cheader_filename = "linux/fb.h")]
454         public enum Cur {
455             SETIMAGE,
456             SETPOS,
457             SETHOT,
458             SETCMAP,
459             SETSHAPE,
460             SETSIZE,
461             SETALL
462         }
464         [CCode (cname = "guint32", cprefix = "ROP_", has_type_id = false, cheader_filename = "linux/fb.h")]
465         public enum Rop {
466             COPY,
467             XOR
468         }
470         [CCode (cprefix = "FB_ROTATE_", has_type_id = false, cheader_filename = "linux/fb.h")]
471         public enum Rotate {
472             UR,
473             CW,
474             UD,
475             CCW
476         }
478         [CCode (cname = "guint32", cprefix = "FB_SYNC_", has_type_id = false, cheader_filename = "linux/fb.h")]
479         public enum Sync {
480             HOR_HIGH_ACT,
481             VERT_HIGH_ACT,
482             EXT,
483             COMP_HIGH_ACT,
484             BROADCAST,
485             ON_GREEN
486         }
488         [CCode (cname = "guint32", cprefix = "FB_VISUAL_", has_type_id = false, cheader_filename = "linux/fb.h")]
489         public enum Visual {
490             MONO01,
491             MONO10,
492             TRUECOLOR,
493             PSEUDOCOLOR,
494             DIRECTCOLOR,
495             STATIC_PSEUDOCOLOR
496         }
498         [CCode (cname = "guint32", cprefix = "FB_VMODE_", has_type_id = false, cheader_filename = "linux/fb.h")]
499         public enum Vmode {
500             NONINTERLACED,
501             INTERLACED,
502             DOUBLE,
503             ODD_FLD_FIRST,
504             MASK,
505             YWRAP,
506             SMOOTH_XPAN,
507             CONUPDATE
508         }
510         /* structures */
512         [CCode (cname = "struct fb_bitfield", cheader_filename = "linux/fb.h")]
513         public struct BitField {
514             public uint32 offset;
515             public uint32 length;
516             public uint32 msb_right;
517         }
519         [CCode (cname = "struct fb_cmap", cheader_filename = "linux/fb.h")]
520         public struct Cmap {
521             public uint32 start;
522             public uint32 len;
523             public uint16* red;
524             public uint16* green;
525             public uint16* blue;
526             public uint16* transp;
527         }
529         [CCode (cname = "struct fb_con2fbmap", cheader_filename = "linux/fb.h")]
530         public struct Con2FbMap {
531             public uint32 console;
532             public uint32 framebuffer;
533         }
535         [CCode (cname = "struct fbcurpos", cheader_filename = "linux/fb.h")]
536         public struct CurPos {
537             public uint16 x;
538             public uint16 y;
539         }
541         [CCode (cname = "struct fb_cursor", cheader_filename = "linux/fb.h")]
542         public struct Cursor {
543             public uint16 set;
544             public uint16 enable;
545             public uint16 rop;
546             string mask;
547             public CurPos hot;
548             public Image image;
549         }
551         [CCode (cname = "struct fb_copyarea", cheader_filename = "linux/fb.h")]
552         public struct CopyArea {
553             public uint32 dx;
554             public uint32 dy;
555             public uint32 width;
556             public uint32 height;
557             public uint32 sx;
558             public uint32 sy;
559         }
561         [CCode (cname = "struct fb_fillrect", cheader_filename = "linux/fb.h")]
562         public struct FillRect {
563             public uint32 dx;
564             public uint32 dy;
565             public uint32 width;
566             public uint32 height;
567             public uint32 color;
568             public Rop rop;
569         }
571         [CCode (cname = "struct fb_image", cheader_filename = "linux/fb.h")]
572         public struct Image {
573             public uint32 dx;
574             public uint32 dy;
575             public uint32 width;
576             public uint32 height;
577             public uint32 fg_color;
578             public uint32 bg_color;
579             public uint8 depth;
580             public char* data;
581             public Cmap cmap;
582         }
584         [CCode (cname = "struct fb_fix_screeninfo", cheader_filename = "linux/fb.h")]
585         public struct FixScreenInfo {
586             public char id[16];
587             public long smem_start;
588             public uint32 smem_len;
589             public Type type;
590             public Aux type_aux;
591             public Visual visual;
592             public uint16 xpanstep;
593             public uint16 ypanstep;
594             public uint16 ywrapstep;
595             public uint32 line_length;
596             public long mmio_start;
597             public uint32 mmio_len;
598             public Accel accel;
599         }
601         [CCode (cname = "struct fb_var_screeninfo", cheader_filename = "linux/fb.h")]
602         public struct VarScreenInfo {
603             public uint32 xres;
604             public uint32 yres;
605             public uint32 xres_virtual;
606             public uint32 yres_virtual;
607             public uint32 xoffset;
608             public uint32 yoffset;
609             public uint32 bits_per_pixel;
610             public uint32 grayscale;
611             public BitField red;
612             public BitField green;
613             public BitField blue;
614             public BitField transp;
615             public uint32 nonstd;
616             public Activate activate;
617             public uint32 height;
618             public uint32 width;
619             public uint32 pixclock;
620             public uint32 left_margin;
621             public uint32 right_margin;
622             public uint32 upper_margin;
623             public uint32 lower_margin;
624             public uint32 hsync_len;
625             public uint32 vsync_len;
626             public Sync sync;
627             public Vmode vmode;
628             public uint32 rotate;
629         }
631         [CCode (cname = "struct fb_vblank", cheader_filename = "linux/fb.h")]
632         public struct Vblank {
633             public uint32 flags;
634             public uint32 count;
635             public uint32 vcount;
636             public uint32 hcount;
637         }
639         [CCode (lower_case_cprefix = "omapfb_", cheader_filename = "linux/omapfb.h")]
640         namespace OMAP {
641             [CCode (cname = "int", cprefix = "OMAPFB_")]
642             public enum IOCTL {
643                 MIRROR,
644                 SYNC_GFX,
645                 VSYNC,
646                 SET_UPDATE_MODE,
647                 GET_CAPS,
648                 GET_UPDATE_MODE,
649                 LCD_TEST,
650                 CTRL_TEST,
651                 UPDATE_WINDOW_OLD,
652                 SET_COLOR_KEY,
653                 GET_COLOR_KEY,
654                 SETUP_PLANE,
655                 QUERY_PLANE,
656                 UPDATE_WINDOW,
657                 SETUP_MEM,
658                 QUERY_MEM,
659                 WAITFORVSYNC,
660                 MEMORY_READ,
661                 GET_OVERLAY_COLORMODE,
662                 WAITFORGO,
663                 GET_VRAM_INFO,
664                 SET_TEARSYNC
665             }
667             [Flags, CCode (cname = "int", prefix = "OMAPFB_CAPS_")]
668             public enum Caps {
669                 GENERIC_MASK,
670                 LCDC_MASK,
671                 PANEL_MASK,
673                 MANUAL_UPDATE,
674                 TEARSYNC,
675                 PLANE_RELOCATE_MEM,
676                 PLANE_SCALE,
677                 WINDOW_PIXEL_DOUBLE,
678                 WINDOW_SCALE,
679                 WINDOW_OVERLAY,
680                 WINDOW_ROTATE,
681                 SET_BACKLIGHT,
682             }
684             [Flags, CCode (cname = "int", cprefix = "OMAPFB_FORMAT_FLAG_")]
685             public enum Format {
686                 [CCode (cname = "OMAPFB_FORMAT_MASK")]
687                 MASK,
689                 DOUBLE,
690                 TEARSYNC,
691                 FORCE_VSYNC,
692                 ENABLE_OVERLAY,
693                 DISABLE_OVERLAY
694             }
696             [CCode (cname = "int", cprefix = "OMAPFB_MEMTYPE_")]
697             public enum MemType {
698                 SDRAM,
699                 SRAM,
700                 MAX
701             }
703             [CCode (cname = "enum omapfb_color_format", cprefix = "OMAPFB_COLOR_")]
704             public enum ColorFormat {
705                 RGB565,
706                 YUV422,
707                 YUV420,
708                 CLUT_8BPP,
709                 CLUT_4BPP,
710                 CLUT_2BPP,
711                 CLUT_1BPP,
712                 RGB444,
713                 YUY422,
715                 ARGB16,
716                 RGB24U,
717                 RGB24P,
718                 ARGB32,
719                 RGBA32,
720                 RGBX32,
721             }
723             [CCode (cname = "omapfb_update_window")]
724             public struct UpdateWindow {
725                 public uint32 x;
726                 public uint32 y;
727                 public uint32 width;
728                 public uint32 height;
729                 public uint32 format;
730                 public uint32 out_x;
731                 public uint32 out_y;
732                 public uint32 out_width;
733                 public uint32 out_height;
734             }
736             [CCode (cname = "enum omapfb_plane", cprefix = "OMAPFB_PLANE_")]
737             public enum Plane {
738                 GFX,
739                 VID1,
740                 VID2
741             }
743             [CCode (cname = "enum omapfb_channel_out", cprefix = "OMAPFB_CHANNEL_OUT_")]
744             public enum ChannelOut {
745                 LCD,
746                 DIGIT
747             }
749             [CCode (cname = "struct omapfb_plane_info")]
750             public struct PlaneInfo {
751                 public uint32 pos_x;
752                 public uint32 pos_y;
753                 public uint8 enabled;
754                 public uint8 channel_out;
755                 public uint8 mirror;
756                 public uint32 out_width;
757                 public uint32 out_height;
758             }
760             [CCode (cname = "struct omapfb_mem_info")]
761             public struct MemInfo {
762                 public uint32 size;
763                 public uint8 type;
764             }
766             [CCode (cname = "struct omapfb_caps")]
767             public struct Capabilities {
768                 public uint32 ctrl;
769                 public uint32 plane_color;
770                 public uint32 wnd_color;
771             }
773             [CCode (cname = "enum omapfb_color_key_type", cprefix = "OMAPFB_COLOR_KEY_")]
774             public enum ColorKeyType {
775                 DISABLED,
776                 GFX_DST,
777                 VID_SRC
778             }
780             [CCode (cname = "struct omapfb_color_key")]
781             public struct ColorKey {
782                 public uint8 channel_out;
783                 public uint32 background;
784                 public uint32 trans_key;
785                 public uint8 key_type;
786             }
788             [CCode (cname = "enum omapfb_update_mode")]
789             public enum UpdateMode {
790                 [CCode (cname = "OMAPFB_UPDATE_DISABLED")]
791                 DISABLED,
792                 [CCode (cname = "OMAPFB_AUTO_UPDATE")]
793                 AUTO,
794                 [CCode (cname = "OMAPFB_MANUAL_UPDATE")]
795                 MANUAL
796             }
798             [CCode (cname = "struct omapfb_memory_read")]
799             public struct MemoryRead {
800                 public uint16 x;
801                 public uint16 y;
802                 public uint16 w;
803                 public uint16 h;
804                 public size_t buffer_size;
805                 public void* buffer;
806             }
808             [CCode (cname = "struct omapfb_ovl_colormode")]
809             public struct OvlColorMode {
810                 public uint8 overlay_idx;
811                 public uint8 mode_idx;
812                 public uint32 bits_per_pixel;
813                 public uint32 nonstd;
814                 public Framebuffer.BitField red;
815                 public Framebuffer.BitField green;
816                 public Framebuffer.BitField blue;
817                 public Framebuffer.BitField transp;
818             }
820             [CCode (cname = "struct omapfb_vram_info")]
821             public struct VRamInfo {
822                 public uint32 total;
823                 public uint32 free;
824                 public uint32 largest_free_block;
825             }
827             [CCode (cname = "struct omapfb_tearsync_info")]
828             public struct TearSyncInfo {
829                 public uint8 enabled;
830                 public uint16 line;
831             }
832         }
833     }
835     /*
836      * Inotify
837      */
838     [CCode (cname = "struct inotify_event", cheader_filename = "sys/inotify.h")]
839     public struct InotifyEvent {
840         public int wd;
841         public uint32 mask;
842         public uint32 cookie;
843         public uint32 len;
844         public string name;
845     }
847     [CCode (cprefix = "IN_", cheader_filename = "sys/inotify.h")]
848     public enum InotifyFlags {
849         CLOEXEC,
850         NONBLOCK
851     }
853     [CCode (cname = "int", cprefix = "IN_", cheader_filename = "sys/inotify.h")]
854     public enum InotifyMaskFlags {
855         ACCESS,
856         ATTRIB,
857         CLOSE,
858         CLOSE_WRITE,
859         CLOSE_NOWRITE,
860         CREATE,
861         DELETE,
862         DELETE_SELF,
863         MODIFY,
864         MOVE,
865         MOVE_SELF,
866         MOVED_FROM,
867         MOVED_TO,
868         OPEN,
869         DONT_FOLLOW,
870         MASK_ADD,
871         ONESHOT,
872         ONLYDIR,
873         IGNORED,
874         ISDIR,
875         Q_OVERFLOW,
876         UNMOUNT
877     }
879     [CCode (cname = "inotify_init1", cheader_filename = "sys/inotify.h")]
880     public int inotify_init (InotifyFlags flags = 0);
881     public int inotify_add_watch (int fd, string pathname, InotifyMaskFlags mask);
882     public int inotify_rm_watch (int fd, int wd);
884     /*
885      * RfKill
886      */
887     [CCode (cname = "struct rfkill_event", cheader_filename = "linux/rfkill.h")]
888     public struct RfKillEvent {
889         public uint32 idx;
890         public RfKillType type;
891         public RfKillOp op;
892         public uint8 soft;
893         public uint8 hard;
894     }
896     [CCode (cname = "guint8", cprefix = "RFKILL_OP_", cheader_filename = "linux/rfkill.h")]
897     public enum RfKillOp {
898         ADD,
899         DEL,
900         CHANGE,
901         CHANGE_ALL
902     }
904     [CCode (cname = "guint8", cprefix = "RFKILL_STATE_", cheader_filename = "linux/rfkill.h")]
905     public enum RfKillState {
906         SOFT_BLOCKED,
907         UNBLOCKED,
908         HARD_BLOCKED
909     }
911     [CCode (cname = "guint8", cprefix = "RFKILL_TYPE_", cheader_filename = "linux/rfkill.h")]
912     public enum RfKillType {
913         ALL,
914         WLAN,
915         BLUETOOTH,
916         UWB,
917         WIMAX,
918         WWAN
919     }
921     /*
922      * SignalFd
923      */
924     [CCode (cprefix = "SFD_", cheader_filename = "sys/signalfd.h")]
925     public enum SignalFdFlags {
926         CLOEXEC,
927         NONBLOCK
928     }
930     [CCode (cheader_filename = "sys/signalfd.h")]
931     public int signalfd (int fd, Posix.sigset_t mask, SignalFdFlags flags = 0);
933     /*
934      * Misc non-posix additions
935      */
936     [CCode (cheader_filename = "dirent.h")]
937     public enum DirEntType {
938         DT_UNKNOWN,
939         DT_FIFO,
940         DT_CHR,
941         DT_DIR,
942         DT_BLK,
943         DT_REG,
944         DT_LNK,
945         DT_SOCK,
946         DT_WHT
947     }
949     [CCode (cheader_filename = "execinfo.h")]
950     public int backtrace (void* buffer, int size);
952     [CCode (cheader_filename = "execinfo.h")]
953     [CCode (array_length = false)]
954     public string[] backtrace_symbols (void* buffer, int size);
956     [CCode (cheader_filename = "execinfo.h")]
957     public void backtrace_symbols_fd (void* buffer, int size, int fd);
959     [CCode (cheader_filename = "unistd.h")]
960     public int sethostname (string name, size_t len);
962     // additional sysconf(3) constants
963     [CCode (cheader_filename = "unistd.h")]
964     public const int _SC_PHYS_PAGES;
965     [CCode (cheader_filename = "unistd.h")]
966     public const int _SC_AVPHYS_PAGES;
967     [CCode (cheader_filename = "unistd.h")]
968     public const int _SC_NPROCESSORS_CONF;
969     [CCode (cheader_filename = "unistd.h")]
970     public const int _SC_NPROCESSORS_ONLN;
972     [CCode (cheader_filename = "arpa/inet.h")]
973     public int inet_aton (string cp, out Posix.InAddr addr);
975     [CCode (cheader_filename = "sys/ioctl.h", sentinel = "")]
976     public int ioctl (int fd, int request, ...);
978     [CCode (cname = "unsigned long int", cprefix = "MS_", cheader_filename = "sys/mount.h,linux/fs.h")]
979     public enum MountFlags {
980         RDONLY,
981         NOSUID,
982         NODEV,
983         NOEXEC,
984         SYNCHRONOUS,
985         REMOUNT,
986         MANDLOCK,
987         DIRSYNC,
988         NOATIME,
989         NODIRATIME,
990         BIND,
991         MOVE,
992         REC,
993         SILENT,
994         POSIXACL,
995         UNBINDABLE,
996         PRIVATE,
997         SLAVE,
998         SHARED,
999         RELATIME,
1000         KERNMOUNT,
1001         I_VERSION,
1002         STRICTATIME,
1003         BORN,
1004         ACTIVE,
1005         NOUSER
1006     }
1008     [CCode (cname = "int", cprefix = "MNT_", cheader_filename = "sys/mount.h")]
1009     public enum UnmountFlags {
1010         FORCE,                /* Force unmounting.  */
1011         DETACH,               /* Just detach from the tree.  */
1012         EXPIRE                /* Mark for expiry.  */
1013     }
1015     [CCode (cheader_filename = "sys/mount.h")]
1016     public int mount (string source, string target, string filesystemtype, MountFlags flags = 0, string options = "");
1017     [CCode (cheader_filename = "sys/mount.h")]
1018     public int umount (string target);
1019     [CCode (cheader_filename = "sys/mount.h")]
1020     public int umount2 (string target, UnmountFlags flags);
1022     [CCode (cname = "struct winsize", cheader_filename = "termios.h", destroy_function = "")]
1023     public struct winsize {
1024         public ushort ws_row;
1025         public ushort ws_col;
1026         public ushort ws_xpixel;
1027         public ushort ws_ypixel;
1028     }
1030     [CCode (cheader_filename = "pty.h")]
1031     public Posix.pid_t forkpty (out int amaster,
1032                                 out int aslave,
1033                                 [CCode (array_length=false, array_null_terminated=true)] char[] name,
1034                                 Posix.termios? termp,
1035                                 winsize? winp);
1037     [CCode (cheader_filename = "pty.h")]
1038     public int openpty (out int amaster,
1039                         out int aslave,
1040                         [CCode (array_length=false, array_null_terminated=true)] char[] name,
1041                         Posix.termios? termp,
1042                         winsize? winp);
1044     [CCode (cprefix = "RB_", cheader_filename = "unistd.h,sys/reboot.h")]
1045     public enum RebootCommands {
1046          AUTOBOOT,
1047          HALT_SYSTEM,
1048          ENABLE_CAD,
1049          DISABLE_CAD,
1050          POWER_OFF
1051     }
1053     [CCode (cheader_filename = "unistd.h,sys/reboot.h")]
1054     public int reboot (RebootCommands cmd);
1056     [CCode (cprefix = "CLONE_", cheader_filename = "sched.h")]
1057     public enum CloneFlags {
1058         FILES,
1059         FS,
1060         NEWNS
1061     }
1063     [CCode (cheader_filename = "sched.h")]
1064     public int unshare (CloneFlags flags);
1066     [CCode (cheader_filename = "sys/time.h")]
1067     public int adjtime (Posix.timeval delta, Posix.timeval? olddelta = null);
1069     // adjtimex(2)
1070     [CCode (cprefix = "ADJ_", cheader_filename = "sys/timex.h")]
1071     public enum AdjustModes {
1072         OFFSET,
1073         FREQUENCY,
1074         MAXERROR,
1075         ESTERROR,
1076         STATUS,
1077         TIMECONST,
1078         TICK,
1079         OFFSET_SINGLESHOT
1080     }
1082     [CCode (cheader_filename = "sys/timex.h")]
1083     public const int TIME_OK;
1084     [CCode (cheader_filename = "sys/timex.h")]
1085     public const int TIME_INS;
1086     [CCode (cheader_filename = "sys/timex.h")]
1087     public const int TIME_DEL;
1088     [CCode (cheader_filename = "sys/timex.h")]
1089     public const int TIME_OOP;
1090     [CCode (cheader_filename = "sys/timex.h")]
1091     public const int TIME_WAIT;
1092     [CCode (cheader_filename = "sys/timex.h")]
1093     public const int TIME_BAD;
1095     // adjtimex(2)
1096     [CCode (cname = "struct timex", cheader_filename = "sys/timex.h")]
1097     public struct timex {
1098         public AdjustModes modes;   /* mode selector */
1099         public long offset;         /* time offset (usec) */
1100         public long freq;           /* frequency offset (scaled ppm) */
1101         public long maxerror;       /* maximum error (usec) */
1102         public long esterror;       /* estimated error (usec) */
1103         public int status;          /* clock command/status */
1104         public long constant;       /* pll time constant */
1105         public long precision;      /* clock precision (usec) (read-only) */
1106         public long tolerance;      /* clock frequency tolerance (ppm) (read-only) */
1107         public Posix.timeval time;  /* current time (read-only) */
1108         public long tick;           /* usecs between clock ticks */
1109     }
1111     [CCode (cheader_filename = "sys/timex.h")]
1112     public int adjtimex (Linux.timex buf);
1114     [CCode (cheader_filename = "time.h")]
1115     public time_t timegm (GLib.Time t);
1117     [CCode (cheader_filename = "utmp.h")]
1118     public int login_tty (int fd);
1120     // emulate gettid(2) for which no glib wrapper exists via syscall
1121     public Posix.pid_t gettid() {
1122         return (Posix.pid_t) syscall( SysCall.gettid );
1123     }
1125     // syscall(2)
1126     [CCode (cprefix = "SYS_", cname = "int")]
1127     public enum SysCall {
1128         gettid
1129     }
1131     [CCode (cname = "syscall", cheader_filename = "unistd.h,sys/syscall.h")]
1132     public int syscall (int number, ...);
1134     // mremap(2)
1135     [CCode (cprefix = "MREMAP_", cheader_filename = "sys/mman.h")]
1136     public enum MremapFlags {
1137         MAYMOVE,
1138         FIXED
1139     }
1141     [CCode (cheader_filename = "sys/mman.h")]
1142     public void *mremap (void *old_address, size_t old_size, size_t new_size, MremapFlags flags);
1144     /*
1145      * Network
1146      */
1147     [CCode (cprefix = "", lower_case_cprefix = "")]
1148     namespace Network {
1150         // interface consts, structs, and methods
1151         [CCode (cheader_filename = "net/if.h")]
1152         public const int IF_NAMESIZ;
1154         [CCode (cheader_filename = "net/if.h")]
1155         public uint if_nametoindex (string ifname);
1156         [CCode (cheader_filename = "net/if.h")]
1157         public unowned string if_indextoname (uint ifindex, string ifname);
1158         [CCode (cheader_filename = "net/if.h")]
1159         public IfNameindex if_nameindex ();
1161         [CCode (cname = "int", cprefix = "IFF_", cheader_filename = "linux/if.h")]
1162         public enum IfFlag {
1163             UP,
1164             BROADCAST,
1165             DEBUG,
1166             LOOPBACK,
1167             POINTOPOINT,
1168             NOTRAILERS,
1169             RUNNING,
1170             NOARP,
1171             PROMISC,
1172             ALLMULTI,
1173             MASTER,
1174             SLAVE,
1175             PORTSEL,
1176             AUTOMEDIA,
1177             DYNAMIC
1178         }
1180         [CCode (cname = "struct if_nameindex", cheader_filename = "linux/if.h", destroy_function = "if_freenameindex")]
1181         public struct IfNameindex {
1182             public uint if_index;
1183             public string if_name;
1184         }
1186         [CCode (cname = "struct ifmap", cheader_filename = "linux/if.h", destroy_function = "")]
1187         public struct IfMap {
1188             public ulong mem_start;
1189             public ulong mem_end;
1190             public short base_addr;
1191             public uchar irq;
1192             public uchar dma;
1193             public uchar port;
1194         }
1196         [CCode (cname = "struct ifreq", cheader_filename = "linux/if.h", destroy_function = "")]
1197         public struct IfReq {
1198             public char[] ifr_name;
1199             public Posix.SockAddr ifr_addr;
1200             public Posix.SockAddr ifr_dstaddr;
1201             public Posix.SockAddr ifr_broadaddr;
1202             public Posix.SockAddr ifr_netmask;
1203             public Posix.SockAddr ifr_hwaddr;
1204             public short ifr_flags;
1205             public int ifr_metric;
1206             public int ifr_mtu;
1207             public IfMap ifr_map;
1208             public char[] ifr_slave;
1209             public string ifr_data;
1210             public int ifr_ifindex;
1211             public int ifr_bandwidth;
1212             public int ifr_qlen;
1213             public char[] ifr_newname;
1214         }
1216         [CCode (cname = "struct ifconf", cheader_filename = "linux/if.h", destroy_function = "")]
1217         public struct IfConf {
1218             public int ifc_len;
1219             public string ifc_buf;
1220             public IfReq ifc_req;
1221         }
1223         [CCode (cname = "struct ifaddrmsg", cheader_filename = "linux/if_addr.h", destroy_function = "")]
1224         public struct IfAddrMsg {
1225             public uint8 ifa_family;
1226             public uint8 ifa_prefixlen;
1227             public uint8 ifa_flags;
1228             public uint8 ifa_scope;
1229             public uint32 ifa_index;
1230         }
1232         [CCode (cprefix = "IFA_", cheader_filename = "linux/if_addr.h")]
1233         enum IfAddrType {
1234             UNSPEC,
1235             ADDRESS,
1236             LOCAL,
1237             LABEL,
1238             BROADCAST,
1239             ANYCAST,
1240             CACHEINFO,
1241             MULTICAST
1242         }
1244         [CCode (cheader_filename = "linux/if_addr.h")]
1245         public int IFA_PAYLOAD (Linux.Netlink.NlMsgHdr nlh);
1246         [CCode (cheader_filename = "linux/if_addr.h")]
1247         public Linux.Netlink.RtAttr* IFA_RTA (Linux.Network.IfAddrMsg* msg);
1249         [CCode (cprefix = "ARPHRD_", cheader_filename = "linux/if_arp.h")]
1250         enum IfArpHeaderType {
1251             NETROM,
1252             ETHER,
1253             EETHER,
1254             AX25,
1255             PRONET,
1256             CHAOS,
1257             IEEE802,
1258             ARCNET,
1259             APPLETLK,
1260             DLCI,
1261             ATM,
1262             METRICOM,
1263             IEEE1394,
1264             EUI64,
1265             INFINIBAND,
1266             SLIP,
1267             CSLIP,
1268             SLIP6,
1269             CSLIP6,
1270             RSRVD,
1271             ADAPT,
1272             ROSE,
1273             X25,
1274             HWX25,
1275             CAN,
1276             PPP,
1277             CISCO,
1278             HDLC,
1279             LAPB,
1280             DDCMP,
1281             RAWHDLC,
1282             TUNNEL,
1283             TUNNEL6,
1284             FRAD,
1285             SKIP,
1286             LOOPBACK,
1287             LOCALTLK,
1288             FDDI,
1289             BIF,
1290             SIT,
1291             IPDDP,
1292             IPGRE,
1293             PIMREG,
1294             HIPPI,
1295             ASH,
1296             ECONET,
1297             IRDA,
1298             FCPP,
1299             FCAL,
1300             FCPL,
1301             FCFABRIC,
1302             IEEE802_TR,
1303             IEEE80211,
1304             IEEE80211_PRISM,
1305             IEEE80211_RADIOTAP,
1306             IEEE802154,
1307             PHONET,
1308             PHONET_PIPE,
1309             CAIF,
1310             VOID,
1311             NONE
1312         }
1314         [CCode (cprefix = "ARPOP_", cheader_filename = "linux/if_arp.h")]
1315         enum IfArpOpcode {
1316             REQUEST,
1317             REPLY,
1318             RREQUEST,
1319             RREPLY,
1320             InREQUEST,
1321             InREPLY,
1322             ARPOP_NAK
1323         }
1325         // route consts, structs, and methods
1326         [CCode (cname = "struct rtentry", cheader_filename = "net/route.h", destroy_function = "")]
1327         public struct RtEntry {
1328             public Posix.SockAddr rt_dst;
1329             public Posix.SockAddr rt_gateway;
1330             public Posix.SockAddr rt_genmask;
1331             public RtFlag rt_flags;
1332             public short rt_metric;
1333             public string rt_dev;
1334             public ulong rt_mtu;
1335             public ulong rt_window;
1336             public ushort rt_irtt;
1337         }
1339         [CCode (cname = "ushort", cprefix = "RTF_", cheader_filename = "net/route.h")]
1340         public enum RtFlag {
1341             UP,
1342             GATEWAY,
1343             HOST,
1344             REINSTATE,
1345             DYNAMIC,
1346             MODIFIED,
1347             MTU,
1348             WINDOW,
1349             IRTT,
1350             REJECT,
1351             STATIC,
1352             XRESOLVE,
1353             NOFORWARD,
1354             THROW,
1355             NOPMTUDISC
1356         }
1358         /* ioctls */
1359         [CCode (cheader_filename = "sys/ioctl.h")]
1360         public const int SIOCADDRT;
1361         [CCode (cheader_filename = "sys/ioctl.h")]
1362         public const int SIOCDELRT;
1363         [CCode (cheader_filename = "sys/ioctl.h")]
1364         public const int SIOCRTMSG;
1365         [CCode (cheader_filename = "sys/ioctl.h")]
1366         public const int SIOCGIFNAME;
1367         [CCode (cheader_filename = "sys/ioctl.h")]
1368         public const int SIOCSIFLINK;
1369         [CCode (cheader_filename = "sys/ioctl.h")]
1370         public const int SIOCGIFCONF;
1371         [CCode (cheader_filename = "sys/ioctl.h")]
1372         public const int SIOCGIFFLAGS;
1373         [CCode (cheader_filename = "sys/ioctl.h")]
1374         public const int SIOCSIFFLAGS;
1375         [CCode (cheader_filename = "sys/ioctl.h")]
1376         public const int SIOCGIFADDR;
1377         [CCode (cheader_filename = "sys/ioctl.h")]
1378         public const int SIOCSIFADDR;
1379         [CCode (cheader_filename = "sys/ioctl.h")]
1380         public const int SIOCGIFDSTADDR;
1381         [CCode (cheader_filename = "sys/ioctl.h")]
1382         public const int SIOCSIFDSTADDR;
1383         [CCode (cheader_filename = "sys/ioctl.h")]
1384         public const int SIOCGIFBRDADDR;
1385         [CCode (cheader_filename = "sys/ioctl.h")]
1386         public const int SIOCSIFBRDADDR;
1387         [CCode (cheader_filename = "sys/ioctl.h")]
1388         public const int SIOCGIFNETMASK;
1389         [CCode (cheader_filename = "sys/ioctl.h")]
1390         public const int SIOCSIFNETMASK;
1391         [CCode (cheader_filename = "sys/ioctl.h")]
1392         public const int SIOCGIFMETRIC;
1393         [CCode (cheader_filename = "sys/ioctl.h")]
1394         public const int SIOCSIFMETRIC;
1395         [CCode (cheader_filename = "sys/ioctl.h")]
1396         public const int SIOCGIFMEM;
1397         [CCode (cheader_filename = "sys/ioctl.h")]
1398         public const int SIOCSIFMEM;
1399         [CCode (cheader_filename = "sys/ioctl.h")]
1400         public const int SIOCGIFMTU;
1401         [CCode (cheader_filename = "sys/ioctl.h")]
1402         public const int SIOCSIFMTU;
1403         [CCode (cheader_filename = "sys/ioctl.h")]
1404         public const int SIOCSIFNAME;
1405         [CCode (cheader_filename = "sys/ioctl.h")]
1406         public const int SIOCSIFHWADDR;
1407         [CCode (cheader_filename = "sys/ioctl.h")]
1408         public const int SIOCGIFENCAP;
1409         [CCode (cheader_filename = "sys/ioctl.h")]
1410         public const int SIOCSIFENCAP;
1411         [CCode (cheader_filename = "sys/ioctl.h")]
1412         public const int SIOCGIFHWADDR;
1413         [CCode (cheader_filename = "sys/ioctl.h")]
1414         public const int SIOCGIFSLAVE;
1415         [CCode (cheader_filename = "sys/ioctl.h")]
1416         public const int SIOCSIFSLAVE;
1417         [CCode (cheader_filename = "sys/ioctl.h")]
1418         public const int SIOCADDMULTI;
1419         [CCode (cheader_filename = "sys/ioctl.h")]
1420         public const int SIOCDELMULTI;
1421         [CCode (cheader_filename = "sys/ioctl.h")]
1422         public const int SIOCGIFINDEX;
1423         [CCode (cheader_filename = "sys/ioctl.h")]
1424         public const int SIOCSIFPFLAGS;
1425         [CCode (cheader_filename = "sys/ioctl.h")]
1426         public const int SIOCGIFPFLAGS;
1427         [CCode (cheader_filename = "sys/ioctl.h")]
1428         public const int SIOCDIFADDR;
1429         [CCode (cheader_filename = "sys/ioctl.h")]
1430         public const int SIOCSIFHWBROADCAST;
1431         [CCode (cheader_filename = "sys/ioctl.h")]
1432         public const int SIOCGIFCOUNT;
1433         [CCode (cheader_filename = "sys/ioctl.h")]
1434         public const int SIOCGIFBR;
1435         [CCode (cheader_filename = "sys/ioctl.h")]
1436         public const int SIOCSIFBR;
1437         [CCode (cheader_filename = "sys/ioctl.h")]
1438         public const int SIOCGIFTXQLEN;
1439         [CCode (cheader_filename = "sys/ioctl.h")]
1440         public const int SIOCSIFTXQLEN;
1441         [CCode (cheader_filename = "sys/ioctl.h")]
1442         public const int SIOCDARP;
1443         [CCode (cheader_filename = "sys/ioctl.h")]
1444         public const int SIOCGARP;
1445         [CCode (cheader_filename = "sys/ioctl.h")]
1446         public const int SIOCSARP;
1447         [CCode (cheader_filename = "sys/ioctl.h")]
1448         public const int SIOCDRARP;
1449         [CCode (cheader_filename = "sys/ioctl.h")]
1450         public const int SIOCGRARP;
1451         [CCode (cheader_filename = "sys/ioctl.h")]
1452         public const int SIOCSRARP;
1453         [CCode (cheader_filename = "sys/ioctl.h")]
1454         public const int SIOCGIFMAP;
1455         [CCode (cheader_filename = "sys/ioctl.h")]
1456         public const int SIOCSIFMAP;
1457         [CCode (cheader_filename = "sys/ioctl.h")]
1458         public const int SIOCADDDLCI;
1459         [CCode (cheader_filename = "sys/ioctl.h")]
1460         public const int SIOCDELDLCI;
1461     }
1463     /*
1464      * Input subsystem
1465      */
1466     [CCode (cprefix = "", lower_case_cprefix = "")]
1467     namespace Input {
1469         /*
1470          * subsystem structures
1471          */
1473         [CCode (cname = "struct input_event", cheader_filename = "linux/input.h")]
1474         public struct Event {
1475             public Posix.timeval time;
1476             public uint16 type;
1477             public uint16 code;
1478             public int32 value;
1479         }
1481         [CCode (cname = "struct input_id", cheader_filename = "linux/input.h")]
1482         public struct Id {
1483             public uint16 bustype;
1484             public uint16 vendor;
1485             public uint16 product;
1486             public uint16 version;
1487         }
1489         [CCode (cname = "struct input_absinfo", cheader_filename = "linux/input.h")]
1490         public struct AbsInfo {
1491             public int32 value;
1492             public int32 minimum;
1493             public int32 maximum;
1494             public int32 fuzz;
1495             public int32 flat;
1496         }
1498         /*
1499          * ioctls
1500          */
1502         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1503         public const int EVIOCGVERSION;
1504         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1505         public const int EVIOCGID;
1506         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1507         public const int EVIOCGREP;
1508         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1509         public const int EVIOCSREP;
1510         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1511         public const int EVIOCGKEYCODE;
1512         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1513         public const int EVIOCSKEYCODE;
1515         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1516         public int EVIOCGNAME( uint len );
1517         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1518         public int EVIOCGPHYS( uint len );
1519         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1520         public int EVIOCGUNIQ( uint len );
1522         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1523         public int EVIOCGKEY( uint len );
1524         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1525         public int EVIOCGLED( uint len );
1526         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1527         public int EVIOCGSND( uint len );
1528         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1529         public int EVIOCGSW( uint len );
1531         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1532         public int EVIOCGBIT( uint ev, uint len );
1533         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1534         public int EVIOCGABS( uint abs );
1535         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1536         public int EVIOCSABS( uint abs );
1538         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1539         public const int EVIOCSFF;
1540         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1541         public const int EVIOCRMFF;
1542         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1543         public const int EVIOCGEFFECTS;
1544         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1545         public const int EVIOCGRAB;
1547         /*
1548          * event types
1549          */
1551         [CCode (cheader_filename = "linux/input.h")]
1552         public const uint16 EV_SYN;
1553         [CCode (cheader_filename = "linux/input.h")]
1554         public const uint16 EV_KEY;
1555         [CCode (cheader_filename = "linux/input.h")]
1556         public const uint16 EV_REL;
1557         [CCode (cheader_filename = "linux/input.h")]
1558         public const uint16 EV_ABS;
1559         [CCode (cheader_filename = "linux/input.h")]
1560         public const uint16 EV_MSC;
1561         [CCode (cheader_filename = "linux/input.h")]
1562         public const uint16 EV_SW;
1563         [CCode (cheader_filename = "linux/input.h")]
1564         public const uint16 EV_LED;
1565         [CCode (cheader_filename = "linux/input.h")]
1566         public const uint16 EV_SND;
1567         [CCode (cheader_filename = "linux/input.h")]
1568         public const uint16 EV_REP;
1569         [CCode (cheader_filename = "linux/input.h")]
1570         public const uint16 EV_FF;
1571         [CCode (cheader_filename = "linux/input.h")]
1572         public const uint16 EV_PWR;
1573         [CCode (cheader_filename = "linux/input.h")]
1574         public const uint16 EV_FF_STATUS;
1575         [CCode (cheader_filename = "linux/input.h")]
1576         public const uint16 EV_MAX;
1578         /*
1579          * synchronization events
1580          */
1582         [CCode (cheader_filename = "linux/input.h")]
1583         public const int SYN_REPORT;
1584         [CCode (cheader_filename = "linux/input.h")]
1585         public const int SYN_CONFIG;
1587         /*
1588          * keys, switches, buttons, etc.
1589          */
1591         [CCode (cheader_filename = "linux/input.h")]
1592         public const int KEY_RESERVED;
1593         [CCode (cheader_filename = "linux/input.h")]
1594         public const int KEY_ESC;
1595         [CCode (cheader_filename = "linux/input.h")]
1596         public const int KEY_1;
1597         [CCode (cheader_filename = "linux/input.h")]
1598         public const int KEY_2;
1599         [CCode (cheader_filename = "linux/input.h")]
1600         public const int KEY_3;
1601         [CCode (cheader_filename = "linux/input.h")]
1602         public const int KEY_4;
1603         [CCode (cheader_filename = "linux/input.h")]
1604         public const int KEY_5;
1605         [CCode (cheader_filename = "linux/input.h")]
1606         public const int KEY_6;
1607         [CCode (cheader_filename = "linux/input.h")]
1608         public const int KEY_7;
1609         [CCode (cheader_filename = "linux/input.h")]
1610         public const int KEY_8;
1611         [CCode (cheader_filename = "linux/input.h")]
1612         public const int KEY_9;
1613         [CCode (cheader_filename = "linux/input.h")]
1614         public const int KEY_0;
1615         [CCode (cheader_filename = "linux/input.h")]
1616         public const int KEY_MINUS;
1617         [CCode (cheader_filename = "linux/input.h")]
1618         public const int KEY_EQUAL;
1619         [CCode (cheader_filename = "linux/input.h")]
1620         public const int KEY_BACKSPACE;
1621         [CCode (cheader_filename = "linux/input.h")]
1622         public const int KEY_TAB;
1623         [CCode (cheader_filename = "linux/input.h")]
1624         public const int KEY_Q;
1625         [CCode (cheader_filename = "linux/input.h")]
1626         public const int KEY_W;
1627         [CCode (cheader_filename = "linux/input.h")]
1628         public const int KEY_E;
1629         [CCode (cheader_filename = "linux/input.h")]
1630         public const int KEY_R;
1631         [CCode (cheader_filename = "linux/input.h")]
1632         public const int KEY_T;
1633         [CCode (cheader_filename = "linux/input.h")]
1634         public const int KEY_Y;
1635         [CCode (cheader_filename = "linux/input.h")]
1636         public const int KEY_U;
1637         [CCode (cheader_filename = "linux/input.h")]
1638         public const int KEY_I;
1639         [CCode (cheader_filename = "linux/input.h")]
1640         public const int KEY_O;
1641         [CCode (cheader_filename = "linux/input.h")]
1642         public const int KEY_P;
1643         [CCode (cheader_filename = "linux/input.h")]
1644         public const int KEY_LEFTBRACE;
1645         [CCode (cheader_filename = "linux/input.h")]
1646         public const int KEY_RIGHTBRACE;
1647         [CCode (cheader_filename = "linux/input.h")]
1648         public const int KEY_ENTER;
1649         [CCode (cheader_filename = "linux/input.h")]
1650         public const int KEY_LEFTCTRL;
1651         [CCode (cheader_filename = "linux/input.h")]
1652         public const int KEY_A;
1653         [CCode (cheader_filename = "linux/input.h")]
1654         public const int KEY_S;
1655         [CCode (cheader_filename = "linux/input.h")]
1656         public const int KEY_D;
1657         [CCode (cheader_filename = "linux/input.h")]
1658         public const int KEY_F;
1659         [CCode (cheader_filename = "linux/input.h")]
1660         public const int KEY_G;
1661         [CCode (cheader_filename = "linux/input.h")]
1662         public const int KEY_H;
1663         [CCode (cheader_filename = "linux/input.h")]
1664         public const int KEY_J;
1665         [CCode (cheader_filename = "linux/input.h")]
1666         public const int KEY_K;
1667         [CCode (cheader_filename = "linux/input.h")]
1668         public const int KEY_L;
1669         [CCode (cheader_filename = "linux/input.h")]
1670         public const int KEY_SEMICOLON;
1671         [CCode (cheader_filename = "linux/input.h")]
1672         public const int KEY_APOSTROPHE;
1673         [CCode (cheader_filename = "linux/input.h")]
1674         public const int KEY_GRAVE;
1675         [CCode (cheader_filename = "linux/input.h")]
1676         public const int KEY_LEFTSHIFT;
1677         [CCode (cheader_filename = "linux/input.h")]
1678         public const int KEY_BACKSLASH;
1679         [CCode (cheader_filename = "linux/input.h")]
1680         public const int KEY_Z;
1681         [CCode (cheader_filename = "linux/input.h")]
1682         public const int KEY_X;
1683         [CCode (cheader_filename = "linux/input.h")]
1684         public const int KEY_C;
1685         [CCode (cheader_filename = "linux/input.h")]
1686         public const int KEY_V;
1687         [CCode (cheader_filename = "linux/input.h")]
1688         public const int KEY_B;
1689         [CCode (cheader_filename = "linux/input.h")]
1690         public const int KEY_N;
1691         [CCode (cheader_filename = "linux/input.h")]
1692         public const int KEY_M;
1693         [CCode (cheader_filename = "linux/input.h")]
1694         public const int KEY_COMMA;
1695         [CCode (cheader_filename = "linux/input.h")]
1696         public const int KEY_DOT;
1697         [CCode (cheader_filename = "linux/input.h")]
1698         public const int KEY_SLASH;
1699         [CCode (cheader_filename = "linux/input.h")]
1700         public const int KEY_RIGHTSHIFT;
1701         [CCode (cheader_filename = "linux/input.h")]
1702         public const int KEY_KPASTERISK;
1703         [CCode (cheader_filename = "linux/input.h")]
1704         public const int KEY_LEFTALT;
1705         [CCode (cheader_filename = "linux/input.h")]
1706         public const int KEY_SPACE;
1707         [CCode (cheader_filename = "linux/input.h")]
1708         public const int KEY_CAPSLOCK;
1709         [CCode (cheader_filename = "linux/input.h")]
1710         public const int KEY_F1;
1711         [CCode (cheader_filename = "linux/input.h")]
1712         public const int KEY_F2;
1713         [CCode (cheader_filename = "linux/input.h")]
1714         public const int KEY_F3;
1715         [CCode (cheader_filename = "linux/input.h")]
1716         public const int KEY_F4;
1717         [CCode (cheader_filename = "linux/input.h")]
1718         public const int KEY_F5;
1719         [CCode (cheader_filename = "linux/input.h")]
1720         public const int KEY_F6;
1721         [CCode (cheader_filename = "linux/input.h")]
1722         public const int KEY_F7;
1723         [CCode (cheader_filename = "linux/input.h")]
1724         public const int KEY_F8;
1725         [CCode (cheader_filename = "linux/input.h")]
1726         public const int KEY_F9;
1727         [CCode (cheader_filename = "linux/input.h")]
1728         public const int KEY_F10;
1729         [CCode (cheader_filename = "linux/input.h")]
1730         public const int KEY_NUMLOCK;
1731         [CCode (cheader_filename = "linux/input.h")]
1732         public const int KEY_SCROLLLOCK;
1733         [CCode (cheader_filename = "linux/input.h")]
1734         public const int KEY_KP7;
1735         [CCode (cheader_filename = "linux/input.h")]
1736         public const int KEY_KP8;
1737         [CCode (cheader_filename = "linux/input.h")]
1738         public const int KEY_KP9;
1739         [CCode (cheader_filename = "linux/input.h")]
1740         public const int KEY_KPMINUS;
1741         [CCode (cheader_filename = "linux/input.h")]
1742         public const int KEY_KP4;
1743         [CCode (cheader_filename = "linux/input.h")]
1744         public const int KEY_KP5;
1745         [CCode (cheader_filename = "linux/input.h")]
1746         public const int KEY_KP6;
1747         [CCode (cheader_filename = "linux/input.h")]
1748         public const int KEY_KPPLUS;
1749         [CCode (cheader_filename = "linux/input.h")]
1750         public const int KEY_KP1;
1751         [CCode (cheader_filename = "linux/input.h")]
1752         public const int KEY_KP2;
1753         [CCode (cheader_filename = "linux/input.h")]
1754         public const int KEY_KP3;
1755         [CCode (cheader_filename = "linux/input.h")]
1756         public const int KEY_KP0;
1757         [CCode (cheader_filename = "linux/input.h")]
1758         public const int KEY_KPDOT;
1760         [CCode (cheader_filename = "linux/input.h")]
1761         public const int KEY_ZENKAKUHANKAKU;
1762         [CCode (cheader_filename = "linux/input.h")]
1763         public const int KEY_102ND;
1764         [CCode (cheader_filename = "linux/input.h")]
1765         public const int KEY_F11;
1766         [CCode (cheader_filename = "linux/input.h")]
1767         public const int KEY_F12;
1768         [CCode (cheader_filename = "linux/input.h")]
1769         public const int KEY_RO;
1770         [CCode (cheader_filename = "linux/input.h")]
1771         public const int KEY_KATAKANA;
1772         [CCode (cheader_filename = "linux/input.h")]
1773         public const int KEY_HIRAGANA;
1774         [CCode (cheader_filename = "linux/input.h")]
1775         public const int KEY_HENKAN;
1776         [CCode (cheader_filename = "linux/input.h")]
1777         public const int KEY_KATAKANAHIRAGANA;
1778         [CCode (cheader_filename = "linux/input.h")]
1779         public const int KEY_MUHENKAN;
1780         [CCode (cheader_filename = "linux/input.h")]
1781         public const int KEY_KPJPCOMMA;
1782         [CCode (cheader_filename = "linux/input.h")]
1783         public const int KEY_KPENTER;
1784         [CCode (cheader_filename = "linux/input.h")]
1785         public const int KEY_RIGHTCTRL;
1786         [CCode (cheader_filename = "linux/input.h")]
1787         public const int KEY_KPSLASH;
1788         [CCode (cheader_filename = "linux/input.h")]
1789         public const int KEY_SYSRQ;
1790         [CCode (cheader_filename = "linux/input.h")]
1791         public const int KEY_RIGHTALT;
1792         [CCode (cheader_filename = "linux/input.h")]
1793         public const int KEY_LINEFEED;
1794         [CCode (cheader_filename = "linux/input.h")]
1795         public const int KEY_HOME;
1796         [CCode (cheader_filename = "linux/input.h")]
1797         public const int KEY_UP;
1798         [CCode (cheader_filename = "linux/input.h")]
1799         public const int KEY_PAGEUP;
1800         [CCode (cheader_filename = "linux/input.h")]
1801         public const int KEY_LEFT;
1802         [CCode (cheader_filename = "linux/input.h")]
1803         public const int KEY_RIGHT;
1804         [CCode (cheader_filename = "linux/input.h")]
1805         public const int KEY_END;
1806         [CCode (cheader_filename = "linux/input.h")]
1807         public const int KEY_DOWN;
1808         [CCode (cheader_filename = "linux/input.h")]
1809         public const int KEY_PAGEDOWN;
1810         [CCode (cheader_filename = "linux/input.h")]
1811         public const int KEY_INSERT;
1812         [CCode (cheader_filename = "linux/input.h")]
1813         public const int KEY_DELETE;
1814         [CCode (cheader_filename = "linux/input.h")]
1815         public const int KEY_MACRO;
1816         [CCode (cheader_filename = "linux/input.h")]
1817         public const int KEY_MUTE;
1818         [CCode (cheader_filename = "linux/input.h")]
1819         public const int KEY_VOLUMEDOWN;
1820         [CCode (cheader_filename = "linux/input.h")]
1821         public const int KEY_VOLUMEUP;
1822         [CCode (cheader_filename = "linux/input.h")]
1823         public const int KEY_POWER;
1824         [CCode (cheader_filename = "linux/input.h")]
1825         public const int KEY_KPEQUAL;
1826         [CCode (cheader_filename = "linux/input.h")]
1827         public const int KEY_KPPLUSMINUS;
1828         [CCode (cheader_filename = "linux/input.h")]
1829         public const int KEY_PAUSE;
1830         [CCode (cheader_filename = "linux/input.h")]
1831         public const int KEY_SCALE;
1833         [CCode (cheader_filename = "linux/input.h")]
1834         public const int KEY_KPCOMMA;
1835         [CCode (cheader_filename = "linux/input.h")]
1836         public const int KEY_HANGEUL;
1837         [CCode (cheader_filename = "linux/input.h")]
1838         public const int KEY_HANGUEL;
1839         [CCode (cheader_filename = "linux/input.h")]
1840         public const int KEY_HANJA;
1841         [CCode (cheader_filename = "linux/input.h")]
1842         public const int KEY_YEN;
1843         [CCode (cheader_filename = "linux/input.h")]
1844         public const int KEY_LEFTMETA;
1845         [CCode (cheader_filename = "linux/input.h")]
1846         public const int KEY_RIGHTMETA;
1847         [CCode (cheader_filename = "linux/input.h")]
1848         public const int KEY_COMPOSE;
1850         [CCode (cheader_filename = "linux/input.h")]
1851         public const int KEY_STOP;
1852         [CCode (cheader_filename = "linux/input.h")]
1853         public const int KEY_AGAIN;
1854         [CCode (cheader_filename = "linux/input.h")]
1855         public const int KEY_PROPS;
1856         [CCode (cheader_filename = "linux/input.h")]
1857         public const int KEY_UNDO;
1858         [CCode (cheader_filename = "linux/input.h")]
1859         public const int KEY_FRONT;
1860         [CCode (cheader_filename = "linux/input.h")]
1861         public const int KEY_COPY;
1862         [CCode (cheader_filename = "linux/input.h")]
1863         public const int KEY_OPEN;
1864         [CCode (cheader_filename = "linux/input.h")]
1865         public const int KEY_PASTE;
1866         [CCode (cheader_filename = "linux/input.h")]
1867         public const int KEY_FIND;
1868         [CCode (cheader_filename = "linux/input.h")]
1869         public const int KEY_CUT;
1870         [CCode (cheader_filename = "linux/input.h")]
1871         public const int KEY_HELP;
1872         [CCode (cheader_filename = "linux/input.h")]
1873         public const int KEY_MENU;
1874         [CCode (cheader_filename = "linux/input.h")]
1875         public const int KEY_CALC;
1876         [CCode (cheader_filename = "linux/input.h")]
1877         public const int KEY_SETUP;
1878         [CCode (cheader_filename = "linux/input.h")]
1879         public const int KEY_SLEEP;
1880         [CCode (cheader_filename = "linux/input.h")]
1881         public const int KEY_WAKEUP;
1882         [CCode (cheader_filename = "linux/input.h")]
1883         public const int KEY_FILE;
1884         [CCode (cheader_filename = "linux/input.h")]
1885         public const int KEY_SENDFILE;
1886         [CCode (cheader_filename = "linux/input.h")]
1887         public const int KEY_DELETEFILE;
1888         [CCode (cheader_filename = "linux/input.h")]
1889         public const int KEY_XFER;
1890         [CCode (cheader_filename = "linux/input.h")]
1891         public const int KEY_PROG1;
1892         [CCode (cheader_filename = "linux/input.h")]
1893         public const int KEY_PROG2;
1894         [CCode (cheader_filename = "linux/input.h")]
1895         public const int KEY_WWW;
1896         [CCode (cheader_filename = "linux/input.h")]
1897         public const int KEY_MSDOS;
1898         [CCode (cheader_filename = "linux/input.h")]
1899         public const int KEY_COFFEE;
1900         [CCode (cheader_filename = "linux/input.h")]
1901         public const int KEY_SCREENLOCK;
1902         [CCode (cheader_filename = "linux/input.h")]
1903         public const int KEY_DIRECTION;
1904         [CCode (cheader_filename = "linux/input.h")]
1905         public const int KEY_CYCLEWINDOWS;
1906         [CCode (cheader_filename = "linux/input.h")]
1907         public const int KEY_MAIL;
1908         [CCode (cheader_filename = "linux/input.h")]
1909         public const int KEY_BOOKMARKS;
1910         [CCode (cheader_filename = "linux/input.h")]
1911         public const int KEY_COMPUTER;
1912         [CCode (cheader_filename = "linux/input.h")]
1913         public const int KEY_BACK;
1914         [CCode (cheader_filename = "linux/input.h")]
1915         public const int KEY_FORWARD;
1916         [CCode (cheader_filename = "linux/input.h")]
1917         public const int KEY_CLOSECD;
1918         [CCode (cheader_filename = "linux/input.h")]
1919         public const int KEY_EJECTCD;
1920         [CCode (cheader_filename = "linux/input.h")]
1921         public const int KEY_EJECTCLOSECD;
1922         [CCode (cheader_filename = "linux/input.h")]
1923         public const int KEY_NEXTSONG;
1924         [CCode (cheader_filename = "linux/input.h")]
1925         public const int KEY_PLAYPAUSE;
1926         [CCode (cheader_filename = "linux/input.h")]
1927         public const int KEY_PREVIOUSSONG;
1928         [CCode (cheader_filename = "linux/input.h")]
1929         public const int KEY_STOPCD;
1930         [CCode (cheader_filename = "linux/input.h")]
1931         public const int KEY_RECORD;
1932         [CCode (cheader_filename = "linux/input.h")]
1933         public const int KEY_REWIND;
1934         [CCode (cheader_filename = "linux/input.h")]
1935         public const int KEY_PHONE;
1936         [CCode (cheader_filename = "linux/input.h")]
1937         public const int KEY_ISO;
1938         [CCode (cheader_filename = "linux/input.h")]
1939         public const int KEY_CONFIG;
1940         [CCode (cheader_filename = "linux/input.h")]
1941         public const int KEY_HOMEPAGE;
1942         [CCode (cheader_filename = "linux/input.h")]
1943         public const int KEY_REFRESH;
1944         [CCode (cheader_filename = "linux/input.h")]
1945         public const int KEY_EXIT;
1946         [CCode (cheader_filename = "linux/input.h")]
1947         public const int KEY_MOVE;
1948         [CCode (cheader_filename = "linux/input.h")]
1949         public const int KEY_EDIT;
1950         [CCode (cheader_filename = "linux/input.h")]
1951         public const int KEY_SCROLLUP;
1952         [CCode (cheader_filename = "linux/input.h")]
1953         public const int KEY_SCROLLDOWN;
1954         [CCode (cheader_filename = "linux/input.h")]
1955         public const int KEY_KPLEFTPAREN;
1956         [CCode (cheader_filename = "linux/input.h")]
1957         public const int KEY_KPRIGHTPAREN;
1958         [CCode (cheader_filename = "linux/input.h")]
1959         public const int KEY_NEW;
1960         [CCode (cheader_filename = "linux/input.h")]
1961         public const int KEY_REDO;
1963         [CCode (cheader_filename = "linux/input.h")]
1964         public const int KEY_F13;
1965         [CCode (cheader_filename = "linux/input.h")]
1966         public const int KEY_F14;
1967         [CCode (cheader_filename = "linux/input.h")]
1968         public const int KEY_F15;
1969         [CCode (cheader_filename = "linux/input.h")]
1970         public const int KEY_F16;
1971         [CCode (cheader_filename = "linux/input.h")]
1972         public const int KEY_F17;
1973         [CCode (cheader_filename = "linux/input.h")]
1974         public const int KEY_F18;
1975         [CCode (cheader_filename = "linux/input.h")]
1976         public const int KEY_F19;
1977         [CCode (cheader_filename = "linux/input.h")]
1978         public const int KEY_F20;
1979         [CCode (cheader_filename = "linux/input.h")]
1980         public const int KEY_F21;
1981         [CCode (cheader_filename = "linux/input.h")]
1982         public const int KEY_F22;
1983         [CCode (cheader_filename = "linux/input.h")]
1984         public const int KEY_F23;
1985         [CCode (cheader_filename = "linux/input.h")]
1986         public const int KEY_F24;
1988         [CCode (cheader_filename = "linux/input.h")]
1989         public const int KEY_PLAYCD;
1990         [CCode (cheader_filename = "linux/input.h")]
1991         public const int KEY_PAUSECD;
1992         [CCode (cheader_filename = "linux/input.h")]
1993         public const int KEY_PROG3;
1994         [CCode (cheader_filename = "linux/input.h")]
1995         public const int KEY_PROG4;
1996         [CCode (cheader_filename = "linux/input.h")]
1997         public const int KEY_DASHBOARD;
1998         [CCode (cheader_filename = "linux/input.h")]
1999         public const int KEY_SUSPEND;
2000         [CCode (cheader_filename = "linux/input.h")]
2001         public const int KEY_CLOSE;
2002         [CCode (cheader_filename = "linux/input.h")]
2003         public const int KEY_PLAY;
2004         [CCode (cheader_filename = "linux/input.h")]
2005         public const int KEY_FASTFORWARD;
2006         [CCode (cheader_filename = "linux/input.h")]
2007         public const int KEY_BASSBOOST;
2008         [CCode (cheader_filename = "linux/input.h")]
2009         public const int KEY_PRINT;
2010         [CCode (cheader_filename = "linux/input.h")]
2011         public const int KEY_HP;
2012         [CCode (cheader_filename = "linux/input.h")]
2013         public const int KEY_CAMERA;
2014         [CCode (cheader_filename = "linux/input.h")]
2015         public const int KEY_SOUND;
2016         [CCode (cheader_filename = "linux/input.h")]
2017         public const int KEY_QUESTION;
2018         [CCode (cheader_filename = "linux/input.h")]
2019         public const int KEY_EMAIL;
2020         [CCode (cheader_filename = "linux/input.h")]
2021         public const int KEY_CHAT;
2022         [CCode (cheader_filename = "linux/input.h")]
2023         public const int KEY_SEARCH;
2024         [CCode (cheader_filename = "linux/input.h")]
2025         public const int KEY_CONNECT;
2026         [CCode (cheader_filename = "linux/input.h")]
2027         public const int KEY_FINANCE;
2028         [CCode (cheader_filename = "linux/input.h")]
2029         public const int KEY_SPORT;
2030         [CCode (cheader_filename = "linux/input.h")]
2031         public const int KEY_SHOP;
2032         [CCode (cheader_filename = "linux/input.h")]
2033         public const int KEY_ALTERASE;
2034         [CCode (cheader_filename = "linux/input.h")]
2035         public const int KEY_CANCEL;
2036         [CCode (cheader_filename = "linux/input.h")]
2037         public const int KEY_BRIGHTNESSDOWN;
2038         [CCode (cheader_filename = "linux/input.h")]
2039         public const int KEY_BRIGHTNESSUP;
2040         [CCode (cheader_filename = "linux/input.h")]
2041         public const int KEY_MEDIA;
2043         [CCode (cheader_filename = "linux/input.h")]
2044         public const int KEY_SWITCHVIDEOMODE;
2045         [CCode (cheader_filename = "linux/input.h")]
2046         public const int KEY_KBDILLUMTOGGLE;
2047         [CCode (cheader_filename = "linux/input.h")]
2048         public const int KEY_KBDILLUMDOWN;
2049         [CCode (cheader_filename = "linux/input.h")]
2050         public const int KEY_KBDILLUMUP;
2052         [CCode (cheader_filename = "linux/input.h")]
2053         public const int KEY_SEND;
2054         [CCode (cheader_filename = "linux/input.h")]
2055         public const int KEY_REPLY;
2056         [CCode (cheader_filename = "linux/input.h")]
2057         public const int KEY_FORWARDMAIL;
2058         [CCode (cheader_filename = "linux/input.h")]
2059         public const int KEY_SAVE;
2060         [CCode (cheader_filename = "linux/input.h")]
2061         public const int KEY_DOCUMENTS;
2063         [CCode (cheader_filename = "linux/input.h")]
2064         public const int KEY_BATTERY;
2066         [CCode (cheader_filename = "linux/input.h")]
2067         public const int KEY_BLUETOOTH;
2068         [CCode (cheader_filename = "linux/input.h")]
2069         public const int KEY_WLAN;
2070         [CCode (cheader_filename = "linux/input.h")]
2071         public const int KEY_UWB;
2073         [CCode (cheader_filename = "linux/input.h")]
2074         public const int KEY_UNKNOWN;
2076         [CCode (cheader_filename = "linux/input.h")]
2077         public const int KEY_VIDEO_NEXT;
2078         [CCode (cheader_filename = "linux/input.h")]
2079         public const int KEY_VIDEO_PREV;
2080         [CCode (cheader_filename = "linux/input.h")]
2081         public const int KEY_BRIGHTNESS_CYCLE;
2082         [CCode (cheader_filename = "linux/input.h")]
2083         public const int KEY_BRIGHTNESS_ZERO;
2084         [CCode (cheader_filename = "linux/input.h")]
2085         public const int KEY_DISPLAY_OFF;
2087         [CCode (cheader_filename = "linux/input.h")]
2088         public const int KEY_WIMAX;
2090         [CCode (cheader_filename = "linux/input.h")]
2091         public const int KEY_MAX;
2093         /* Range 248 - 255 is reserved for special needs of AT keyboard driver */
2095         [CCode (cheader_filename = "linux/input.h")]
2096         public const int BTN_MISC;
2097         [CCode (cheader_filename = "linux/input.h")]
2098         public const int BTN_0;
2099         [CCode (cheader_filename = "linux/input.h")]
2100         public const int BTN_1;
2101         [CCode (cheader_filename = "linux/input.h")]
2102         public const int BTN_2;
2103         [CCode (cheader_filename = "linux/input.h")]
2104         public const int BTN_3;
2105         [CCode (cheader_filename = "linux/input.h")]
2106         public const int BTN_4;
2107         [CCode (cheader_filename = "linux/input.h")]
2108         public const int BTN_5;
2109         [CCode (cheader_filename = "linux/input.h")]
2110         public const int BTN_6;
2111         [CCode (cheader_filename = "linux/input.h")]
2112         public const int BTN_7;
2113         [CCode (cheader_filename = "linux/input.h")]
2114         public const int BTN_8;
2115         [CCode (cheader_filename = "linux/input.h")]
2116         public const int BTN_9;
2118         [CCode (cheader_filename = "linux/input.h")]
2119         public const int BTN_MOUSE;
2120         [CCode (cheader_filename = "linux/input.h")]
2121         public const int BTN_LEFT;
2122         [CCode (cheader_filename = "linux/input.h")]
2123         public const int BTN_RIGHT;
2124         [CCode (cheader_filename = "linux/input.h")]
2125         public const int BTN_MIDDLE;
2126         [CCode (cheader_filename = "linux/input.h")]
2127         public const int BTN_SIDE;
2128         [CCode (cheader_filename = "linux/input.h")]
2129         public const int BTN_EXTRA;
2130         [CCode (cheader_filename = "linux/input.h")]
2131         public const int BTN_FORWARD;
2132         [CCode (cheader_filename = "linux/input.h")]
2133         public const int BTN_BACK;
2134         [CCode (cheader_filename = "linux/input.h")]
2135         public const int BTN_TASK;
2137         [CCode (cheader_filename = "linux/input.h")]
2138         public const int BTN_JOYSTICK;
2139         [CCode (cheader_filename = "linux/input.h")]
2140         public const int BTN_TRIGGER;
2141         [CCode (cheader_filename = "linux/input.h")]
2142         public const int BTN_THUMB;
2143         [CCode (cheader_filename = "linux/input.h")]
2144         public const int BTN_THUMB2;
2145         [CCode (cheader_filename = "linux/input.h")]
2146         public const int BTN_TOP;
2147         [CCode (cheader_filename = "linux/input.h")]
2148         public const int BTN_TOP2;
2149         [CCode (cheader_filename = "linux/input.h")]
2150         public const int BTN_PINKIE;
2151         [CCode (cheader_filename = "linux/input.h")]
2152         public const int BTN_BASE;
2153         [CCode (cheader_filename = "linux/input.h")]
2154         public const int BTN_BASE2;
2155         [CCode (cheader_filename = "linux/input.h")]
2156         public const int BTN_BASE3;
2157         [CCode (cheader_filename = "linux/input.h")]
2158         public const int BTN_BASE4;
2159         [CCode (cheader_filename = "linux/input.h")]
2160         public const int BTN_BASE5;
2161         [CCode (cheader_filename = "linux/input.h")]
2162         public const int BTN_BASE6;
2163         [CCode (cheader_filename = "linux/input.h")]
2164         public const int BTN_DEAD;
2166         [CCode (cheader_filename = "linux/input.h")]
2167         public const int BTN_GAMEPAD;
2168         [CCode (cheader_filename = "linux/input.h")]
2169         public const int BTN_A;
2170         [CCode (cheader_filename = "linux/input.h")]
2171         public const int BTN_B;
2172         [CCode (cheader_filename = "linux/input.h")]
2173         public const int BTN_C;
2174         [CCode (cheader_filename = "linux/input.h")]
2175         public const int BTN_X;
2176         [CCode (cheader_filename = "linux/input.h")]
2177         public const int BTN_Y;
2178         [CCode (cheader_filename = "linux/input.h")]
2179         public const int BTN_Z;
2180         [CCode (cheader_filename = "linux/input.h")]
2181         public const int BTN_TL;
2182         [CCode (cheader_filename = "linux/input.h")]
2183         public const int BTN_TR;
2184         [CCode (cheader_filename = "linux/input.h")]
2185         public const int BTN_TL2;
2186         [CCode (cheader_filename = "linux/input.h")]
2187         public const int BTN_TR2;
2188         [CCode (cheader_filename = "linux/input.h")]
2189         public const int BTN_SELECT;
2190         [CCode (cheader_filename = "linux/input.h")]
2191         public const int BTN_START;
2192         [CCode (cheader_filename = "linux/input.h")]
2193         public const int BTN_MODE;
2194         [CCode (cheader_filename = "linux/input.h")]
2195         public const int BTN_THUMBL;
2196         [CCode (cheader_filename = "linux/input.h")]
2197         public const int BTN_THUMBR;
2199         [CCode (cheader_filename = "linux/input.h")]
2200         public const int BTN_DIGI;
2201         [CCode (cheader_filename = "linux/input.h")]
2202         public const int BTN_TOOL_PEN;
2203         [CCode (cheader_filename = "linux/input.h")]
2204         public const int BTN_TOOL_RUBBER;
2205         [CCode (cheader_filename = "linux/input.h")]
2206         public const int BTN_TOOL_BRUSH;
2207         [CCode (cheader_filename = "linux/input.h")]
2208         public const int BTN_TOOL_PENCIL;
2209         [CCode (cheader_filename = "linux/input.h")]
2210         public const int BTN_TOOL_AIRBRUSH;
2211         [CCode (cheader_filename = "linux/input.h")]
2212         public const int BTN_TOOL_FINGER;
2213         [CCode (cheader_filename = "linux/input.h")]
2214         public const int BTN_TOOL_MOUSE;
2215         [CCode (cheader_filename = "linux/input.h")]
2216         public const int BTN_TOOL_LENS;
2217         [CCode (cheader_filename = "linux/input.h")]
2218         public const int BTN_TOUCH;
2219         [CCode (cheader_filename = "linux/input.h")]
2220         public const int BTN_STYLUS;
2221         [CCode (cheader_filename = "linux/input.h")]
2222         public const int BTN_STYLUS2;
2223         [CCode (cheader_filename = "linux/input.h")]
2224         public const int BTN_TOOL_DOUBLETAP;
2225         [CCode (cheader_filename = "linux/input.h")]
2226         public const int BTN_TOOL_TRIPLETAP;
2228         [CCode (cheader_filename = "linux/input.h")]
2229         public const int BTN_WHEEL;
2230         [CCode (cheader_filename = "linux/input.h")]
2231         public const int BTN_GEAR_DOWN;
2232         [CCode (cheader_filename = "linux/input.h")]
2233         public const int BTN_GEAR_UP;
2235         [CCode (cheader_filename = "linux/input.h")]
2236         public const int KEY_OK;
2237         [CCode (cheader_filename = "linux/input.h")]
2238         public const int KEY_SELECT;
2239         [CCode (cheader_filename = "linux/input.h")]
2240         public const int KEY_GOTO;
2241         [CCode (cheader_filename = "linux/input.h")]
2242         public const int KEY_CLEAR;
2243         [CCode (cheader_filename = "linux/input.h")]
2244         public const int KEY_POWER2;
2245         [CCode (cheader_filename = "linux/input.h")]
2246         public const int KEY_OPTION;
2247         [CCode (cheader_filename = "linux/input.h")]
2248         public const int KEY_INFO;
2249         [CCode (cheader_filename = "linux/input.h")]
2250         public const int KEY_TIME;
2251         [CCode (cheader_filename = "linux/input.h")]
2252         public const int KEY_VENDOR;
2253         [CCode (cheader_filename = "linux/input.h")]
2254         public const int KEY_ARCHIVE;
2255         [CCode (cheader_filename = "linux/input.h")]
2256         public const int KEY_PROGRAM;
2257         [CCode (cheader_filename = "linux/input.h")]
2258         public const int KEY_CHANNEL;
2259         [CCode (cheader_filename = "linux/input.h")]
2260         public const int KEY_FAVORITES;
2261         [CCode (cheader_filename = "linux/input.h")]
2262         public const int KEY_EPG;
2263         [CCode (cheader_filename = "linux/input.h")]
2264         public const int KEY_PVR;
2265         [CCode (cheader_filename = "linux/input.h")]
2266         public const int KEY_MHP;
2267         [CCode (cheader_filename = "linux/input.h")]
2268         public const int KEY_LANGUAGE;
2269         [CCode (cheader_filename = "linux/input.h")]
2270         public const int KEY_TITLE;
2271         [CCode (cheader_filename = "linux/input.h")]
2272         public const int KEY_SUBTITLE;
2273         [CCode (cheader_filename = "linux/input.h")]
2274         public const int KEY_ANGLE;
2275         [CCode (cheader_filename = "linux/input.h")]
2276         public const int KEY_ZOOM;
2277         [CCode (cheader_filename = "linux/input.h")]
2278         public const int KEY_MODE;
2279         [CCode (cheader_filename = "linux/input.h")]
2280         public const int KEY_KEYBOARD;
2281         [CCode (cheader_filename = "linux/input.h")]
2282         public const int KEY_SCREEN;
2283         [CCode (cheader_filename = "linux/input.h")]
2284         public const int KEY_PC;
2285         [CCode (cheader_filename = "linux/input.h")]
2286         public const int KEY_TV;
2287         [CCode (cheader_filename = "linux/input.h")]
2288         public const int KEY_TV2;
2289         [CCode (cheader_filename = "linux/input.h")]
2290         public const int KEY_VCR;
2291         [CCode (cheader_filename = "linux/input.h")]
2292         public const int KEY_VCR2;
2293         [CCode (cheader_filename = "linux/input.h")]
2294         public const int KEY_SAT;
2295         [CCode (cheader_filename = "linux/input.h")]
2296         public const int KEY_SAT2;
2297         [CCode (cheader_filename = "linux/input.h")]
2298         public const int KEY_CD;
2299         [CCode (cheader_filename = "linux/input.h")]
2300         public const int KEY_TAPE;
2301         [CCode (cheader_filename = "linux/input.h")]
2302         public const int KEY_RADIO;
2303         [CCode (cheader_filename = "linux/input.h")]
2304         public const int KEY_TUNER;
2305         [CCode (cheader_filename = "linux/input.h")]
2306         public const int KEY_PLAYER;
2307         [CCode (cheader_filename = "linux/input.h")]
2308         public const int KEY_TEXT;
2309         [CCode (cheader_filename = "linux/input.h")]
2310         public const int KEY_DVD;
2311         [CCode (cheader_filename = "linux/input.h")]
2312         public const int KEY_AUX;
2313         [CCode (cheader_filename = "linux/input.h")]
2314         public const int KEY_MP3;
2315         [CCode (cheader_filename = "linux/input.h")]
2316         public const int KEY_AUDIO;
2317         [CCode (cheader_filename = "linux/input.h")]
2318         public const int KEY_VIDEO;
2319         [CCode (cheader_filename = "linux/input.h")]
2320         public const int KEY_DIRECTORY;
2321         [CCode (cheader_filename = "linux/input.h")]
2322         public const int KEY_LIST;
2323         [CCode (cheader_filename = "linux/input.h")]
2324         public const int KEY_MEMO;
2325         [CCode (cheader_filename = "linux/input.h")]
2326         public const int KEY_CALENDAR;
2327         [CCode (cheader_filename = "linux/input.h")]
2328         public const int KEY_RED;
2329         [CCode (cheader_filename = "linux/input.h")]
2330         public const int KEY_GREEN;
2331         [CCode (cheader_filename = "linux/input.h")]
2332         public const int KEY_YELLOW;
2333         [CCode (cheader_filename = "linux/input.h")]
2334         public const int KEY_BLUE;
2335         [CCode (cheader_filename = "linux/input.h")]
2336         public const int KEY_CHANNELUP;
2337         [CCode (cheader_filename = "linux/input.h")]
2338         public const int KEY_CHANNELDOWN;
2339         [CCode (cheader_filename = "linux/input.h")]
2340         public const int KEY_FIRST;
2341         [CCode (cheader_filename = "linux/input.h")]
2342         public const int KEY_LAST;
2343         [CCode (cheader_filename = "linux/input.h")]
2344         public const int KEY_AB;
2345         [CCode (cheader_filename = "linux/input.h")]
2346         public const int KEY_NEXT;
2347         [CCode (cheader_filename = "linux/input.h")]
2348         public const int KEY_RESTART;
2349         [CCode (cheader_filename = "linux/input.h")]
2350         public const int KEY_SLOW;
2351         [CCode (cheader_filename = "linux/input.h")]
2352         public const int KEY_SHUFFLE;
2353         [CCode (cheader_filename = "linux/input.h")]
2354         public const int KEY_BREAK;
2355         [CCode (cheader_filename = "linux/input.h")]
2356         public const int KEY_PREVIOUS;
2357         [CCode (cheader_filename = "linux/input.h")]
2358         public const int KEY_DIGITS;
2359         [CCode (cheader_filename = "linux/input.h")]
2360         public const int KEY_TEEN;
2361         [CCode (cheader_filename = "linux/input.h")]
2362         public const int KEY_TWEN;
2363         [CCode (cheader_filename = "linux/input.h")]
2364         public const int KEY_VIDEOPHONE;
2365         [CCode (cheader_filename = "linux/input.h")]
2366         public const int KEY_GAMES;
2367         [CCode (cheader_filename = "linux/input.h")]
2368         public const int KEY_ZOOMIN;
2369         [CCode (cheader_filename = "linux/input.h")]
2370         public const int KEY_ZOOMOUT;
2371         [CCode (cheader_filename = "linux/input.h")]
2372         public const int KEY_ZOOMRESET;
2373         [CCode (cheader_filename = "linux/input.h")]
2374         public const int KEY_WORDPROCESSOR;
2375         [CCode (cheader_filename = "linux/input.h")]
2376         public const int KEY_EDITOR;
2377         [CCode (cheader_filename = "linux/input.h")]
2378         public const int KEY_SPREADSHEET;
2379         [CCode (cheader_filename = "linux/input.h")]
2380         public const int KEY_GRAPHICSEDITOR;
2381         [CCode (cheader_filename = "linux/input.h")]
2382         public const int KEY_PRESENTATION;
2383         [CCode (cheader_filename = "linux/input.h")]
2384         public const int KEY_DATABASE;
2385         [CCode (cheader_filename = "linux/input.h")]
2386         public const int KEY_NEWS;
2387         [CCode (cheader_filename = "linux/input.h")]
2388         public const int KEY_VOICEMAIL;
2389         [CCode (cheader_filename = "linux/input.h")]
2390         public const int KEY_ADDRESSBOOK;
2391         [CCode (cheader_filename = "linux/input.h")]
2392         public const int KEY_MESSENGER;
2393         [CCode (cheader_filename = "linux/input.h")]
2394         public const int KEY_DISPLAYTOGGLE;
2395         [CCode (cheader_filename = "linux/input.h")]
2396         public const int KEY_SPELLCHECK;
2397         [CCode (cheader_filename = "linux/input.h")]
2398         public const int KEY_LOGOFF;
2400         [CCode (cheader_filename = "linux/input.h")]
2401         public const int KEY_DOLLAR;
2402         [CCode (cheader_filename = "linux/input.h")]
2403         public const int KEY_EURO;
2405         [CCode (cheader_filename = "linux/input.h")]
2406         public const int KEY_FRAMEBACK;
2407         [CCode (cheader_filename = "linux/input.h")]
2408         public const int KEY_FRAMEFORWARD;
2409         [CCode (cheader_filename = "linux/input.h")]
2410         public const int KEY_CONTEXT_MENU;
2411         [CCode (cheader_filename = "linux/input.h")]
2412         public const int KEY_MEDIA_REPEAT;
2414         [CCode (cheader_filename = "linux/input.h")]
2415         public const int KEY_DEL_EOL;
2416         [CCode (cheader_filename = "linux/input.h")]
2417         public const int KEY_DEL_EOS;
2418         [CCode (cheader_filename = "linux/input.h")]
2419         public const int KEY_INS_LINE;
2420         [CCode (cheader_filename = "linux/input.h")]
2421         public const int KEY_DEL_LINE;
2423         [CCode (cheader_filename = "linux/input.h")]
2424         public const int KEY_FN;
2425         [CCode (cheader_filename = "linux/input.h")]
2426         public const int KEY_FN_ESC;
2427         [CCode (cheader_filename = "linux/input.h")]
2428         public const int KEY_FN_F1;
2429         [CCode (cheader_filename = "linux/input.h")]
2430         public const int KEY_FN_F2;
2431         [CCode (cheader_filename = "linux/input.h")]
2432         public const int KEY_FN_F3;
2433         [CCode (cheader_filename = "linux/input.h")]
2434         public const int KEY_FN_F4;
2435         [CCode (cheader_filename = "linux/input.h")]
2436         public const int KEY_FN_F5;
2437         [CCode (cheader_filename = "linux/input.h")]
2438         public const int KEY_FN_F6;
2439         [CCode (cheader_filename = "linux/input.h")]
2440         public const int KEY_FN_F7;
2441         [CCode (cheader_filename = "linux/input.h")]
2442         public const int KEY_FN_F8;
2443         [CCode (cheader_filename = "linux/input.h")]
2444         public const int KEY_FN_F9;
2445         [CCode (cheader_filename = "linux/input.h")]
2446         public const int KEY_FN_F10;
2447         [CCode (cheader_filename = "linux/input.h")]
2448         public const int KEY_FN_F11;
2449         [CCode (cheader_filename = "linux/input.h")]
2450         public const int KEY_FN_F12;
2451         [CCode (cheader_filename = "linux/input.h")]
2452         public const int KEY_FN_1;
2453         [CCode (cheader_filename = "linux/input.h")]
2454         public const int KEY_FN_2;
2455         [CCode (cheader_filename = "linux/input.h")]
2456         public const int KEY_FN_D;
2457         [CCode (cheader_filename = "linux/input.h")]
2458         public const int KEY_FN_E;
2459         [CCode (cheader_filename = "linux/input.h")]
2460         public const int KEY_FN_F;
2461         [CCode (cheader_filename = "linux/input.h")]
2462         public const int KEY_FN_S;
2463         [CCode (cheader_filename = "linux/input.h")]
2464         public const int KEY_FN_B;
2466         [CCode (cheader_filename = "linux/input.h")]
2467         public const int KEY_BRL_DOT1;
2468         [CCode (cheader_filename = "linux/input.h")]
2469         public const int KEY_BRL_DOT2;
2470         [CCode (cheader_filename = "linux/input.h")]
2471         public const int KEY_BRL_DOT3;
2472         [CCode (cheader_filename = "linux/input.h")]
2473         public const int KEY_BRL_DOT4;
2474         [CCode (cheader_filename = "linux/input.h")]
2475         public const int KEY_BRL_DOT5;
2476         [CCode (cheader_filename = "linux/input.h")]
2477         public const int KEY_BRL_DOT6;
2478         [CCode (cheader_filename = "linux/input.h")]
2479         public const int KEY_BRL_DOT7;
2480         [CCode (cheader_filename = "linux/input.h")]
2481         public const int KEY_BRL_DOT8;
2482         [CCode (cheader_filename = "linux/input.h")]
2483         public const int KEY_BRL_DOT9;
2484         [CCode (cheader_filename = "linux/input.h")]
2485         public const int KEY_BRL_DOT10;
2487         [CCode (cheader_filename = "linux/input.h")]
2488         public const int KEY_NUMERIC_0;
2489         [CCode (cheader_filename = "linux/input.h")]
2490         public const int KEY_NUMERIC_1;
2491         [CCode (cheader_filename = "linux/input.h")]
2492         public const int KEY_NUMERIC_2;
2493         [CCode (cheader_filename = "linux/input.h")]
2494         public const int KEY_NUMERIC_3;
2495         [CCode (cheader_filename = "linux/input.h")]
2496         public const int KEY_NUMERIC_4;
2497         [CCode (cheader_filename = "linux/input.h")]
2498         public const int KEY_NUMERIC_5;
2499         [CCode (cheader_filename = "linux/input.h")]
2500         public const int KEY_NUMERIC_6;
2501         [CCode (cheader_filename = "linux/input.h")]
2502         public const int KEY_NUMERIC_7;
2503         [CCode (cheader_filename = "linux/input.h")]
2504         public const int KEY_NUMERIC_8;
2505         [CCode (cheader_filename = "linux/input.h")]
2506         public const int KEY_NUMERIC_9;
2507         [CCode (cheader_filename = "linux/input.h")]
2508         public const int KEY_NUMERIC_STAR;
2509         [CCode (cheader_filename = "linux/input.h")]
2510         public const int KEY_NUMERIC_POUND;
2512         /*
2513         * Relative axes
2514         */
2516         [CCode (cheader_filename = "linux/input.h")]
2517         public const int REL_X;
2518         [CCode (cheader_filename = "linux/input.h")]
2519         public const int REL_Y;
2520         [CCode (cheader_filename = "linux/input.h")]
2521         public const int REL_Z;
2522         [CCode (cheader_filename = "linux/input.h")]
2523         public const int REL_RX;
2524         [CCode (cheader_filename = "linux/input.h")]
2525         public const int REL_RY;
2526         [CCode (cheader_filename = "linux/input.h")]
2527         public const int REL_RZ;
2528         [CCode (cheader_filename = "linux/input.h")]
2529         public const int REL_HWHEEL;
2530         [CCode (cheader_filename = "linux/input.h")]
2531         public const int REL_DIAL;
2532         [CCode (cheader_filename = "linux/input.h")]
2533         public const int REL_WHEEL;
2534         [CCode (cheader_filename = "linux/input.h")]
2535         public const int REL_MISC;
2536         [CCode (cheader_filename = "linux/input.h")]
2537         public const int REL_MAX;
2539         /*
2540          * Absolute axes
2541          */
2543         [CCode (cheader_filename = "linux/input.h")]
2544         public const int ABS_X;
2545         [CCode (cheader_filename = "linux/input.h")]
2546         public const int ABS_Y;
2547         [CCode (cheader_filename = "linux/input.h")]
2548         public const int ABS_Z;
2549         [CCode (cheader_filename = "linux/input.h")]
2550         public const int ABS_RX;
2551         [CCode (cheader_filename = "linux/input.h")]
2552         public const int ABS_RY;
2553         [CCode (cheader_filename = "linux/input.h")]
2554         public const int ABS_RZ;
2555         [CCode (cheader_filename = "linux/input.h")]
2556         public const int ABS_THROTTLE;
2557         [CCode (cheader_filename = "linux/input.h")]
2558         public const int ABS_RUDDER;
2559         [CCode (cheader_filename = "linux/input.h")]
2560         public const int ABS_WHEEL;
2561         [CCode (cheader_filename = "linux/input.h")]
2562         public const int ABS_GAS;
2563         [CCode (cheader_filename = "linux/input.h")]
2564         public const int ABS_BRAKE;
2565         [CCode (cheader_filename = "linux/input.h")]
2566         public const int ABS_HAT0X;
2567         [CCode (cheader_filename = "linux/input.h")]
2568         public const int ABS_HAT0Y;
2569         [CCode (cheader_filename = "linux/input.h")]
2570         public const int ABS_HAT1X;
2571         [CCode (cheader_filename = "linux/input.h")]
2572         public const int ABS_HAT1Y;
2573         [CCode (cheader_filename = "linux/input.h")]
2574         public const int ABS_HAT2X;
2575         [CCode (cheader_filename = "linux/input.h")]
2576         public const int ABS_HAT2Y;
2577         [CCode (cheader_filename = "linux/input.h")]
2578         public const int ABS_HAT3X;
2579         [CCode (cheader_filename = "linux/input.h")]
2580         public const int ABS_HAT3Y;
2581         [CCode (cheader_filename = "linux/input.h")]
2582         public const int ABS_PRESSURE;
2583         [CCode (cheader_filename = "linux/input.h")]
2584         public const int ABS_DISTANCE;
2585         [CCode (cheader_filename = "linux/input.h")]
2586         public const int ABS_TILT_X;
2587         [CCode (cheader_filename = "linux/input.h")]
2588         public const int ABS_TILT_Y;
2589         [CCode (cheader_filename = "linux/input.h")]
2590         public const int ABS_TOOL_WIDTH;
2591         [CCode (cheader_filename = "linux/input.h")]
2592         public const int ABS_VOLUME;
2593         [CCode (cheader_filename = "linux/input.h")]
2594         public const int ABS_MISC;
2595         [CCode (cheader_filename = "linux/input.h")]
2596         public const int ABS_MAX;
2598         /*
2599          * Switch events
2600          */
2602         [CCode (cheader_filename = "linux/input.h")]
2603         public const int SW_LID;
2604         [CCode (cheader_filename = "linux/input.h")]
2605         public const int SW_TABLET_MODE;
2606         [CCode (cheader_filename = "linux/input.h")]
2607         public const int SW_HEADPHONE_INSERT;
2608         [CCode (cheader_filename = "linux/input.h")]
2609         public const int SW_RFKILL_ALL;
2610         [CCode (cheader_filename = "linux/input.h")]
2611         public const int SW_RADIO;
2612         [CCode (cheader_filename = "linux/input.h")]
2613         public const int SW_MICROPHONE_INSERT;
2614         [CCode (cheader_filename = "linux/input.h")]
2615         public const int SW_DOCK;
2616         [CCode (cheader_filename = "linux/input.h")]
2617         public const int SW_MAX;
2619         /*
2620          * Misc events
2621          */
2623         [CCode (cheader_filename = "linux/input.h")]
2624         public const int MSC_SERIAL;
2625         [CCode (cheader_filename = "linux/input.h")]
2626         public const int MSC_PULSELED;
2627         [CCode (cheader_filename = "linux/input.h")]
2628         public const int MSC_GESTURE;
2629         [CCode (cheader_filename = "linux/input.h")]
2630         public const int MSC_RAW;
2631         [CCode (cheader_filename = "linux/input.h")]
2632         public const int MSC_SCAN;
2633         [CCode (cheader_filename = "linux/input.h")]
2634         public const int MSC_MAX;
2636         /*
2637          * LEDs
2638          */
2640         [CCode (cheader_filename = "linux/input.h")]
2641         public const int LED_NUML;
2642         [CCode (cheader_filename = "linux/input.h")]
2643         public const int LED_CAPSL;
2644         [CCode (cheader_filename = "linux/input.h")]
2645         public const int LED_SCROLLL;
2646         [CCode (cheader_filename = "linux/input.h")]
2647         public const int LED_COMPOSE;
2648         [CCode (cheader_filename = "linux/input.h")]
2649         public const int LED_KANA;
2650         [CCode (cheader_filename = "linux/input.h")]
2651         public const int LED_SLEEP;
2652         [CCode (cheader_filename = "linux/input.h")]
2653         public const int LED_SUSPEND;
2654         [CCode (cheader_filename = "linux/input.h")]
2655         public const int LED_MUTE;
2656         [CCode (cheader_filename = "linux/input.h")]
2657         public const int LED_MISC;
2658         [CCode (cheader_filename = "linux/input.h")]
2659         public const int LED_MAIL;
2660         [CCode (cheader_filename = "linux/input.h")]
2661         public const int LED_CHARGING;
2662         [CCode (cheader_filename = "linux/input.h")]
2663         public const int LED_MAX;
2665         /*
2666          * Autorepeat values
2667          */
2669         [CCode (cheader_filename = "linux/input.h")]
2670         public const int REP_DELAY;
2671         [CCode (cheader_filename = "linux/input.h")]
2672         public const int REP_PERIOD;
2673         [CCode (cheader_filename = "linux/input.h")]
2674         public const int REP_MAX;
2676         /*
2677          * Sounds
2678          */
2680         [CCode (cheader_filename = "linux/input.h")]
2681         public const int SND_CLICK;
2682         [CCode (cheader_filename = "linux/input.h")]
2683         public const int SND_BELL;
2684         [CCode (cheader_filename = "linux/input.h")]
2685         public const int SND_TONE;
2686         [CCode (cheader_filename = "linux/input.h")]
2687         public const int SND_MAX;
2689         /*
2690          * IDs.
2691          */
2693         [CCode (cheader_filename = "linux/input.h")]
2694         public const int ID_BUS;
2695         [CCode (cheader_filename = "linux/input.h")]
2696         public const int ID_VENDOR;
2697         [CCode (cheader_filename = "linux/input.h")]
2698         public const int ID_PRODUCT;
2699         [CCode (cheader_filename = "linux/input.h")]
2700         public const int ID_VERSION;
2702         [CCode (cheader_filename = "linux/input.h")]
2703         public const int BUS_PCI;
2704         [CCode (cheader_filename = "linux/input.h")]
2705         public const int BUS_ISAPNP;
2706         [CCode (cheader_filename = "linux/input.h")]
2707         public const int BUS_USB;
2708         [CCode (cheader_filename = "linux/input.h")]
2709         public const int BUS_HIL;
2710         [CCode (cheader_filename = "linux/input.h")]
2711         public const int BUS_BLUETOOTH;
2712         [CCode (cheader_filename = "linux/input.h")]
2713         public const int BUS_VIRTUAL;
2715         [CCode (cheader_filename = "linux/input.h")]
2716         public const int BUS_ISA;
2717         [CCode (cheader_filename = "linux/input.h")]
2718         public const int BUS_I8042;
2719         [CCode (cheader_filename = "linux/input.h")]
2720         public const int BUS_XTKBD;
2721         [CCode (cheader_filename = "linux/input.h")]
2722         public const int BUS_RS232;
2723         [CCode (cheader_filename = "linux/input.h")]
2724         public const int BUS_GAMEPORT;
2725         [CCode (cheader_filename = "linux/input.h")]
2726         public const int BUS_PARPORT;
2727         [CCode (cheader_filename = "linux/input.h")]
2728         public const int BUS_AMIGA;
2729         [CCode (cheader_filename = "linux/input.h")]
2730         public const int BUS_ADB;
2731         [CCode (cheader_filename = "linux/input.h")]
2732         public const int BUS_I2C;
2733         [CCode (cheader_filename = "linux/input.h")]
2734         public const int BUS_HOST;
2735         [CCode (cheader_filename = "linux/input.h")]
2736         public const int BUS_GSC;
2737         [CCode (cheader_filename = "linux/input.h")]
2738         public const int BUS_ATARI;
2739     }
2741     /*
2742      * Netlink subsystem
2743      */
2744     [CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "linux/netlink.h")]
2745     namespace Netlink {
2747         [CCode (cheader_filename = "linux/netlink.h")]
2748         public const int NETLINK_ROUTE;
2749         [CCode (cheader_filename = "linux/netlink.h")]
2750         public const int NETLINK_UNUSED;
2751         [CCode (cheader_filename = "linux/netlink.h")]
2752         public const int NETLINK_USERSOCK;
2753         [CCode (cheader_filename = "linux/netlink.h")]
2754         public const int NETLINK_FIREWALL;
2755         [CCode (cheader_filename = "linux/netlink.h")]
2756         public const int NETLINK_INET_DIAG;
2757         [CCode (cheader_filename = "linux/netlink.h")]
2758         public const int NETLINK_NFLOG;
2759         [CCode (cheader_filename = "linux/netlink.h")]
2760         public const int NETLINK_XFRM;
2761         [CCode (cheader_filename = "linux/netlink.h")]
2762         public const int NETLINK_SELINUX;
2763         [CCode (cheader_filename = "linux/netlink.h")]
2764         public const int NETLINK_ISCSI;
2765         [CCode (cheader_filename = "linux/netlink.h")]
2766         public const int NETLINK_AUDIT;
2767         [CCode (cheader_filename = "linux/netlink.h")]
2768         public const int NETLINK_FIB_LOOKUP;
2769         [CCode (cheader_filename = "linux/netlink.h")]
2770         public const int NETLINK_CONNECTOR;
2771         [CCode (cheader_filename = "linux/netlink.h")]
2772         public const int NETLINK_NETFILTER;
2773         [CCode (cheader_filename = "linux/netlink.h")]
2774         public const int NETLINK_IP6_FW;
2775         [CCode (cheader_filename = "linux/netlink.h")]
2776         public const int NETLINK_DNRTMSG;
2777         [CCode (cheader_filename = "linux/netlink.h")]
2778         public const int NETLINK_KOBJECT_UEVENT;
2779         [CCode (cheader_filename = "linux/netlink.h")]
2780         public const int NETLINK_GENERIC;
2781         [CCode (cheader_filename = "linux/netlink.h")]
2782         public const int NETLINK_SCSITRANSPORT;
2783         [CCode (cheader_filename = "linux/netlink.h")]
2784         public const int NETLINK_ECRYPTFS;
2786         [CCode (cheader_filename = "linux/netlink.h")]
2787         public const int NETLINK_ADD_MEMBERSHIP;
2788         [CCode (cheader_filename = "linux/netlink.h")]
2789         public const int NETLINK_DROP_MEMBERSHIP;
2790         [CCode (cheader_filename = "linux/netlink.h")]
2791         public const int NETLINK_PKTINFO;
2792         [CCode (cheader_filename = "linux/netlink.h")]
2793         public const int NETLINK_BROADCAST_ERROR;
2794         [CCode (cheader_filename = "linux/netlink.h")]
2795         public const int NETLINK_NO_ENOBUFS;
2797         [CCode (cheader_filename = "linux/netlink.h")]
2798         public const int NLM_F_REQUEST;
2799         [CCode (cheader_filename = "linux/netlink.h")]
2800         public const int NLM_F_MULTI;
2801         [CCode (cheader_filename = "linux/netlink.h")]
2802         public const int NLM_F_ACK;
2803         [CCode (cheader_filename = "linux/netlink.h")]
2804         public const int NLM_F_ECHO;
2806         [CCode (cheader_filename = "linux/netlink.h")]
2807         public const int NLM_F_ROOT;
2808         [CCode (cheader_filename = "linux/netlink.h")]
2809         public const int NLM_F_MATCH;
2810         [CCode (cheader_filename = "linux/netlink.h")]
2811         public const int NLM_F_ATOMIC;
2812         [CCode (cheader_filename = "linux/netlink.h")]
2813         public const int NLM_F_DUMP;
2815         [CCode (cheader_filename = "linux/netlink.h")]
2816         public const int NLM_F_REPLACE;
2817         [CCode (cheader_filename = "linux/netlink.h")]
2818         public const int NLM_F_EXCL;
2819         [CCode (cheader_filename = "linux/netlink.h")]
2820         public const int NLM_F_CREATE;
2821         [CCode (cheader_filename = "linux/netlink.h")]
2822         public const int NLM_F_APPEND;
2824         [CCode (cheader_filename = "linux/netlink.h")]
2825         public const int NLMSG_ALIGNTO;
2826         [CCode (cheader_filename = "linux/netlink.h")]
2827         public const int NLMSG_NOOP;
2828         [CCode (cheader_filename = "linux/netlink.h")]
2829         public const int NLMSG_ERROR;
2830         [CCode (cheader_filename = "linux/netlink.h")]
2831         public const int NLMSG_DONE;
2832         [CCode (cheader_filename = "linux/netlink.h")]
2833         public const int NLMSG_OVERRUN;
2834         [CCode (cheader_filename = "linux/netlink.h")]
2835         public const int NLMSG_MIN_TYPE;
2837         /* netlink action macros, we bind them as functions for convenience */
2838         [CCode (cheader_filename = "linux/netlink.h")]
2839         public void NLMSG_ALIGN (int len);
2840         [CCode (cheader_filename = "linux/netlink.h")]
2841         public int NLMSG_HDRLEN ();
2842         [CCode (cheader_filename = "linux/netlink.h")]
2843         public int NLMSG_LENGTH (int len);
2844         [CCode (cheader_filename = "linux/netlink.h")]
2845         public void NLMSG_SPACE (int len);
2846         [CCode (cheader_filename = "linux/netlink.h")]
2847         public void* NLMSG_DATA (NlMsgHdr nlh);
2848         [CCode (cheader_filename = "linux/netlink.h")]
2849         public unowned NlMsgHdr NLMSG_NEXT (NlMsgHdr nlh, int len);
2850         [CCode (cheader_filename = "linux/netlink.h")]
2851         public bool NLMSG_OK (NlMsgHdr nlh, int len);
2852         [CCode (cheader_filename = "linux/netlink.h")]
2853         public int NLMSG_PAYLOAD (NlMsgHdr nlh, int len);
2855         // netlink socket, can be used instead of sockaddr
2856         [CCode (cname = "struct sockaddr_nl", cheader_filename = "linux/netlink.h", destroy_function = "")]
2857         public struct SockAddrNl {
2858             public int nl_family;
2859             public ushort nl_pad;
2860             public uint32 nl_pid;
2861             public uint32 nl_groups;
2862         }
2864         // netlink message header
2865         [CCode (cname = "struct nlmsghdr", cheader_filename = "linux/netlink.h", destroy_function = "")]
2866         public struct NlMsgHdr {
2867             public uint32 nlmsg_len;
2868             public uint16 nlmsg_type;
2869             public uint16 nlmsg_flags;
2870             public uint32 nlmsg_seq;
2871             public uint32 nlmsg_pid;
2872         }
2874         // netlink error message
2875         [CCode (cname = "struct nlmsgerr", cheader_filename = "linux/netlink.h", destroy_function = "")]
2876         public struct NlMsgErr {
2877             public int error;
2878             public NlMsgHdr msg;
2879         }
2881         // rtnetlink multicast groups ( userland compatibility values )
2882         [CCode (cheader_filename = "linux/rtnetlink.h")]
2883         public const int RTMGRP_LINK;
2884         [CCode (cheader_filename = "linux/rtnetlink.h")]
2885         public const int RTMGRP_NOTIFY;
2886         [CCode (cheader_filename = "linux/rtnetlink.h")]
2887         public const int RTMGRP_NEIGH;
2888         [CCode (cheader_filename = "linux/rtnetlink.h")]
2889         public const int RTMGRP_TC;
2890         [CCode (cheader_filename = "linux/rtnetlink.h")]
2891         public const int RTMGRP_IPV4_IFADDR;
2892         [CCode (cheader_filename = "linux/rtnetlink.h")]
2893         public const int RTMGRP_IPV4_MROUTE;
2894         [CCode (cheader_filename = "linux/rtnetlink.h")]
2895         public const int RTMGRP_IPV4_ROUTE;
2896         [CCode (cheader_filename = "linux/rtnetlink.h")]
2897         public const int RTMGRP_IPV4_RULE;
2898         [CCode (cheader_filename = "linux/rtnetlink.h")]
2899         public const int RTMGRP_IPV6_IFADDR;
2900         [CCode (cheader_filename = "linux/rtnetlink.h")]
2901         public const int RTMGRP_IPV6_MROUTE;
2902         [CCode (cheader_filename = "linux/rtnetlink.h")]
2903         public const int RTMGRP_IPV6_ROUTE;
2904         [CCode (cheader_filename = "linux/rtnetlink.h")]
2905         public const int RTMGRP_IPV6_IFINFO;
2906         [CCode (cheader_filename = "linux/rtnetlink.h")]
2907         public const int RTMGRP_DECnet_IFADDR;
2908         [CCode (cheader_filename = "linux/rtnetlink.h")]
2909         public const int RTMGRP_DECnet_ROUTE;
2910         [CCode (cheader_filename = "linux/rtnetlink.h")]
2911         public const int RTMGRP_IPV6_PREFIX;
2913         // rtnetlink multicast groups ( 1 << group )
2914         [CCode (cheader_filename = "linux/rtnetlink.h")]
2915         public const int RTNLGRP_NONE;
2916         [CCode (cheader_filename = "linux/rtnetlink.h")]
2917         public const int RTNLGRP_LINK;
2918         [CCode (cheader_filename = "linux/rtnetlink.h")]
2919         public const int RTNLGRP_NOTIFY;
2920         [CCode (cheader_filename = "linux/rtnetlink.h")]
2921         public const int RTNLGRP_NEIGH;
2922         [CCode (cheader_filename = "linux/rtnetlink.h")]
2923         public const int RTNLGRP_TC;
2924         [CCode (cheader_filename = "linux/rtnetlink.h")]
2925         public const int RTNLGRP_IPV4_IFADDR;
2926         [CCode (cheader_filename = "linux/rtnetlink.h")]
2927         public const int RTNLGRP_IPV4_MROUTE;
2928         [CCode (cheader_filename = "linux/rtnetlink.h")]
2929         public const int RTNLGRP_IPV4_ROUTE;
2930         [CCode (cheader_filename = "linux/rtnetlink.h")]
2931         public const int RTNLGRP_IPV4_RULE;
2932         [CCode (cheader_filename = "linux/rtnetlink.h")]
2933         public const int RTNLGRP_IPV6_IFADDR;
2934         [CCode (cheader_filename = "linux/rtnetlink.h")]
2935         public const int RTNLGRP_IPV6_MROUTE;
2936         [CCode (cheader_filename = "linux/rtnetlink.h")]
2937         public const int RTNLGRP_IPV6_ROUTE;
2938         [CCode (cheader_filename = "linux/rtnetlink.h")]
2939         public const int RTNLGRP_IPV6_IFINFO;
2940         [CCode (cheader_filename = "linux/rtnetlink.h")]
2941         public const int RTNLGRP_DECnet_IFADDR;
2942         [CCode (cheader_filename = "linux/rtnetlink.h")]
2943         public const int RTNLGRP_NOP2;
2944         [CCode (cheader_filename = "linux/rtnetlink.h")]
2945         public const int RTNLGRP_DECnet_ROUTE;
2946         [CCode (cheader_filename = "linux/rtnetlink.h")]
2947         public const int RTNLGRP_DECnet_RULE;
2948         [CCode (cheader_filename = "linux/rtnetlink.h")]
2949         public const int RTNLGRP_NOP4;
2950         [CCode (cheader_filename = "linux/rtnetlink.h")]
2951         public const int RTNLGRP_IPV6_PREFIX;
2952         [CCode (cheader_filename = "linux/rtnetlink.h")]
2953         public const int RTNLGRP_IPV6_RULE;
2954         [CCode (cheader_filename = "linux/rtnetlink.h")]
2955         public const int RTNLGRP_ND_USEROPT;
2956         [CCode (cheader_filename = "linux/rtnetlink.h")]
2957         public const int RTNLGRP_PHONET_IFADDR;
2958         [CCode (cheader_filename = "linux/rtnetlink.h")]
2959         public const int RTNLGRP_PHONET_ROUTE;
2961         /* rtnetlink action macros, we bind them as functions for convenience */
2962         [CCode (cheader_filename = "linux/rtnetlink.h")]
2963         public void RTA_ALIGN (int len);
2964         [CCode (cheader_filename = "linux/rtnetlink.h")]
2965         public int RTA_HDRLEN ();
2966         [CCode (cheader_filename = "linux/rtnetlink.h")]
2967         public int RTA_LENGTH (int len);
2968         [CCode (cheader_filename = "linux/rtnetlink.h")]
2969         public void RTA_SPACE (int len);
2970         [CCode (cheader_filename = "linux/rtnetlink.h")]
2971         public void* RTA_DATA (RtAttr* rta);
2972         [CCode (cheader_filename = "linux/rtnetlink.h")]
2973         public RtAttr* RTA_NEXT (RtAttr* rta, int len);
2974         [CCode (cheader_filename = "linux/rtnetlink.h")]
2975         public bool RTA_OK (RtAttr* rta, int len);
2976         [CCode (cheader_filename = "linux/rtnetlink.h")]
2977         public void* RTA_PAYLOAD (RtAttr* rta, int len);
2979         /*
2980         [CCode (cheader_filename = "sys/socket.h", sentinel = "")]
2981         public int bind (int sockfd, SockAddrNl addr, ulong length);
2982         */
2984         // rtnetlink info message
2985         [CCode (cname = "struct ifinfomsg", cheader_filename = "linux/rtnetlink.h", destroy_function = "")]
2986         public struct IfInfoMsg {
2987             public uchar ifi_family;
2988             public uchar __ifi_pad;
2989             public ushort ifi_type;
2990             public int ifi_index;
2991             public uint32 ifi_flags;
2992             public uint32 ifi_change;
2993         }
2995         // rtnetlink attribute
2996         [CCode (cname = "struct rtattr", cheader_filename = "linux/rtnetlink.h", destroy_function = "")]
2997         public struct RtAttr {
2998             public ushort rta_len;
2999             public ushort rta_type;
3000         }
3002         // rtnetlink routing / discovery messages
3003         [CCode (cprefix = "RTM_", cheader_filename = "linux/rtnetlink.h")]
3004         public enum RtMessageType {
3005             NEWLINK,
3006             DELLINK,
3007             GETLINK,
3008             SETLINK,
3009             NEWADDR,
3010             DELADDR,
3011             GETADDR,
3012             NEWROUTE,
3013             DELROUTE,
3014             GETROUTE,
3015             NEWNEIGH,
3016             DELNEIGH,
3017             GETNEIGH,
3018             NEWRULE,
3019             DELRULE,
3020             GETRULE,
3021             NEWQDISC,
3022             DELQDISC,
3023             GETQDISC,
3024             NEWTCLASS,
3025             DELTCLASS,
3026             GETTCLASS,
3027             NEWTFILTER,
3028             DELTFILTER,
3029             GETTFILTER,
3030             NEWACTION,
3031             DELACTION,
3032             GETACTION,
3033             NEWPREFIX,
3034             GETMULTICAST,
3035             GETANYCAST,
3036             NEWNEIGHTBL,
3037             GETNEIGHTBL,
3038             SETNEIGHTBL,
3039         }
3040     }
3042     /*
3043      * Real time clock subsystem
3044      */
3046     [CCode (cprefix = "", lower_case_cprefix = "")]
3047     namespace Rtc {
3049         [CCode (cname = "struct rtc_wkalrm", cheader_filename = "linux/rtc.h")]
3050         public struct WakeAlarm {
3051             public char enabled;
3052             public char pending;
3053             public Posix.tm time;
3054         }
3056         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3057         public const int RTC_RD_TIME;
3058         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3059         public const int RTC_SET_TIME;
3060         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3061         public const int RTC_WKALM_RD;
3062         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3063         public const int RTC_WKALM_SET;
3064     }
3066     /*
3067      * Socket extensions (non-posix)
3068      */
3069     [CCode (cprefix = "", lower_case_cprefix = "")]
3070     namespace Socket {
3071         [CCode (cheader_filename = "sys/socket.h")]
3072         public const int AF_NETLINK;
3073         [CCode (cheader_filename = "sys/socket.h")]
3074         public const int AF_PHONET;
3075         [CCode (cheader_filename = "sys/socket.h")]
3076         public const int AF_UNSPEC;
3077         [CCode (cheader_filename = "sys/socket.h")]
3078         public const int SOCK_NONBLOCK;
3079         [CCode (cheader_filename = "sys/socket.h")]
3080         public const int SOCK_CLOEXEC;
3082         [CCode (cname = "struct ucred", cheader_filename = "linux/socket.h", destroy_function = "")]
3083         public struct ucred {
3084             public uint32 pid;
3085             public uint32 uid;
3086             public uint32 gid;
3087         }
3089         /* setsockopt(2) level constants */
3090         [CCode (cheader_filename = "linux/socket.h")]
3091         public const int SOL_IP;
3092         [CCode (cheader_filename = "linux/socket.h")]
3093         public const int SOL_TCP;
3094         [CCode (cheader_filename = "linux/socket.h")]
3095         public const int SOL_UDP;
3096         [CCode (cheader_filename = "linux/socket.h")]
3097         public const int SOL_IPV6;
3098         [CCode (cheader_filename = "linux/socket.h")]
3099         public const int SOL_ICMPV6;
3100         [CCode (cheader_filename = "linux/socket.h")]
3101         public const int SOL_SCTP;
3102         [CCode (cheader_filename = "linux/socket.h")]
3103         public const int SOL_UDPLITE;
3104         [CCode (cheader_filename = "linux/socket.h")]
3105         public const int SOL_RAW;
3106         [CCode (cheader_filename = "linux/socket.h")]
3107         public const int SOL_IPX;
3108         [CCode (cheader_filename = "linux/socket.h")]
3109         public const int SOL_AX25;
3110         [CCode (cheader_filename = "linux/socket.h")]
3111         public const int SOL_ATALK;
3112         [CCode (cheader_filename = "linux/socket.h")]
3113         public const int SOL_NETROM;
3114         [CCode (cheader_filename = "linux/socket.h")]
3115         public const int SOL_ROSE;
3116         [CCode (cheader_filename = "linux/socket.h")]
3117         public const int SOL_DECNET;
3118         [CCode (cheader_filename = "linux/socket.h")]
3119         public const int SOL_X25;
3120         [CCode (cheader_filename = "linux/socket.h")]
3121         public const int SOL_PACKET;
3122         [CCode (cheader_filename = "linux/socket.h")]
3123         public const int SOL_ATM;
3124         [CCode (cheader_filename = "linux/socket.h")]
3125         public const int SOL_AAL;
3126         [CCode (cheader_filename = "linux/socket.h")]
3127         public const int SOL_IRDA;
3128         [CCode (cheader_filename = "linux/socket.h")]
3129         public const int SOL_NETBEUI;
3130         [CCode (cheader_filename = "linux/socket.h")]
3131         public const int SOL_LLC;
3132         [CCode (cheader_filename = "linux/socket.h")]
3133         public const int SOL_DCCP;
3134         [CCode (cheader_filename = "linux/socket.h")]
3135         public const int SOL_NETLINK;
3136         [CCode (cheader_filename = "linux/socket.h")]
3137         public const int SOL_TIPC;
3138         [CCode (cheader_filename = "linux/socket.h")]
3139         public const int SOL_RXRPC;
3140         [CCode (cheader_filename = "linux/socket.h")]
3141         public const int SOL_PPPOL2TP;
3142         [CCode (cheader_filename = "linux/socket.h")]
3143         public const int SOL_BLUETOOTH;
3144         [CCode (cheader_filename = "linux/socket.h")]
3145         public const int SOL_PNPIPE;
3146         [CCode (cheader_filename = "linux/socket.h")]
3147         public const int SOL_RDS;
3148         [CCode (cheader_filename = "linux/socket.h")]
3149         public const int SOL_IUCV;
3150     }
3152     /*
3153      * Terminal input/output
3154      */
3155     [CCode (cprefix = "", lower_case_cprefix = "")]
3156     namespace Termios {
3158         /*
3159          * non-posix functions
3160          */
3161         [CCode (cheader_filename = "stdlib.h")]
3162         public int ptsname_r (int fd, char[] buf);
3164         /*
3165          * non-posix flags
3166          */
3167         [CCode (cheader_filename = "termios.h")]
3168         public const int OLCUC;
3170         /*
3171          * non-posix constants
3172          */
3174         // flow control
3175         [CCode (cheader_filename = "termios.h")]
3176         public const int CRTSCTS;
3177         // v24 modem lines
3178         [CCode (cheader_filename = "termios.h")]
3179         public const int TIOCM_LE;
3180         [CCode (cheader_filename = "termios.h")]
3181         public const int TIOCM_DTR;
3182         [CCode (cheader_filename = "termios.h")]
3183         public const int TIOCM_RTS;
3184         [CCode (cheader_filename = "termios.h")]
3185         public const int TIOCM_ST;
3186         [CCode (cheader_filename = "termios.h")]
3187         public const int TIOCM_SR;
3188         [CCode (cheader_filename = "termios.h")]
3189         public const int TIOCM_CTS;
3190         [CCode (cheader_filename = "termios.h")]
3191         public const int TIOCM_CARM;
3192         [CCode (cheader_filename = "termios.h")]
3193         public const int TIOCM_RNG;
3194         [CCode (cheader_filename = "termios.h")]
3195         public const int TIOCM_DSR;
3196         [CCode (cheader_filename = "termios.h")]
3197         [CCode (cheader_filename = "termios.h")]
3198         public const int TIOCM_OUT1;
3199         [CCode (cheader_filename = "termios.h")]
3200         public const int TIOCM_OUT2;
3201         [CCode (cheader_filename = "termios.h")]
3202         public const int TIOCM_LOOP;
3203         // baud rates
3204         [CCode (cheader_filename = "termios.h")]
3205         public const int B460800;
3206         [CCode (cheader_filename = "termios.h")]
3207         public const int B500000;
3208         [CCode (cheader_filename = "termios.h")]
3209         public const int B576000;
3210         [CCode (cheader_filename = "termios.h")]
3211         public const int B921600;
3212         [CCode (cheader_filename = "termios.h")]
3213         public const int B1000000;
3214         [CCode (cheader_filename = "termios.h")]
3215         public const int B1152000;
3216         [CCode (cheader_filename = "termios.h")]
3217         public const int B1500000;
3218         [CCode (cheader_filename = "termios.h")]
3219         public const int B2000000;
3220         [CCode (cheader_filename = "termios.h")]
3221         public const int B2500000;
3222         [CCode (cheader_filename = "termios.h")]
3223         public const int B3000000;
3224         [CCode (cheader_filename = "termios.h")]
3225         public const int B3500000;
3226         [CCode (cheader_filename = "termios.h")]
3227         public const int B4000000;
3230         /*
3231          * ioctls
3232          */
3233         [CCode (cheader_filename = "sys/ioctl.h")]
3234         public const int TCGETS;
3235         [CCode (cheader_filename = "sys/ioctl.h")]
3236         public const int TCSETS;
3237         [CCode (cheader_filename = "sys/ioctl.h")]
3238         public const int TCSETSW;
3239         [CCode (cheader_filename = "sys/ioctl.h")]
3240         public const int TCSETSF;
3241         [CCode (cheader_filename = "sys/ioctl.h")]
3242         public const int TCGETA;
3243         [CCode (cheader_filename = "sys/ioctl.h")]
3244         public const int TCSETA;
3245         [CCode (cheader_filename = "sys/ioctl.h")]
3246         public const int TCSETAW;
3247         [CCode (cheader_filename = "sys/ioctl.h")]
3248         public const int TCSETAF;
3249         [CCode (cheader_filename = "sys/ioctl.h")]
3250         public const int TCSBRK;
3251         [CCode (cheader_filename = "sys/ioctl.h")]
3252         public const int TCXONC;
3253         [CCode (cheader_filename = "sys/ioctl.h")]
3254         public const int TCFLSH;
3255         [CCode (cheader_filename = "sys/ioctl.h")]
3256         public const int TIOCEXCL;
3257         [CCode (cheader_filename = "sys/ioctl.h")]
3258         public const int TIOCNXCL;
3259         [CCode (cheader_filename = "sys/ioctl.h")]
3260         public const int TIOCSCTTY;
3261         [CCode (cheader_filename = "sys/ioctl.h")]
3262         public const int TIOCGPGRP;
3263         [CCode (cheader_filename = "sys/ioctl.h")]
3264         public const int TIOCSPGRP;
3265         [CCode (cheader_filename = "sys/ioctl.h")]
3266         public const int TIOCOUTQ;
3267         [CCode (cheader_filename = "sys/ioctl.h")]
3268         public const int TIOCSTI;
3269         [CCode (cheader_filename = "sys/ioctl.h")]
3270         public const int TIOCGWINSZ;
3271         [CCode (cheader_filename = "sys/ioctl.h")]
3272         public const int TIOCSWINSZ;
3273         [CCode (cheader_filename = "sys/ioctl.h")]
3274         public const int TIOCMGET;
3275         [CCode (cheader_filename = "sys/ioctl.h")]
3276         public const int TIOCMBIS;
3277         [CCode (cheader_filename = "sys/ioctl.h")]
3278         public const int TIOCMBIC;
3279         [CCode (cheader_filename = "sys/ioctl.h")]
3280         public const int TIOCMSET;
3281         [CCode (cheader_filename = "sys/ioctl.h")]
3282         public const int TIOCGSOFTCAR;
3283         [CCode (cheader_filename = "sys/ioctl.h")]
3284         public const int TIOCSSOFTCAR;
3285         [CCode (cheader_filename = "sys/ioctl.h")]
3286         public const int FIONREAD;
3287         [CCode (cheader_filename = "sys/ioctl.h")]
3288         public const int TIOCINQ;
3289         [CCode (cheader_filename = "sys/ioctl.h")]
3290         public const int TIOCLINUX;
3291         [CCode (cheader_filename = "sys/ioctl.h")]
3292         public const int TIOCCONS;
3293         [CCode (cheader_filename = "sys/ioctl.h")]
3294         public const int TIOCGSERIAL;
3295         [CCode (cheader_filename = "sys/ioctl.h")]
3296         public const int TIOCSSERIAL;
3297         [CCode (cheader_filename = "sys/ioctl.h")]
3298         public const int TIOCPKT;
3299         [CCode (cheader_filename = "sys/ioctl.h")]
3300         public const int FIONBIO;
3301         [CCode (cheader_filename = "sys/ioctl.h")]
3302         public const int TIOCNOTTY;
3303         [CCode (cheader_filename = "sys/ioctl.h")]
3304         public const int TIOCSETD;
3305         [CCode (cheader_filename = "sys/ioctl.h")]
3306         public const int TIOCGETD;
3307         [CCode (cheader_filename = "sys/ioctl.h")]
3308         public const int TCSBRKP;
3309         [CCode (cheader_filename = "sys/ioctl.h")]
3310         public const int TIOCSBRK;
3311         [CCode (cheader_filename = "sys/ioctl.h")]
3312         public const int TIOCCBRK;
3313         [CCode (cheader_filename = "sys/ioctl.h")]
3314         public const int TIOCGSID;
3315         [CCode (cheader_filename = "sys/ioctl.h")]
3316         public const int TCGETS2;
3317         [CCode (cheader_filename = "sys/ioctl.h")]
3318         public const int TCSETS2;
3319         [CCode (cheader_filename = "sys/ioctl.h")]
3320         public const int TCSETSW2;
3321         [CCode (cheader_filename = "sys/ioctl.h")]
3322         public const int TCSETSF2;
3323         [CCode (cheader_filename = "sys/ioctl.h")]
3324         public const int TIOCGRS485;
3325         [CCode (cheader_filename = "sys/ioctl.h")]
3326         public const int TIOCSRS485;
3327         [CCode (cheader_filename = "sys/ioctl.h")]
3328         public const int TIOCGPTN;
3329         [CCode (cheader_filename = "sys/ioctl.h")]
3330         public const int TIOCSPTLCK;
3331         [CCode (cheader_filename = "sys/ioctl.h")]
3332         public const int TCGETX;
3333         [CCode (cheader_filename = "sys/ioctl.h")]
3334         public const int TCSETX;
3335         [CCode (cheader_filename = "sys/ioctl.h")]
3336         public const int TCSETXF;
3337         [CCode (cheader_filename = "sys/ioctl.h")]
3338         public const int TCSETXW;
3340         [CCode (cheader_filename = "sys/ioctl.h")]
3341         public const int FIONCLEX;
3342         [CCode (cheader_filename = "sys/ioctl.h")]
3343         public const int FIOCLEX;
3344         [CCode (cheader_filename = "sys/ioctl.h")]
3345         public const int FIOASYNC;
3346         [CCode (cheader_filename = "sys/ioctl.h")]
3347         public const int TIOCSERCONFIG;
3348         [CCode (cheader_filename = "sys/ioctl.h")]
3349         public const int TIOCSERGWILD;
3350         [CCode (cheader_filename = "sys/ioctl.h")]
3351         public const int TIOCSERSWILD;
3352         [CCode (cheader_filename = "sys/ioctl.h")]
3353         public const int TIOCGLCKTRMIOS;
3354         [CCode (cheader_filename = "sys/ioctl.h")]
3355         public const int TIOCSLCKTRMIOS;
3356         [CCode (cheader_filename = "sys/ioctl.h")]
3357         public const int TIOCSERGSTRUCT;
3358         [CCode (cheader_filename = "sys/ioctl.h")]
3359         public const int TIOCSERGETLSR;
3360         [CCode (cheader_filename = "sys/ioctl.h")]
3361         public const int TIOCSERGETMULTI;
3362         [CCode (cheader_filename = "sys/ioctl.h")]
3363         public const int TIOCSERSETMULTI;
3365         [CCode (cheader_filename = "sys/ioctl.h")]
3366         public const int TIOCMIWAIT;
3367         [CCode (cheader_filename = "sys/ioctl.h")]
3368         public const int TIOCGICOUNT;
3369         [CCode (cheader_filename = "sys/ioctl.h")]
3370         public const int TIOCGHAYESESP;
3371         [CCode (cheader_filename = "sys/ioctl.h")]
3372         public const int TIOCSHAYESESP;
3373         [CCode (cheader_filename = "sys/ioctl.h")]
3374         public const int FIOQSIZE;
3376         [CCode (cheader_filename = "sys/ioctl.h")]
3377         public const int TIOCPKT_DATA;
3378         [CCode (cheader_filename = "sys/ioctl.h")]
3379         public const int TIOCPKT_FLUSHREAD;
3380         [CCode (cheader_filename = "sys/ioctl.h")]
3381         public const int TIOCPKT_FLUSHWRITE;
3382         [CCode (cheader_filename = "sys/ioctl.h")]
3383         public const int TIOCPKT_STOP;
3384         [CCode (cheader_filename = "sys/ioctl.h")]
3385         public const int TIOCPKT_START;
3386         [CCode (cheader_filename = "sys/ioctl.h")]
3387         public const int TIOCPKT_NOSTOP;
3388         [CCode (cheader_filename = "sys/ioctl.h")]
3389         public const int TIOCPKT_DOSTOP;
3391         [CCode (cheader_filename = "sys/ioctl.h")]
3392         public const int TIOCSER_TEMT;
3393     }
3395     /*
3396      * Virtual Terminal
3397      */
3398     [CCode (cprefix = "", lower_case_cprefix = "")]
3399     namespace VirtualTerminal {
3401         /* constants */
3403         [CCode (cheader_filename = "linux/vt.h")]
3404         public const int MIN_NR_CONSOLES;
3405         [CCode (cheader_filename = "linux/vt.h")]
3406         public const int MAX_NR_CONSOLES;
3407         [CCode (cheader_filename = "linux/vt.h")]
3408         public const int MAX_NR_USER_CONSOLES;
3409         [CCode (cheader_filename = "linux/vt.h")]
3410         public const int VT_OPENQRY;
3411         [CCode (cheader_filename = "linux/vt.h")]
3412         public const int VT_GETMODE;
3413         [CCode (cheader_filename = "linux/vt.h")]
3414         public const int VT_SETMODE;
3415         [CCode (cheader_filename = "linux/vt.h")]
3416         public const int VT_AUTO;
3417         [CCode (cheader_filename = "linux/vt.h")]
3418         public const int VT_PROCESS;
3419         [CCode (cheader_filename = "linux/vt.h")]
3420         public const int VT_ACKACQ;
3421         [CCode (cheader_filename = "linux/vt.h")]
3422         public const int VT_GETSTATE;
3423         [CCode (cheader_filename = "linux/vt.h")]
3424         public const int VT_SENDSIG;
3425         [CCode (cheader_filename = "linux/vt.h")]
3426         public const int VT_RELDISP;
3427         [CCode (cheader_filename = "linux/vt.h")]
3428         public const int VT_ACTIVATE;
3429         [CCode (cheader_filename = "linux/vt.h")]
3430         public const int VT_WAITACTIVE;
3431         [CCode (cheader_filename = "linux/vt.h")]
3432         public const int VT_DISALLOCATE;
3433         [CCode (cheader_filename = "linux/vt.h")]
3434         public const int VT_RESIZE;
3435         [CCode (cheader_filename = "linux/vt.h")]
3436         public const int VT_RESIZEX;
3437         [CCode (cheader_filename = "linux/vt.h")]
3438         public const int VT_LOCKSWITCH;
3439         [CCode (cheader_filename = "linux/vt.h")]
3440         public const int VT_UNLOCKSWITCH;
3441         [CCode (cheader_filename = "linux/vt.h")]
3442         public const int VT_GETHIFONTMASK;
3444         /* structs */
3446         [CCode (cname = "struct vt_mode", cheader_filename = "linux/vt.h")]
3447         public struct Mode {
3448             public char mode;
3449             public char waitv;
3450             public int16 relsig;
3451             public int16 acqsig;
3452             public int16 frsig;
3453         }
3455         [CCode (cname = "struct vt_stat", cheader_filename = "linux/vt.h")]
3456         public struct Stat {
3457             public uint16 v_active;
3458             public uint16 v_signal;
3459             public uint16 v_state;
3460         }
3462         [CCode (cname = "struct vt_sizes", cheader_filename = "linux/vt.h")]
3463         public struct Sizes {
3464             public uint16 v_rows;
3465             public uint16 v_cols;
3466             public uint16 v_scrollsize;
3467         }
3469         [CCode (cname = "struct vt_consize", cheader_filename = "linux/vt.h")]
3470         public struct Consize {
3471             public uint16 v_rows;
3472             public uint16 v_cols;
3473             public uint16 v_vlin;
3474             public uint16 v_clin;
3475             public uint16 v_vcol;
3476             public uint16 v_ccol;
3477         }
3478     }