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