vala: Use CodeContext.root instead of SemanticAnalyzer.root_symbol
[vala-gnome.git] / vapi / linux.vapi
blob3c4c7381f78dde3cba9c202e12fdf39c0c94e3c7
1 /* linux.vapi
2  *
3  * Copyright (C) 2009-2015 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_", has_type_id = false, cheader_filename = "linux/kd.h")]
145         public enum FontOperationCode {
146             SET,
147             GET,
148             SET_DEFAULT,
149             COPY
150         }
152         [CCode (cprefix = "K_", has_type_id = false, cheader_filename = "linux/kd.h")]
153         public enum KeyboardMode {
154             RAW,
155             XLATE,
156             MEDIUMRAW,
157             UNICODE
158         }
160         [CCode (cprefix = "K_", has_type_id = false, cheader_filename = "linux/kd.h")]
161         public enum LedMode {
162             SCROLLLOCK,
163             NUMLOCK,
164             CAPSLOCK
165         }
167         [CCode (cprefix = "LED_", has_type_id = false, cheader_filename = "linux/kd.h")]
168         public enum LedType {
169             SCR,
170             NUM,
171             CAP
172         }
174         [CCode (cprefix = "KD_", has_type_id = false, cheader_filename = "linux/kd.h")]
175         public enum TerminalMode {
176             TEXT,
177             GRAPHICS
178         }
180         [CCode (cprefix = "K_", has_type_id = false, cheader_filename = "linux/kd.h")]
181         public enum MetaMode {
182             METABIT,
183             ESCPREFIX
184         }
186         /* structs */
188         [CCode (cname = "struct kbdiacr", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, cheader_filename = "linux/kd.h")]
240         public struct KeyCode {
241             public uint scancode;
242             public uint keycode;
243         }
245         [CCode (cname = "struct kbentry", has_type_id = false, 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", has_type_id = false, 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", has_type_id = false, cheader_filename = "linux/kd.h")]
259         public struct KeyRepeat {
260             public int delay;
261             public int period;
262         }
264         [CCode (cname = "struct unipair", has_type_id = false, cheader_filename = "linux/kd.h")]
265         public struct UniPair {
266             public uint16 unicode;
267             public uint16 fontpos;
268         }
270         [CCode (cname = "struct unimapdesc", has_type_id = false, cheader_filename = "linux/kd.h")]
271         public struct UniMapDesc {
272             public uint16 entry_ct;
273             UniPair entries;
274         }
276         [CCode (cname = "struct unimapinit", has_type_id = false, 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_", has_type_id = false, cheader_filename = "sys/eventfd.h")]
288     public enum EventFdFlags {
289         CLOEXEC,
290         NONBLOCK
291     }
293     [CCode (cheader_filename = "sys/eventfd.h")]
294     public int eventfd (uint count = 0, EventFdFlags flags = 0);
295     public int eventfd_read (int fd, out uint64 value);
296     public int eventfd_write (int fd, uint64 value);
298     /*
299      * Epoll
300      */
301     [CCode (cprefix = "EPOLL_", has_type_id = false, cheader_filename = "sys/epoll.h")]
302     public enum EpollFdFlags {
303         CLOEXEC,
304     }
306     [CCode (cheader_filename = "sys/epoll.h", has_type_id = false, cname = "union epoll_data")]
307     public struct EpollData {
308         public void* ptr;
309         public int fd;
310         public uint32 u32;
311         public uint64 u64;
312     }
314     [CCode (cheader_filename = "sys/epoll.h", has_type_id = false, cname = "struct epoll_event")]
315     public struct EpollEvent {
316         public uint32 events;
317         public EpollData data;
318     }
320     [CCode (cheader_filename = "sys/epoll.h")]
321     public int epoll_create (int size = 0);
322     [CCode (cheader_filename = "sys/epoll.h")]
323     public int epoll_create1 (int flags = 0);
324     [CCode (cheader_filename = "sys/epoll.h")]
325     public int epoll_wait (int epfd, EpollEvent[] events, int timeout);
326     [CCode (cheader_filename = "sys/epoll.h")]
327     public int epoll_pwait (int epfd, EpollEvent[] events, Posix.sigset_t? sigmask, int timeout);
328     [CCode (cheader_filename = "sys/epoll.h")]
329     public int epoll_ctl (int epfd, int op, int fd, EpollEvent? ev);
330     [CCode (cheader_filename = "sys/epoll.h")]
331     public const int EPOLLIN;
332     [CCode (cheader_filename = "sys/epoll.h")]
333     public const int EPOLLOUT;
334     [CCode (cheader_filename = "sys/epoll.h")]
335     public const int EPOLLERR;
336     [CCode (cheader_filename = "sys/epoll.h")]
337     public const int EPOLLHUP;
338     [CCode (cheader_filename = "sys/epoll.h")]
339     public const int EPOLLET;
340     [CCode (cheader_filename = "sys/epoll.h")]
341     public const int EPOLL_CTL_ADD;
342     [CCode (cheader_filename = "sys/epoll.h")]
343     public const int EPOLL_CTL_MOD;
344     [CCode (cheader_filename = "sys/epoll.h")]
345     public const int EPOLL_CTL_DEL;
347     /*
348      * Framebuffer
349      */
350     [CCode (cprefix = "", lower_case_cprefix = "")]
351     namespace Framebuffer {
353         /* ioctls */
354         [CCode (cheader_filename = "linux/fb.h")]
355         public const int FBIOGET_VSCREENINFO;
356         [CCode (cheader_filename = "linux/fb.h")]
357         public const int FBIOPUT_VSCREENINFO;
358         [CCode (cheader_filename = "linux/fb.h")]
359         public const int FBIOGET_FSCREENINFO;
360         [CCode (cheader_filename = "linux/fb.h")]
361         public const int FBIOGETCMAP;
362         [CCode (cheader_filename = "linux/fb.h")]
363         public const int FBIOPUTCMAP;
364         [CCode (cheader_filename = "linux/fb.h")]
365         public const int FBIOPAN_DISPLAY;
366         [CCode (cheader_filename = "linux/fb.h")]
367         public const int FBIO_CURSOR;
368         [CCode (cheader_filename = "linux/fb.h")]
369         public const int FBIOGET_MONITORSPEC;
370         [CCode (cheader_filename = "linux/fb.h")]
371         public const int FBIOPUT_MONITORSPEC;
372         [CCode (cheader_filename = "linux/fb.h")]
373         public const int FBIOSWITCH_MONIBIT;
374         [CCode (cheader_filename = "linux/fb.h")]
375         public const int FBIOGET_CON2FBMAP;
376         [CCode (cheader_filename = "linux/fb.h")]
377         public const int FBIOPUT_CON2FBMAP;
378         [CCode (cheader_filename = "linux/fb.h")]
379         public const int FBIOBLANK;
380         [CCode (cheader_filename = "linux/fb.h")]
381         public const int FBIOGET_VBLANK;
382         [CCode (cheader_filename = "linux/fb.h")]
383         public const int FBIO_ALLOC;
384         [CCode (cheader_filename = "linux/fb.h")]
385         public const int FBIO_FREE;
386         [CCode (cheader_filename = "linux/fb.h")]
387         public const int FBIOGET_GLYPH;
388         [CCode (cheader_filename = "linux/fb.h")]
389         public const int FBIOGET_HWCINFO;
390         [CCode (cheader_filename = "linux/fb.h")]
391         public const int FBIOPUT_MODEINFO;
392         [CCode (cheader_filename = "linux/fb.h")]
393         public const int FBIOGET_DISPINFO;
395         /* enums */
397         [CCode (cname = "guint32", cprefix = "FB_TYPE_", has_type_id = false, cheader_filename = "linux/fb.h")]
398         public enum Type {
399             PACKED_PIXELS,
400             PLANES,
401             INTERLEAVED_PLANES,
402             TEXT,
403             VGA_PLANES
404         }
406         [CCode (cname = "guint32", cprefix = "FB_ACTIVATE_", has_type_id = false, cheader_filename = "linux/fb.h")]
407         public enum Activate {
408             NOW,
409             NXTOPEN,
410             TEST,
411             MASK,
412             VBL,
413             [CCode (cname = "FB_CHANGE_CMAP_VBL")]
414             CHANGE_CMAP_VBL,
415             ALL,
416             FORCE,
417             INV_MODE
418         }
420         [CCode (cname = "guint32", cprefix = "FB_ACCEL_", has_type_id = false, cheader_filename = "linux/fb.h")]
421         public enum Accel {
422             NONE
423         }
425         [CCode (cname = "guint32", cprefix = "FB_AUX_", has_type_id = false, cheader_filename = "linux/fb.h")]
426         public enum Aux {
427              TEXT_MDA,
428              TEXT_CGA,
429              TEXT_S3_MMIO,
430              TEXT_MGA_STEP16,
431              TEXT_MGA_STEP8,
432              TEXT_SVGA_GROUP,
433              TEXT_SVGA_MASK,
434              TEXT_SVGA_STEP2,
435              TEXT_SVGA_STEP4,
436              TEXT_SVGA_STEP8,
437              TEXT_SVGA_STEP16,
438              TEXT_SVGA_LAST,
439              VGA_PLANES_VGA4,
440              VGA_PLANES_CFB4,
441              VGA_PLANES_CFB8
442         }
444         [CCode (cprefix = "FB_BLANK_", has_type_id = false, cheader_filename = "linux/fb.h")]
445         public enum Blank {
446             UNBLANK,
447             NORMAL,
448             VSYNC_SUSPEND,
449             HSYNC_SUSPEND,
450             POWERDOWN
451         }
453         [CCode (cprefix = "FB_CUR_", has_type_id = false, cheader_filename = "linux/fb.h")]
454         public enum Cur {
455             SETIMAGE,
456             SETPOS,
457             SETHOT,
458             SETCMAP,
459             SETSHAPE,
460             SETSIZE,
461             SETALL
462         }
464         [CCode (cname = "guint32", cprefix = "ROP_", has_type_id = false, cheader_filename = "linux/fb.h")]
465         public enum Rop {
466             COPY,
467             XOR
468         }
470         [CCode (cprefix = "FB_ROTATE_", has_type_id = false, cheader_filename = "linux/fb.h")]
471         public enum Rotate {
472             UR,
473             CW,
474             UD,
475             CCW
476         }
478         [CCode (cname = "guint32", cprefix = "FB_SYNC_", has_type_id = false, cheader_filename = "linux/fb.h")]
479         public enum Sync {
480             HOR_HIGH_ACT,
481             VERT_HIGH_ACT,
482             EXT,
483             COMP_HIGH_ACT,
484             BROADCAST,
485             ON_GREEN
486         }
488         [CCode (cname = "guint32", cprefix = "FB_VISUAL_", has_type_id = false, cheader_filename = "linux/fb.h")]
489         public enum Visual {
490             MONO01,
491             MONO10,
492             TRUECOLOR,
493             PSEUDOCOLOR,
494             DIRECTCOLOR,
495             STATIC_PSEUDOCOLOR
496         }
498         [CCode (cname = "guint32", cprefix = "FB_VMODE_", has_type_id = false, cheader_filename = "linux/fb.h")]
499         public enum Vmode {
500             NONINTERLACED,
501             INTERLACED,
502             DOUBLE,
503             ODD_FLD_FIRST,
504             MASK,
505             YWRAP,
506             SMOOTH_XPAN,
507             CONUPDATE
508         }
510         /* structures */
512         [CCode (cname = "struct fb_bitfield", has_type_id = false, cheader_filename = "linux/fb.h")]
513         public struct BitField {
514             public uint32 offset;
515             public uint32 length;
516             public uint32 msb_right;
517         }
519         [CCode (cname = "struct fb_cmap", has_type_id = false, cheader_filename = "linux/fb.h")]
520         public struct Cmap {
521             public uint32 start;
522             public uint32 len;
523             public uint16* red;
524             public uint16* green;
525             public uint16* blue;
526             public uint16* transp;
527         }
529         [CCode (cname = "struct fb_con2fbmap", has_type_id = false, cheader_filename = "linux/fb.h")]
530         public struct Con2FbMap {
531             public uint32 console;
532             public uint32 framebuffer;
533         }
535         [CCode (cname = "struct fbcurpos", has_type_id = false, cheader_filename = "linux/fb.h")]
536         public struct CurPos {
537             public uint16 x;
538             public uint16 y;
539         }
541         [CCode (cname = "struct fb_cursor", has_type_id = false, cheader_filename = "linux/fb.h")]
542         public struct Cursor {
543             public uint16 set;
544             public uint16 enable;
545             public uint16 rop;
546             string mask;
547             public CurPos hot;
548             public Image image;
549         }
551         [CCode (cname = "struct fb_copyarea", has_type_id = false, cheader_filename = "linux/fb.h")]
552         public struct CopyArea {
553             public uint32 dx;
554             public uint32 dy;
555             public uint32 width;
556             public uint32 height;
557             public uint32 sx;
558             public uint32 sy;
559         }
561         [CCode (cname = "struct fb_fillrect", has_type_id = false, cheader_filename = "linux/fb.h")]
562         public struct FillRect {
563             public uint32 dx;
564             public uint32 dy;
565             public uint32 width;
566             public uint32 height;
567             public uint32 color;
568             public Rop rop;
569         }
571         [CCode (cname = "struct fb_image", has_type_id = false, cheader_filename = "linux/fb.h")]
572         public struct Image {
573             public uint32 dx;
574             public uint32 dy;
575             public uint32 width;
576             public uint32 height;
577             public uint32 fg_color;
578             public uint32 bg_color;
579             public uint8 depth;
580             public char* data;
581             public Cmap cmap;
582         }
584         [CCode (cname = "struct fb_fix_screeninfo", has_type_id = false, cheader_filename = "linux/fb.h")]
585         public struct FixScreenInfo {
586             public char id[16];
587             public long smem_start;
588             public uint32 smem_len;
589             public Type type;
590             public Aux type_aux;
591             public Visual visual;
592             public uint16 xpanstep;
593             public uint16 ypanstep;
594             public uint16 ywrapstep;
595             public uint32 line_length;
596             public long mmio_start;
597             public uint32 mmio_len;
598             public Accel accel;
599         }
601         [CCode (cname = "struct fb_var_screeninfo", has_type_id = false, cheader_filename = "linux/fb.h")]
602         public struct VarScreenInfo {
603             public uint32 xres;
604             public uint32 yres;
605             public uint32 xres_virtual;
606             public uint32 yres_virtual;
607             public uint32 xoffset;
608             public uint32 yoffset;
609             public uint32 bits_per_pixel;
610             public uint32 grayscale;
611             public BitField red;
612             public BitField green;
613             public BitField blue;
614             public BitField transp;
615             public uint32 nonstd;
616             public Activate activate;
617             public uint32 height;
618             public uint32 width;
619             public uint32 pixclock;
620             public uint32 left_margin;
621             public uint32 right_margin;
622             public uint32 upper_margin;
623             public uint32 lower_margin;
624             public uint32 hsync_len;
625             public uint32 vsync_len;
626             public Sync sync;
627             public Vmode vmode;
628             public uint32 rotate;
629         }
631         [CCode (cname = "struct fb_vblank", has_type_id = false, cheader_filename = "linux/fb.h")]
632         public struct Vblank {
633             public uint32 flags;
634             public uint32 count;
635             public uint32 vcount;
636             public uint32 hcount;
637         }
639         [CCode (lower_case_cprefix = "omapfb_", has_type_id = false, cheader_filename = "linux/omapfb.h")]
640         namespace OMAP {
641             [CCode (cname = "int", has_type_id = false, cprefix = "OMAPFB_")]
642             public enum IOCTL {
643                 MIRROR,
644                 SYNC_GFX,
645                 VSYNC,
646                 SET_UPDATE_MODE,
647                 GET_CAPS,
648                 GET_UPDATE_MODE,
649                 LCD_TEST,
650                 CTRL_TEST,
651                 UPDATE_WINDOW_OLD,
652                 SET_COLOR_KEY,
653                 GET_COLOR_KEY,
654                 SETUP_PLANE,
655                 QUERY_PLANE,
656                 UPDATE_WINDOW,
657                 SETUP_MEM,
658                 QUERY_MEM,
659                 WAITFORVSYNC,
660                 MEMORY_READ,
661                 GET_OVERLAY_COLORMODE,
662                 WAITFORGO,
663                 GET_VRAM_INFO,
664                 SET_TEARSYNC
665             }
667             [Flags, CCode (cname = "int", has_type_id = false, prefix = "OMAPFB_CAPS_")]
668             public enum Caps {
669                 GENERIC_MASK,
670                 LCDC_MASK,
671                 PANEL_MASK,
673                 MANUAL_UPDATE,
674                 TEARSYNC,
675                 PLANE_RELOCATE_MEM,
676                 PLANE_SCALE,
677                 WINDOW_PIXEL_DOUBLE,
678                 WINDOW_SCALE,
679                 WINDOW_OVERLAY,
680                 WINDOW_ROTATE,
681                 SET_BACKLIGHT,
682             }
684             [Flags, CCode (cname = "int", has_type_id = false, cprefix = "OMAPFB_FORMAT_FLAG_")]
685             public enum Format {
686                 [CCode (cname = "OMAPFB_FORMAT_MASK")]
687                 MASK,
689                 DOUBLE,
690                 TEARSYNC,
691                 FORCE_VSYNC,
692                 ENABLE_OVERLAY,
693                 DISABLE_OVERLAY
694             }
696             [CCode (cname = "int", has_type_id = false, cprefix = "OMAPFB_MEMTYPE_")]
697             public enum MemType {
698                 SDRAM,
699                 SRAM,
700                 MAX
701             }
703             [CCode (cname = "enum omapfb_color_format", has_type_id = false, cprefix = "OMAPFB_COLOR_")]
704             public enum ColorFormat {
705                 RGB565,
706                 YUV422,
707                 YUV420,
708                 CLUT_8BPP,
709                 CLUT_4BPP,
710                 CLUT_2BPP,
711                 CLUT_1BPP,
712                 RGB444,
713                 YUY422,
715                 ARGB16,
716                 RGB24U,
717                 RGB24P,
718                 ARGB32,
719                 RGBA32,
720                 RGBX32,
721             }
723             [CCode (cname = "omapfb_update_window", has_type_id = false)]
724             public struct UpdateWindow {
725                 public uint32 x;
726                 public uint32 y;
727                 public uint32 width;
728                 public uint32 height;
729                 public uint32 format;
730                 public uint32 out_x;
731                 public uint32 out_y;
732                 public uint32 out_width;
733                 public uint32 out_height;
734             }
736             [CCode (cname = "enum omapfb_plane", has_type_id = false, cprefix = "OMAPFB_PLANE_")]
737             public enum Plane {
738                 GFX,
739                 VID1,
740                 VID2
741             }
743             [CCode (cname = "enum omapfb_channel_out", has_type_id = false, cprefix = "OMAPFB_CHANNEL_OUT_")]
744             public enum ChannelOut {
745                 LCD,
746                 DIGIT
747             }
749             [CCode (cname = "struct omapfb_plane_info", has_type_id = false)]
750             public struct PlaneInfo {
751                 public uint32 pos_x;
752                 public uint32 pos_y;
753                 public uint8 enabled;
754                 public uint8 channel_out;
755                 public uint8 mirror;
756                 public uint32 out_width;
757                 public uint32 out_height;
758             }
760             [CCode (cname = "struct omapfb_mem_info", has_type_id = false)]
761             public struct MemInfo {
762                 public uint32 size;
763                 public uint8 type;
764             }
766             [CCode (cname = "struct omapfb_caps", has_type_id = false)]
767             public struct Capabilities {
768                 public uint32 ctrl;
769                 public uint32 plane_color;
770                 public uint32 wnd_color;
771             }
773             [CCode (cname = "enum omapfb_color_key_type", has_type_id = false, cprefix = "OMAPFB_COLOR_KEY_")]
774             public enum ColorKeyType {
775                 DISABLED,
776                 GFX_DST,
777                 VID_SRC
778             }
780             [CCode (cname = "struct omapfb_color_key", has_type_id = false)]
781             public struct ColorKey {
782                 public uint8 channel_out;
783                 public uint32 background;
784                 public uint32 trans_key;
785                 public uint8 key_type;
786             }
788             [CCode (cname = "enum omapfb_update_mode", has_type_id = false)]
789             public enum UpdateMode {
790                 [CCode (cname = "OMAPFB_UPDATE_DISABLED")]
791                 DISABLED,
792                 [CCode (cname = "OMAPFB_AUTO_UPDATE")]
793                 AUTO,
794                 [CCode (cname = "OMAPFB_MANUAL_UPDATE")]
795                 MANUAL
796             }
798             [CCode (cname = "struct omapfb_memory_read", has_type_id = false)]
799             public struct MemoryRead {
800                 public uint16 x;
801                 public uint16 y;
802                 public uint16 w;
803                 public uint16 h;
804                 public size_t buffer_size;
805                 public void* buffer;
806             }
808             [CCode (cname = "struct omapfb_ovl_colormode", has_type_id = false)]
809             public struct OvlColorMode {
810                 public uint8 overlay_idx;
811                 public uint8 mode_idx;
812                 public uint32 bits_per_pixel;
813                 public uint32 nonstd;
814                 public Framebuffer.BitField red;
815                 public Framebuffer.BitField green;
816                 public Framebuffer.BitField blue;
817                 public Framebuffer.BitField transp;
818             }
820             [CCode (cname = "struct omapfb_vram_info", has_type_id = false)]
821             public struct VRamInfo {
822                 public uint32 total;
823                 public uint32 free;
824                 public uint32 largest_free_block;
825             }
827             [CCode (cname = "struct omapfb_tearsync_info", has_type_id = false)]
828             public struct TearSyncInfo {
829                 public uint8 enabled;
830                 public uint16 line;
831             }
832         }
833     }
835     // Non-Posix file control constants, -D _GNU_SOURCE
836     [CCode (cheader_filename = "fcntl.h")]
837     public const int O_DIRECT;
838     [CCode (cheader_filename = "fcntl.h")]
839     public const int O_NOATIME;
840     [CCode (cheader_filename = "fcntl.h")]
841     public const int O_PATH;
842     [CCode (cheader_filename = "fcntl.h")]
843     public const int O_TMPFILE;
845     /*
846      * Gsm
847      */
848     namespace Gsm {
850         [CCode (cname = "GSMIOC_GETCONF", cheader_filename = "linux/gsmmux.h")]
851         public const int GSMIOC_GETCONF;
852         [CCode (cname = "GSMIOC_SETCONF", cheader_filename = "linux/gsmmux.h")]
853         public const int GSMIOC_SETCONF;
855         [CCode (cname = "struct gsm_config", has_type_id = false, cheader_filename = "linux/gsmmux.h")]
856         public struct Config {
857             public uint adaption;
858             public uint encapsulation;
859             public uint initiator;
860             public uint t1;
861             public uint t2;
862             public uint t3;
863             public uint n2;
864             public uint mru;
865             public uint mtu;
866             public uint k;
867             public uint i;
868         }
869     }
871     /*
872      * I2C and System Management Bus
873      */
874     [CCode (cprefix = "I2C_", lower_case_cprefix = "i2c_")]
875     namespace I2C {
877         const int SLAVE;
879         [CCode (cprefix = "", lower_case_cprefix = "i2c_smbus_")]
880         namespace SMBUS {
881             int32 write_byte_data_masked (int file, uint8 mask, uint8 command, uint8 value)
882             {
883                 int32 result = read_byte_data (file, command);
884                 if (result == -1)
885                 {
886                     return -1;
887                 }
888                 uint8 oldvalue = (uint8) result & 0xff;
889                 return write_byte_data (file, command, oldvalue | (value & mask) );
890             }
892             //[CCode (cheader_filename = "i2c.h")]
893             //int32 access(int file, char read_write, uint8 command, int size, union data *data);
894             [CCode (cheader_filename = "i2c.h")]
895             int32 write_quick (int file, uint8 value);
896             [CCode (cheader_filename = "i2c.h")]
897             int32 read_byte (int file);
898             [CCode (cheader_filename = "i2c.h")]
899             int32 write_byte (int file, uint8 value);
900             [CCode (cheader_filename = "i2c.h")]
901             int32 read_byte_data (int file, uint8 command);
902             [CCode (cheader_filename = "i2c.h")]
903             int32 write_byte_data (int file, uint8 command, uint8 value);
904             [CCode (cheader_filename = "i2c.h")]
905             int32 read_word_data (int file, uint8 command);
906             [CCode (cheader_filename = "i2c.h")]
907             int32 write_word_data (int file, uint8 command, uint16 value);
908             [CCode (cheader_filename = "i2c.h")]
909             int32 process_call (int file, uint8 command, uint16 value);
910             [CCode (cheader_filename = "i2c.h")]
911             int32 read_block_data (int file, uint8 command, [CCode (array_length=false)] uint8[] values);
912             [CCode (cheader_filename = "i2c.h")]
913             int32 write_block_data (int file, uint8 command, [CCode (array_length_pos = 2.3)] uint8[] values);
914             [CCode (cheader_filename = "i2c.h")]
915             int32 read_i2c_block_data (int file, uint8 command, [CCode (array_length_pos = 2.3)] uint8[] values);
916             [CCode (cheader_filename = "i2c.h")]
917             int32 write_i2c_block_data (int file, uint8 command, [CCode (array_length_pos = 2.3)] uint8[] values);
918             [CCode (cheader_filename = "i2c.h")]
919             int32 block_process_call (int file, uint8 command, [CCode (array_length_pos = 2.3)] uint8[] values);
920         }
921     }
923     /*
924      * Inotify
925      */
926     [CCode (cname = "struct inotify_event", has_type_id = false, cheader_filename = "sys/inotify.h")]
927     public struct InotifyEvent {
928         public int wd;
929         public uint32 mask;
930         public uint32 cookie;
931         public uint32 len;
932         public string name;
933     }
935     [Flags, CCode (cname = "int", cprefix = "IN_", has_type_id = false, cheader_filename = "sys/inotify.h")]
937     public enum InotifyFlags {
938         CLOEXEC,
939         NONBLOCK
940     }
942     [Flags, CCode (cname = "int", cprefix = "IN_", has_type_id = false, cheader_filename = "sys/inotify.h")]
943     public enum InotifyMaskFlags {
944         ACCESS,
945         ATTRIB,
946         CLOSE,
947         CLOSE_WRITE,
948         CLOSE_NOWRITE,
949         CREATE,
950         DELETE,
951         DELETE_SELF,
952         MODIFY,
953         MOVE,
954         MOVE_SELF,
955         MOVED_FROM,
956         MOVED_TO,
957         OPEN,
958         DONT_FOLLOW,
959         MASK_ADD,
960         ONESHOT,
961         ONLYDIR,
962         IGNORED,
963         ISDIR,
964         Q_OVERFLOW,
965         UNMOUNT
966     }
968     [CCode (cname = "inotify_init1", cheader_filename = "sys/inotify.h")]
969     public int inotify_init (InotifyFlags flags = 0);
970     public int inotify_add_watch (int fd, string pathname, InotifyMaskFlags mask);
971     public int inotify_rm_watch (int fd, int wd);
973     /*
974      * RfKill
975      */
976     [CCode (cname = "struct rfkill_event", has_type_id = false, cheader_filename = "linux/rfkill.h")]
977     public struct RfKillEvent {
978         public uint32 idx;
979         public RfKillType type;
980         public RfKillOp op;
981         public uint8 soft;
982         public uint8 hard;
983     }
985     [CCode (cname = "guint8", cprefix = "RFKILL_OP_", has_type_id = false, cheader_filename = "linux/rfkill.h")]
986     public enum RfKillOp {
987         ADD,
988         DEL,
989         CHANGE,
990         CHANGE_ALL
991     }
993     [CCode (cname = "guint8", cprefix = "RFKILL_STATE_", has_type_id = false, cheader_filename = "linux/rfkill.h")]
994     public enum RfKillState {
995         SOFT_BLOCKED,
996         UNBLOCKED,
997         HARD_BLOCKED
998     }
1000     [CCode (cname = "guint8", cprefix = "RFKILL_TYPE_", has_type_id = false, cheader_filename = "linux/rfkill.h")]
1001     public enum RfKillType {
1002         ALL,
1003         WLAN,
1004         BLUETOOTH,
1005         UWB,
1006         WIMAX,
1007         WWAN
1008     }
1010     /*
1011      * SignalFd
1012      */
1013     [CCode (cprefix = "SFD_", has_type_id = false, cheader_filename = "sys/signalfd.h")]
1014     public enum SignalFdFlags {
1015         CLOEXEC,
1016         NONBLOCK
1017     }
1019     [CCode (cheader_filename = "sys/signalfd.h")]
1020     public int signalfd (int fd, Posix.sigset_t mask, SignalFdFlags flags = 0);
1022     /*
1023      * Misc non-posix additions
1024      */
1025     [CCode (cheader_filename = "dirent.h", has_type_id = false)]
1026     public enum DirEntType {
1027         DT_UNKNOWN,
1028         DT_FIFO,
1029         DT_CHR,
1030         DT_DIR,
1031         DT_BLK,
1032         DT_REG,
1033         DT_LNK,
1034         DT_SOCK,
1035         DT_WHT
1036     }
1038     [Version (deprecated_since = "vala-0.26", replacement = "Backtrace.get"), CCode (cheader_filename = "execinfo.h")]
1039     public int backtrace (void* buffer, int size);
1041     [Version (deprecated_since = "vala-0.26", replacement = "Backtrace.symbols"), CCode (cheader_filename = "execinfo.h", array_length = false)]
1042     public (unowned string)[]? backtrace_symbols (void* buffer, int size);
1044     [Version (deprecated_since = "vala-0.26", replacement = "Backtrace.symbols_fd"), CCode (cheader_filename = "execinfo.h")]
1045     public void backtrace_symbols_fd (void* buffer, int size, int fd);
1047     namespace Backtrace {
1048       [CCode (cname = "backtrace", cheader_filename = "execinfo.h")]
1049       public int @get (void*[] buffer);
1050       [CCode (cname = "backtrace_symbols", cheader_filename = "execinfo.h", array_length = false)]
1051       private (unowned string)[]? _symbols (void*[] buffer);
1052       [CCode (cname = "_vala_backtrace_symbols")]
1053       public (unowned string)[]? symbols (void*[] buffer) {
1054         (unowned string)[]? s = _symbols (buffer);
1055         s.length = buffer.length;
1056         return s;
1057       }
1058       [CCode (cheader_filename = "execinfo.h")]
1059       public void symbols_fd (void*[] buffer, int fd);
1060     }
1062     [CCode (cheader_filename = "unistd.h")]
1063     public int sethostname (string name, size_t len);
1065     // additional sysconf(3) constants
1066     [CCode (cheader_filename = "unistd.h")]
1067     public const int _SC_PHYS_PAGES;
1068     [CCode (cheader_filename = "unistd.h")]
1069     public const int _SC_AVPHYS_PAGES;
1070     [CCode (cheader_filename = "unistd.h")]
1071     public const int _SC_NPROCESSORS_CONF;
1072     [CCode (cheader_filename = "unistd.h")]
1073     public const int _SC_NPROCESSORS_ONLN;
1075     [CCode (cheader_filename = "arpa/inet.h")]
1076     public int inet_aton (string cp, out Posix.InAddr addr);
1078     [CCode (cheader_filename = "sys/ioctl.h", sentinel = "")]
1079     public int ioctl (int fd, int request, ...);
1081     [CCode (cname = "makedev", cheader_filename = "sys/types.h")]
1082     public Posix.dev_t makedev (int maj, int min);
1083     [CCode (cname = "major", cheader_filename = "sys/types.h")]
1084     public int major (Posix.dev_t dev);
1085     [CCode (cname = "minor", cheader_filename = "sys/types.h")]
1086     public int minor (Posix.dev_t dev);
1088     [CCode (cname = "unsigned long int", cprefix = "MS_", has_type_id = false, cheader_filename = "sys/mount.h,linux/fs.h")]
1089     public enum MountFlags {
1090         RDONLY,
1091         NOSUID,
1092         NODEV,
1093         NOEXEC,
1094         SYNCHRONOUS,
1095         REMOUNT,
1096         MANDLOCK,
1097         DIRSYNC,
1098         NOATIME,
1099         NODIRATIME,
1100         BIND,
1101         MOVE,
1102         REC,
1103         SILENT,
1104         POSIXACL,
1105         UNBINDABLE,
1106         PRIVATE,
1107         SLAVE,
1108         SHARED,
1109         RELATIME,
1110         KERNMOUNT,
1111         I_VERSION,
1112         STRICTATIME,
1113         BORN,
1114         ACTIVE,
1115         NOUSER
1116     }
1118     [CCode (cname = "int", cprefix = "MNT_", has_type_id = false, cheader_filename = "sys/mount.h")]
1119     public enum UnmountFlags {
1120         FORCE,                /* Force unmounting.  */
1121         DETACH,               /* Just detach from the tree.  */
1122         EXPIRE                /* Mark for expiry.  */
1123     }
1125     [CCode (cheader_filename = "sys/mount.h")]
1126     public int mount (string source, string target, string filesystemtype, MountFlags flags = 0, string options = "");
1127     [CCode (cheader_filename = "sys/mount.h")]
1128     public int umount (string target);
1129     [CCode (cheader_filename = "sys/mount.h")]
1130     public int umount2 (string target, UnmountFlags flags);
1132     [CCode (cname = "struct winsize", has_type_id = false, cheader_filename = "termios.h", destroy_function = "")]
1133     public struct winsize {
1134         public ushort ws_row;
1135         public ushort ws_col;
1136         public ushort ws_xpixel;
1137         public ushort ws_ypixel;
1138     }
1140     [CCode (cheader_filename = "pty.h")]
1141     public Posix.pid_t forkpty (out int amaster,
1142                                 [CCode (array_length=false, array_null_terminated=true)] char[] name,
1143                                 Posix.termios? termp,
1144                                 winsize? winp);
1146     [CCode (cheader_filename = "pty.h")]
1147     public int openpty (out int amaster,
1148                         out int aslave,
1149                         [CCode (array_length=false, array_null_terminated=true)] char[] name,
1150                         Posix.termios? termp,
1151                         winsize? winp);
1153     [CCode (cprefix = "RB_", has_type_id = false, cheader_filename = "unistd.h,sys/reboot.h")]
1154     public enum RebootCommands {
1155          AUTOBOOT,
1156          HALT_SYSTEM,
1157          ENABLE_CAD,
1158          DISABLE_CAD,
1159          POWER_OFF
1160     }
1162     [CCode (cheader_filename = "unistd.h,sys/reboot.h")]
1163     public int reboot (RebootCommands cmd);
1165     [CCode (cprefix = "CLONE_", has_type_id = false, cheader_filename = "sched.h")]
1166     public enum CloneFlags {
1167         FILES,
1168         FS,
1169         NEWNS
1170     }
1172     [CCode (cheader_filename = "sched.h")]
1173     public int unshare (CloneFlags flags);
1175     [CCode (cheader_filename = "sys/time.h")]
1176     public int adjtime (Posix.timeval delta, Posix.timeval? olddelta = null);
1178     // adjtimex(2)
1179     [CCode (cprefix = "ADJ_", has_type_id = false, cheader_filename = "sys/timex.h")]
1180     public enum AdjustModes {
1181         OFFSET,
1182         FREQUENCY,
1183         MAXERROR,
1184         ESTERROR,
1185         STATUS,
1186         TIMECONST,
1187         TICK,
1188         OFFSET_SINGLESHOT
1189     }
1191     [CCode (cheader_filename = "sys/timex.h")]
1192     public const int TIME_OK;
1193     [CCode (cheader_filename = "sys/timex.h")]
1194     public const int TIME_INS;
1195     [CCode (cheader_filename = "sys/timex.h")]
1196     public const int TIME_DEL;
1197     [CCode (cheader_filename = "sys/timex.h")]
1198     public const int TIME_OOP;
1199     [CCode (cheader_filename = "sys/timex.h")]
1200     public const int TIME_WAIT;
1201     [CCode (cheader_filename = "sys/timex.h")]
1202     public const int TIME_BAD;
1204     // adjtimex(2)
1205     [CCode (cname = "struct timex", has_type_id = false, cheader_filename = "sys/timex.h")]
1206     public struct timex {
1207         public AdjustModes modes;   /* mode selector */
1208         public long offset;         /* time offset (usec) */
1209         public long freq;           /* frequency offset (scaled ppm) */
1210         public long maxerror;       /* maximum error (usec) */
1211         public long esterror;       /* estimated error (usec) */
1212         public int status;          /* clock command/status */
1213         public long constant;       /* pll time constant */
1214         public long precision;      /* clock precision (usec) (read-only) */
1215         public long tolerance;      /* clock frequency tolerance (ppm) (read-only) */
1216         public Posix.timeval time;  /* current time (read-only) */
1217         public long tick;           /* usecs between clock ticks */
1218     }
1220     [CCode (cheader_filename = "sys/timex.h")]
1221     public int adjtimex (Linux.timex buf);
1223     [CCode (cheader_filename = "time.h")]
1224     public time_t timegm (GLib.Time t);
1226     [CCode (cheader_filename = "time.h")]
1227     public const Posix.clockid_t CLOCK_MONOTONIC_RAW;
1229     [CCode (cheader_filename = "utmp.h")]
1230     public int login_tty (int fd);
1232     // emulate gettid(2) for which no glib wrapper exists via syscall
1233     public Posix.pid_t gettid() {
1234         return (Posix.pid_t) syscall( SysCall.gettid );
1235     }
1237     // syscall(2)
1238     [CCode (cprefix = "SYS_", has_type_id = false, cname = "int")]
1239     public enum SysCall {
1240         gettid
1241     }
1243     [CCode (cname = "syscall", cheader_filename = "unistd.h,sys/syscall.h")]
1244     public int syscall (int number, ...);
1246     // mremap(2)
1247     [CCode (cprefix = "MREMAP_", has_type_id = false, cheader_filename = "sys/mman.h")]
1248     public enum MremapFlags {
1249         MAYMOVE,
1250         FIXED
1251     }
1253     [CCode (cheader_filename = "sys/mman.h")]
1254     public void *mremap (void *old_address, size_t old_size, size_t new_size, MremapFlags flags);
1256     /*
1257      * Network
1258      */
1259     [CCode (cprefix = "", lower_case_cprefix = "")]
1260     namespace Network {
1262         // interface consts, structs, and methods
1263         [CCode (cname = "IFNAMSIZ", cheader_filename = "sys/socket.h,linux/if.h")]
1264         public const int INTERFACE_NAME_SIZE;
1266         [CCode (cheader_filename = "net/if.h")]
1267         public uint if_nametoindex (string ifname);
1268         [CCode (cheader_filename = "net/if.h")]
1269         public unowned string if_indextoname (uint ifindex, string ifname);
1270         [CCode (cheader_filename = "net/if.h")]
1271         public IfNameindex if_nameindex ();
1273         [CCode (cname = "int", cprefix = "IFF_", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h")]
1274         public enum IfFlag {
1275             UP,
1276             BROADCAST,
1277             DEBUG,
1278             LOOPBACK,
1279             POINTOPOINT,
1280             NOTRAILERS,
1281             RUNNING,
1282             NOARP,
1283             PROMISC,
1284             ALLMULTI,
1285             MASTER,
1286             SLAVE,
1287             PORTSEL,
1288             AUTOMEDIA,
1289             DYNAMIC
1290         }
1292         [CCode (cname = "struct if_nameindex", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h", destroy_function = "if_freenameindex")]
1293         public struct IfNameindex {
1294             public uint if_index;
1295             public string if_name;
1296         }
1298         [CCode (cname = "struct ifmap", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h", destroy_function = "")]
1299         public struct IfMap {
1300             public ulong mem_start;
1301             public ulong mem_end;
1302             public short base_addr;
1303             public uchar irq;
1304             public uchar dma;
1305             public uchar port;
1306         }
1308         [CCode (cname = "struct ifreq", has_type_id = false, cheader_filename = "netinet/in.h,linux/if.h", destroy_function = "")]
1309         public struct IfReq {
1310             [CCode (array_length = false)]
1311             public char[] ifr_name;
1312             public Posix.SockAddr ifr_addr;
1313             public Posix.SockAddr ifr_dstaddr;
1314             public Posix.SockAddr ifr_broadaddr;
1315             public Posix.SockAddr ifr_netmask;
1316             public Posix.SockAddr ifr_hwaddr;
1317             public short ifr_flags;
1318             public int ifr_metric;
1319             public int ifr_mtu;
1320             public IfMap ifr_map;
1321             public char[] ifr_slave;
1322             public string ifr_data;
1323             public int ifr_ifindex;
1324             public int ifr_bandwidth;
1325             public int ifr_qlen;
1326             public char[] ifr_newname;
1327         }
1329         [CCode (cname = "struct ifconf", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h", destroy_function = "")]
1330         public struct IfConf {
1331             public int ifc_len;
1332             public string ifc_buf;
1333             public IfReq ifc_req;
1334         }
1336         [CCode (cname = "struct ifaddrmsg", has_type_id = false, cheader_filename = "linux/if_addr.h", destroy_function = "")]
1337         public struct IfAddrMsg {
1338             public uint8 ifa_family;
1339             public uint8 ifa_prefixlen;
1340             public uint8 ifa_flags;
1341             public uint8 ifa_scope;
1342             public uint32 ifa_index;
1343         }
1345         [Compact, CCode (cname = "struct ifaddrs", cheader_filename = "sys/types.h,ifaddrs.h", free_function = "freeifaddrs", has_type_id = false)]
1346         public class IfAddrs {
1347                 public unowned IfAddrs? ifa_next;
1348                 public string ifa_name;
1349                 public uint ifa_flags;
1350                 public Posix.SockAddr? ifa_addr;
1351                 public Posix.SockAddr? ifa_netmask;
1352                 [CCode (cname = "ifa_ifu.ifu_broadaddr")]
1353                 public Posix.SockAddr? ifa_ifu_broadaddr;
1354                 [CCode (cname = "ifa_ifu.ifu_dstaddr")]
1355                 public Posix.SockAddr? ifa_ifu_dstaddr;
1356                 public void* ifa_data;
1357         }
1359         [CCode (cname = "getifaddrs")]
1360         public static int getifaddrs (out IfAddrs ifap);
1362         [CCode (cprefix = "IFA_", has_type_id = false, cheader_filename = "linux/if_addr.h")]
1363         public enum IfAddrType {
1364             UNSPEC,
1365             ADDRESS,
1366             LOCAL,
1367             LABEL,
1368             BROADCAST,
1369             ANYCAST,
1370             CACHEINFO,
1371             MULTICAST
1372         }
1374         [CCode (cheader_filename = "linux/if_addr.h")]
1375         public int IFA_PAYLOAD (Linux.Netlink.NlMsgHdr nlh);
1376         [CCode (cheader_filename = "linux/if_addr.h")]
1377         public Linux.Netlink.RtAttr* IFA_RTA (Linux.Network.IfAddrMsg* msg);
1379         [CCode (cprefix = "ARPHRD_", has_type_id = false, cheader_filename = "linux/if_arp.h")]
1380         public enum IfArpHeaderType {
1381             NETROM,
1382             ETHER,
1383             EETHER,
1384             AX25,
1385             PRONET,
1386             CHAOS,
1387             IEEE802,
1388             ARCNET,
1389             APPLETLK,
1390             DLCI,
1391             ATM,
1392             METRICOM,
1393             IEEE1394,
1394             EUI64,
1395             INFINIBAND,
1396             SLIP,
1397             CSLIP,
1398             SLIP6,
1399             CSLIP6,
1400             RSRVD,
1401             ADAPT,
1402             ROSE,
1403             X25,
1404             HWX25,
1405             CAN,
1406             PPP,
1407             CISCO,
1408             HDLC,
1409             LAPB,
1410             DDCMP,
1411             RAWHDLC,
1412             TUNNEL,
1413             TUNNEL6,
1414             FRAD,
1415             SKIP,
1416             LOOPBACK,
1417             LOCALTLK,
1418             FDDI,
1419             BIF,
1420             SIT,
1421             IPDDP,
1422             IPGRE,
1423             PIMREG,
1424             HIPPI,
1425             ASH,
1426             ECONET,
1427             IRDA,
1428             FCPP,
1429             FCAL,
1430             FCPL,
1431             FCFABRIC,
1432             IEEE802_TR,
1433             IEEE80211,
1434             IEEE80211_PRISM,
1435             IEEE80211_RADIOTAP,
1436             IEEE802154,
1437             PHONET,
1438             PHONET_PIPE,
1439             CAIF,
1440             VOID,
1441             NONE
1442         }
1444         [CCode (cprefix = "ARPOP_", has_type_id = false, cheader_filename = "linux/if_arp.h")]
1445         public enum IfArpOpcode {
1446             REQUEST,
1447             REPLY,
1448             RREQUEST,
1449             RREPLY,
1450             InREQUEST,
1451             InREPLY,
1452             ARPOP_NAK
1453         }
1455         // route consts, structs, and methods
1456         [CCode (cname = "struct rtentry", has_type_id = false, cheader_filename = "net/route.h", destroy_function = "")]
1457         public struct RtEntry {
1458             public Posix.SockAddr rt_dst;
1459             public Posix.SockAddr rt_gateway;
1460             public Posix.SockAddr rt_genmask;
1461             public RtFlag rt_flags;
1462             public short rt_metric;
1463             public string rt_dev;
1464             public ulong rt_mtu;
1465             public ulong rt_window;
1466             public ushort rt_irtt;
1467         }
1469         [CCode (cname = "ushort", cprefix = "RTF_", has_type_id = false, cheader_filename = "net/route.h")]
1470         public enum RtFlag {
1471             UP,
1472             GATEWAY,
1473             HOST,
1474             REINSTATE,
1475             DYNAMIC,
1476             MODIFIED,
1477             MTU,
1478             WINDOW,
1479             IRTT,
1480             REJECT,
1481             STATIC,
1482             XRESOLVE,
1483             NOFORWARD,
1484             THROW,
1485             NOPMTUDISC
1486         }
1488         /* ioctls */
1489         [CCode (cheader_filename = "sys/ioctl.h")]
1490         public const int SIOCADDRT;
1491         [CCode (cheader_filename = "sys/ioctl.h")]
1492         public const int SIOCDELRT;
1493         [CCode (cheader_filename = "sys/ioctl.h")]
1494         public const int SIOCRTMSG;
1495         [CCode (cheader_filename = "sys/ioctl.h")]
1496         public const int SIOCGIFNAME;
1497         [CCode (cheader_filename = "sys/ioctl.h")]
1498         public const int SIOCSIFLINK;
1499         [CCode (cheader_filename = "sys/ioctl.h")]
1500         public const int SIOCGIFCONF;
1501         [CCode (cheader_filename = "sys/ioctl.h")]
1502         public const int SIOCGIFFLAGS;
1503         [CCode (cheader_filename = "sys/ioctl.h")]
1504         public const int SIOCSIFFLAGS;
1505         [CCode (cheader_filename = "sys/ioctl.h")]
1506         public const int SIOCGIFADDR;
1507         [CCode (cheader_filename = "sys/ioctl.h")]
1508         public const int SIOCSIFADDR;
1509         [CCode (cheader_filename = "sys/ioctl.h")]
1510         public const int SIOCGIFDSTADDR;
1511         [CCode (cheader_filename = "sys/ioctl.h")]
1512         public const int SIOCSIFDSTADDR;
1513         [CCode (cheader_filename = "sys/ioctl.h")]
1514         public const int SIOCGIFBRDADDR;
1515         [CCode (cheader_filename = "sys/ioctl.h")]
1516         public const int SIOCSIFBRDADDR;
1517         [CCode (cheader_filename = "sys/ioctl.h")]
1518         public const int SIOCGIFNETMASK;
1519         [CCode (cheader_filename = "sys/ioctl.h")]
1520         public const int SIOCSIFNETMASK;
1521         [CCode (cheader_filename = "sys/ioctl.h")]
1522         public const int SIOCGIFMETRIC;
1523         [CCode (cheader_filename = "sys/ioctl.h")]
1524         public const int SIOCSIFMETRIC;
1525         [CCode (cheader_filename = "sys/ioctl.h")]
1526         public const int SIOCGIFMEM;
1527         [CCode (cheader_filename = "sys/ioctl.h")]
1528         public const int SIOCSIFMEM;
1529         [CCode (cheader_filename = "sys/ioctl.h")]
1530         public const int SIOCGIFMTU;
1531         [CCode (cheader_filename = "sys/ioctl.h")]
1532         public const int SIOCSIFMTU;
1533         [CCode (cheader_filename = "sys/ioctl.h")]
1534         public const int SIOCSIFNAME;
1535         [CCode (cheader_filename = "sys/ioctl.h")]
1536         public const int SIOCSIFHWADDR;
1537         [CCode (cheader_filename = "sys/ioctl.h")]
1538         public const int SIOCGIFENCAP;
1539         [CCode (cheader_filename = "sys/ioctl.h")]
1540         public const int SIOCSIFENCAP;
1541         [CCode (cheader_filename = "sys/ioctl.h")]
1542         public const int SIOCGIFHWADDR;
1543         [CCode (cheader_filename = "sys/ioctl.h")]
1544         public const int SIOCGIFSLAVE;
1545         [CCode (cheader_filename = "sys/ioctl.h")]
1546         public const int SIOCSIFSLAVE;
1547         [CCode (cheader_filename = "sys/ioctl.h")]
1548         public const int SIOCADDMULTI;
1549         [CCode (cheader_filename = "sys/ioctl.h")]
1550         public const int SIOCDELMULTI;
1551         [CCode (cheader_filename = "sys/ioctl.h")]
1552         public const int SIOCGIFINDEX;
1553         [CCode (cheader_filename = "sys/ioctl.h")]
1554         public const int SIOCSIFPFLAGS;
1555         [CCode (cheader_filename = "sys/ioctl.h")]
1556         public const int SIOCGIFPFLAGS;
1557         [CCode (cheader_filename = "sys/ioctl.h")]
1558         public const int SIOCDIFADDR;
1559         [CCode (cheader_filename = "sys/ioctl.h")]
1560         public const int SIOCSIFHWBROADCAST;
1561         [CCode (cheader_filename = "sys/ioctl.h")]
1562         public const int SIOCGIFCOUNT;
1563         [CCode (cheader_filename = "sys/ioctl.h")]
1564         public const int SIOCGIFBR;
1565         [CCode (cheader_filename = "sys/ioctl.h")]
1566         public const int SIOCSIFBR;
1567         [CCode (cheader_filename = "sys/ioctl.h")]
1568         public const int SIOCGIFTXQLEN;
1569         [CCode (cheader_filename = "sys/ioctl.h")]
1570         public const int SIOCSIFTXQLEN;
1571         [CCode (cheader_filename = "sys/ioctl.h")]
1572         public const int SIOCDARP;
1573         [CCode (cheader_filename = "sys/ioctl.h")]
1574         public const int SIOCGARP;
1575         [CCode (cheader_filename = "sys/ioctl.h")]
1576         public const int SIOCSARP;
1577         [CCode (cheader_filename = "sys/ioctl.h")]
1578         public const int SIOCDRARP;
1579         [CCode (cheader_filename = "sys/ioctl.h")]
1580         public const int SIOCGRARP;
1581         [CCode (cheader_filename = "sys/ioctl.h")]
1582         public const int SIOCSRARP;
1583         [CCode (cheader_filename = "sys/ioctl.h")]
1584         public const int SIOCGIFMAP;
1585         [CCode (cheader_filename = "sys/ioctl.h")]
1586         public const int SIOCSIFMAP;
1587         [CCode (cheader_filename = "sys/ioctl.h")]
1588         public const int SIOCADDDLCI;
1589         [CCode (cheader_filename = "sys/ioctl.h")]
1590         public const int SIOCDELDLCI;
1591     }
1593     /*
1594      * Input subsystem
1595      */
1596     [CCode (cprefix = "", lower_case_cprefix = "")]
1597     namespace Input {
1599         /*
1600          * subsystem structures
1601          */
1603         [CCode (cname = "struct input_event", has_type_id = false, cheader_filename = "linux/input.h")]
1604         public struct Event {
1605             public Posix.timeval time;
1606             public uint16 type;
1607             public uint16 code;
1608             public int32 value;
1609         }
1611         [CCode (cname = "struct input_id", has_type_id = false, cheader_filename = "linux/input.h")]
1612         public struct Id {
1613             public uint16 bustype;
1614             public uint16 vendor;
1615             public uint16 product;
1616             public uint16 version;
1617         }
1619         [CCode (cname = "struct input_absinfo", has_type_id = false, cheader_filename = "linux/input.h")]
1620         public struct AbsInfo {
1621             public int32 value;
1622             public int32 minimum;
1623             public int32 maximum;
1624             public int32 fuzz;
1625             public int32 flat;
1626         }
1628         /*
1629          * ioctls
1630          */
1632         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1633         public const int EVIOCGVERSION;
1634         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1635         public const int EVIOCGID;
1636         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1637         public const int EVIOCGREP;
1638         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1639         public const int EVIOCSREP;
1640         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1641         public const int EVIOCGKEYCODE;
1642         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1643         public const int EVIOCSKEYCODE;
1645         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1646         public int EVIOCGNAME( uint len );
1647         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1648         public int EVIOCGPHYS( uint len );
1649         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1650         public int EVIOCGUNIQ( uint len );
1652         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1653         public int EVIOCGKEY( uint len );
1654         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1655         public int EVIOCGLED( uint len );
1656         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1657         public int EVIOCGSND( uint len );
1658         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1659         public int EVIOCGSW( uint len );
1661         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1662         public int EVIOCGBIT( uint ev, uint len );
1663         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1664         public int EVIOCGABS( uint abs );
1665         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1666         public int EVIOCSABS( uint abs );
1668         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1669         public const int EVIOCSFF;
1670         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1671         public const int EVIOCRMFF;
1672         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1673         public const int EVIOCGEFFECTS;
1674         [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1675         public const int EVIOCGRAB;
1677         /*
1678          * event types
1679          */
1681         [CCode (cheader_filename = "linux/input.h")]
1682         public const uint16 EV_SYN;
1683         [CCode (cheader_filename = "linux/input.h")]
1684         public const uint16 EV_KEY;
1685         [CCode (cheader_filename = "linux/input.h")]
1686         public const uint16 EV_REL;
1687         [CCode (cheader_filename = "linux/input.h")]
1688         public const uint16 EV_ABS;
1689         [CCode (cheader_filename = "linux/input.h")]
1690         public const uint16 EV_MSC;
1691         [CCode (cheader_filename = "linux/input.h")]
1692         public const uint16 EV_SW;
1693         [CCode (cheader_filename = "linux/input.h")]
1694         public const uint16 EV_LED;
1695         [CCode (cheader_filename = "linux/input.h")]
1696         public const uint16 EV_SND;
1697         [CCode (cheader_filename = "linux/input.h")]
1698         public const uint16 EV_REP;
1699         [CCode (cheader_filename = "linux/input.h")]
1700         public const uint16 EV_FF;
1701         [CCode (cheader_filename = "linux/input.h")]
1702         public const uint16 EV_PWR;
1703         [CCode (cheader_filename = "linux/input.h")]
1704         public const uint16 EV_FF_STATUS;
1705         [CCode (cheader_filename = "linux/input.h")]
1706         public const uint16 EV_MAX;
1708         /*
1709          * synchronization events
1710          */
1712         [CCode (cheader_filename = "linux/input.h")]
1713         public const int SYN_REPORT;
1714         [CCode (cheader_filename = "linux/input.h")]
1715         public const int SYN_CONFIG;
1717         /*
1718          * keys, switches, buttons, etc.
1719          */
1721         [CCode (cheader_filename = "linux/input.h")]
1722         public const int KEY_RESERVED;
1723         [CCode (cheader_filename = "linux/input.h")]
1724         public const int KEY_ESC;
1725         [CCode (cheader_filename = "linux/input.h")]
1726         public const int KEY_1;
1727         [CCode (cheader_filename = "linux/input.h")]
1728         public const int KEY_2;
1729         [CCode (cheader_filename = "linux/input.h")]
1730         public const int KEY_3;
1731         [CCode (cheader_filename = "linux/input.h")]
1732         public const int KEY_4;
1733         [CCode (cheader_filename = "linux/input.h")]
1734         public const int KEY_5;
1735         [CCode (cheader_filename = "linux/input.h")]
1736         public const int KEY_6;
1737         [CCode (cheader_filename = "linux/input.h")]
1738         public const int KEY_7;
1739         [CCode (cheader_filename = "linux/input.h")]
1740         public const int KEY_8;
1741         [CCode (cheader_filename = "linux/input.h")]
1742         public const int KEY_9;
1743         [CCode (cheader_filename = "linux/input.h")]
1744         public const int KEY_0;
1745         [CCode (cheader_filename = "linux/input.h")]
1746         public const int KEY_MINUS;
1747         [CCode (cheader_filename = "linux/input.h")]
1748         public const int KEY_EQUAL;
1749         [CCode (cheader_filename = "linux/input.h")]
1750         public const int KEY_BACKSPACE;
1751         [CCode (cheader_filename = "linux/input.h")]
1752         public const int KEY_TAB;
1753         [CCode (cheader_filename = "linux/input.h")]
1754         public const int KEY_Q;
1755         [CCode (cheader_filename = "linux/input.h")]
1756         public const int KEY_W;
1757         [CCode (cheader_filename = "linux/input.h")]
1758         public const int KEY_E;
1759         [CCode (cheader_filename = "linux/input.h")]
1760         public const int KEY_R;
1761         [CCode (cheader_filename = "linux/input.h")]
1762         public const int KEY_T;
1763         [CCode (cheader_filename = "linux/input.h")]
1764         public const int KEY_Y;
1765         [CCode (cheader_filename = "linux/input.h")]
1766         public const int KEY_U;
1767         [CCode (cheader_filename = "linux/input.h")]
1768         public const int KEY_I;
1769         [CCode (cheader_filename = "linux/input.h")]
1770         public const int KEY_O;
1771         [CCode (cheader_filename = "linux/input.h")]
1772         public const int KEY_P;
1773         [CCode (cheader_filename = "linux/input.h")]
1774         public const int KEY_LEFTBRACE;
1775         [CCode (cheader_filename = "linux/input.h")]
1776         public const int KEY_RIGHTBRACE;
1777         [CCode (cheader_filename = "linux/input.h")]
1778         public const int KEY_ENTER;
1779         [CCode (cheader_filename = "linux/input.h")]
1780         public const int KEY_LEFTCTRL;
1781         [CCode (cheader_filename = "linux/input.h")]
1782         public const int KEY_A;
1783         [CCode (cheader_filename = "linux/input.h")]
1784         public const int KEY_S;
1785         [CCode (cheader_filename = "linux/input.h")]
1786         public const int KEY_D;
1787         [CCode (cheader_filename = "linux/input.h")]
1788         public const int KEY_F;
1789         [CCode (cheader_filename = "linux/input.h")]
1790         public const int KEY_G;
1791         [CCode (cheader_filename = "linux/input.h")]
1792         public const int KEY_H;
1793         [CCode (cheader_filename = "linux/input.h")]
1794         public const int KEY_J;
1795         [CCode (cheader_filename = "linux/input.h")]
1796         public const int KEY_K;
1797         [CCode (cheader_filename = "linux/input.h")]
1798         public const int KEY_L;
1799         [CCode (cheader_filename = "linux/input.h")]
1800         public const int KEY_SEMICOLON;
1801         [CCode (cheader_filename = "linux/input.h")]
1802         public const int KEY_APOSTROPHE;
1803         [CCode (cheader_filename = "linux/input.h")]
1804         public const int KEY_GRAVE;
1805         [CCode (cheader_filename = "linux/input.h")]
1806         public const int KEY_LEFTSHIFT;
1807         [CCode (cheader_filename = "linux/input.h")]
1808         public const int KEY_BACKSLASH;
1809         [CCode (cheader_filename = "linux/input.h")]
1810         public const int KEY_Z;
1811         [CCode (cheader_filename = "linux/input.h")]
1812         public const int KEY_X;
1813         [CCode (cheader_filename = "linux/input.h")]
1814         public const int KEY_C;
1815         [CCode (cheader_filename = "linux/input.h")]
1816         public const int KEY_V;
1817         [CCode (cheader_filename = "linux/input.h")]
1818         public const int KEY_B;
1819         [CCode (cheader_filename = "linux/input.h")]
1820         public const int KEY_N;
1821         [CCode (cheader_filename = "linux/input.h")]
1822         public const int KEY_M;
1823         [CCode (cheader_filename = "linux/input.h")]
1824         public const int KEY_COMMA;
1825         [CCode (cheader_filename = "linux/input.h")]
1826         public const int KEY_DOT;
1827         [CCode (cheader_filename = "linux/input.h")]
1828         public const int KEY_SLASH;
1829         [CCode (cheader_filename = "linux/input.h")]
1830         public const int KEY_RIGHTSHIFT;
1831         [CCode (cheader_filename = "linux/input.h")]
1832         public const int KEY_KPASTERISK;
1833         [CCode (cheader_filename = "linux/input.h")]
1834         public const int KEY_LEFTALT;
1835         [CCode (cheader_filename = "linux/input.h")]
1836         public const int KEY_SPACE;
1837         [CCode (cheader_filename = "linux/input.h")]
1838         public const int KEY_CAPSLOCK;
1839         [CCode (cheader_filename = "linux/input.h")]
1840         public const int KEY_F1;
1841         [CCode (cheader_filename = "linux/input.h")]
1842         public const int KEY_F2;
1843         [CCode (cheader_filename = "linux/input.h")]
1844         public const int KEY_F3;
1845         [CCode (cheader_filename = "linux/input.h")]
1846         public const int KEY_F4;
1847         [CCode (cheader_filename = "linux/input.h")]
1848         public const int KEY_F5;
1849         [CCode (cheader_filename = "linux/input.h")]
1850         public const int KEY_F6;
1851         [CCode (cheader_filename = "linux/input.h")]
1852         public const int KEY_F7;
1853         [CCode (cheader_filename = "linux/input.h")]
1854         public const int KEY_F8;
1855         [CCode (cheader_filename = "linux/input.h")]
1856         public const int KEY_F9;
1857         [CCode (cheader_filename = "linux/input.h")]
1858         public const int KEY_F10;
1859         [CCode (cheader_filename = "linux/input.h")]
1860         public const int KEY_NUMLOCK;
1861         [CCode (cheader_filename = "linux/input.h")]
1862         public const int KEY_SCROLLLOCK;
1863         [CCode (cheader_filename = "linux/input.h")]
1864         public const int KEY_KP7;
1865         [CCode (cheader_filename = "linux/input.h")]
1866         public const int KEY_KP8;
1867         [CCode (cheader_filename = "linux/input.h")]
1868         public const int KEY_KP9;
1869         [CCode (cheader_filename = "linux/input.h")]
1870         public const int KEY_KPMINUS;
1871         [CCode (cheader_filename = "linux/input.h")]
1872         public const int KEY_KP4;
1873         [CCode (cheader_filename = "linux/input.h")]
1874         public const int KEY_KP5;
1875         [CCode (cheader_filename = "linux/input.h")]
1876         public const int KEY_KP6;
1877         [CCode (cheader_filename = "linux/input.h")]
1878         public const int KEY_KPPLUS;
1879         [CCode (cheader_filename = "linux/input.h")]
1880         public const int KEY_KP1;
1881         [CCode (cheader_filename = "linux/input.h")]
1882         public const int KEY_KP2;
1883         [CCode (cheader_filename = "linux/input.h")]
1884         public const int KEY_KP3;
1885         [CCode (cheader_filename = "linux/input.h")]
1886         public const int KEY_KP0;
1887         [CCode (cheader_filename = "linux/input.h")]
1888         public const int KEY_KPDOT;
1890         [CCode (cheader_filename = "linux/input.h")]
1891         public const int KEY_ZENKAKUHANKAKU;
1892         [CCode (cheader_filename = "linux/input.h")]
1893         public const int KEY_102ND;
1894         [CCode (cheader_filename = "linux/input.h")]
1895         public const int KEY_F11;
1896         [CCode (cheader_filename = "linux/input.h")]
1897         public const int KEY_F12;
1898         [CCode (cheader_filename = "linux/input.h")]
1899         public const int KEY_RO;
1900         [CCode (cheader_filename = "linux/input.h")]
1901         public const int KEY_KATAKANA;
1902         [CCode (cheader_filename = "linux/input.h")]
1903         public const int KEY_HIRAGANA;
1904         [CCode (cheader_filename = "linux/input.h")]
1905         public const int KEY_HENKAN;
1906         [CCode (cheader_filename = "linux/input.h")]
1907         public const int KEY_KATAKANAHIRAGANA;
1908         [CCode (cheader_filename = "linux/input.h")]
1909         public const int KEY_MUHENKAN;
1910         [CCode (cheader_filename = "linux/input.h")]
1911         public const int KEY_KPJPCOMMA;
1912         [CCode (cheader_filename = "linux/input.h")]
1913         public const int KEY_KPENTER;
1914         [CCode (cheader_filename = "linux/input.h")]
1915         public const int KEY_RIGHTCTRL;
1916         [CCode (cheader_filename = "linux/input.h")]
1917         public const int KEY_KPSLASH;
1918         [CCode (cheader_filename = "linux/input.h")]
1919         public const int KEY_SYSRQ;
1920         [CCode (cheader_filename = "linux/input.h")]
1921         public const int KEY_RIGHTALT;
1922         [CCode (cheader_filename = "linux/input.h")]
1923         public const int KEY_LINEFEED;
1924         [CCode (cheader_filename = "linux/input.h")]
1925         public const int KEY_HOME;
1926         [CCode (cheader_filename = "linux/input.h")]
1927         public const int KEY_UP;
1928         [CCode (cheader_filename = "linux/input.h")]
1929         public const int KEY_PAGEUP;
1930         [CCode (cheader_filename = "linux/input.h")]
1931         public const int KEY_LEFT;
1932         [CCode (cheader_filename = "linux/input.h")]
1933         public const int KEY_RIGHT;
1934         [CCode (cheader_filename = "linux/input.h")]
1935         public const int KEY_END;
1936         [CCode (cheader_filename = "linux/input.h")]
1937         public const int KEY_DOWN;
1938         [CCode (cheader_filename = "linux/input.h")]
1939         public const int KEY_PAGEDOWN;
1940         [CCode (cheader_filename = "linux/input.h")]
1941         public const int KEY_INSERT;
1942         [CCode (cheader_filename = "linux/input.h")]
1943         public const int KEY_DELETE;
1944         [CCode (cheader_filename = "linux/input.h")]
1945         public const int KEY_MACRO;
1946         [CCode (cheader_filename = "linux/input.h")]
1947         public const int KEY_MUTE;
1948         [CCode (cheader_filename = "linux/input.h")]
1949         public const int KEY_VOLUMEDOWN;
1950         [CCode (cheader_filename = "linux/input.h")]
1951         public const int KEY_VOLUMEUP;
1952         [CCode (cheader_filename = "linux/input.h")]
1953         public const int KEY_POWER;
1954         [CCode (cheader_filename = "linux/input.h")]
1955         public const int KEY_KPEQUAL;
1956         [CCode (cheader_filename = "linux/input.h")]
1957         public const int KEY_KPPLUSMINUS;
1958         [CCode (cheader_filename = "linux/input.h")]
1959         public const int KEY_PAUSE;
1960         [CCode (cheader_filename = "linux/input.h")]
1961         public const int KEY_SCALE;
1963         [CCode (cheader_filename = "linux/input.h")]
1964         public const int KEY_KPCOMMA;
1965         [CCode (cheader_filename = "linux/input.h")]
1966         public const int KEY_HANGEUL;
1967         [CCode (cheader_filename = "linux/input.h")]
1968         public const int KEY_HANGUEL;
1969         [CCode (cheader_filename = "linux/input.h")]
1970         public const int KEY_HANJA;
1971         [CCode (cheader_filename = "linux/input.h")]
1972         public const int KEY_YEN;
1973         [CCode (cheader_filename = "linux/input.h")]
1974         public const int KEY_LEFTMETA;
1975         [CCode (cheader_filename = "linux/input.h")]
1976         public const int KEY_RIGHTMETA;
1977         [CCode (cheader_filename = "linux/input.h")]
1978         public const int KEY_COMPOSE;
1980         [CCode (cheader_filename = "linux/input.h")]
1981         public const int KEY_STOP;
1982         [CCode (cheader_filename = "linux/input.h")]
1983         public const int KEY_AGAIN;
1984         [CCode (cheader_filename = "linux/input.h")]
1985         public const int KEY_PROPS;
1986         [CCode (cheader_filename = "linux/input.h")]
1987         public const int KEY_UNDO;
1988         [CCode (cheader_filename = "linux/input.h")]
1989         public const int KEY_FRONT;
1990         [CCode (cheader_filename = "linux/input.h")]
1991         public const int KEY_COPY;
1992         [CCode (cheader_filename = "linux/input.h")]
1993         public const int KEY_OPEN;
1994         [CCode (cheader_filename = "linux/input.h")]
1995         public const int KEY_PASTE;
1996         [CCode (cheader_filename = "linux/input.h")]
1997         public const int KEY_FIND;
1998         [CCode (cheader_filename = "linux/input.h")]
1999         public const int KEY_CUT;
2000         [CCode (cheader_filename = "linux/input.h")]
2001         public const int KEY_HELP;
2002         [CCode (cheader_filename = "linux/input.h")]
2003         public const int KEY_MENU;
2004         [CCode (cheader_filename = "linux/input.h")]
2005         public const int KEY_CALC;
2006         [CCode (cheader_filename = "linux/input.h")]
2007         public const int KEY_SETUP;
2008         [CCode (cheader_filename = "linux/input.h")]
2009         public const int KEY_SLEEP;
2010         [CCode (cheader_filename = "linux/input.h")]
2011         public const int KEY_WAKEUP;
2012         [CCode (cheader_filename = "linux/input.h")]
2013         public const int KEY_FILE;
2014         [CCode (cheader_filename = "linux/input.h")]
2015         public const int KEY_SENDFILE;
2016         [CCode (cheader_filename = "linux/input.h")]
2017         public const int KEY_DELETEFILE;
2018         [CCode (cheader_filename = "linux/input.h")]
2019         public const int KEY_XFER;
2020         [CCode (cheader_filename = "linux/input.h")]
2021         public const int KEY_PROG1;
2022         [CCode (cheader_filename = "linux/input.h")]
2023         public const int KEY_PROG2;
2024         [CCode (cheader_filename = "linux/input.h")]
2025         public const int KEY_WWW;
2026         [CCode (cheader_filename = "linux/input.h")]
2027         public const int KEY_MSDOS;
2028         [CCode (cheader_filename = "linux/input.h")]
2029         public const int KEY_COFFEE;
2030         [CCode (cheader_filename = "linux/input.h")]
2031         public const int KEY_SCREENLOCK;
2032         [CCode (cheader_filename = "linux/input.h")]
2033         public const int KEY_DIRECTION;
2034         [CCode (cheader_filename = "linux/input.h")]
2035         public const int KEY_CYCLEWINDOWS;
2036         [CCode (cheader_filename = "linux/input.h")]
2037         public const int KEY_MAIL;
2038         [CCode (cheader_filename = "linux/input.h")]
2039         public const int KEY_BOOKMARKS;
2040         [CCode (cheader_filename = "linux/input.h")]
2041         public const int KEY_COMPUTER;
2042         [CCode (cheader_filename = "linux/input.h")]
2043         public const int KEY_BACK;
2044         [CCode (cheader_filename = "linux/input.h")]
2045         public const int KEY_FORWARD;
2046         [CCode (cheader_filename = "linux/input.h")]
2047         public const int KEY_CLOSECD;
2048         [CCode (cheader_filename = "linux/input.h")]
2049         public const int KEY_EJECTCD;
2050         [CCode (cheader_filename = "linux/input.h")]
2051         public const int KEY_EJECTCLOSECD;
2052         [CCode (cheader_filename = "linux/input.h")]
2053         public const int KEY_NEXTSONG;
2054         [CCode (cheader_filename = "linux/input.h")]
2055         public const int KEY_PLAYPAUSE;
2056         [CCode (cheader_filename = "linux/input.h")]
2057         public const int KEY_PREVIOUSSONG;
2058         [CCode (cheader_filename = "linux/input.h")]
2059         public const int KEY_STOPCD;
2060         [CCode (cheader_filename = "linux/input.h")]
2061         public const int KEY_RECORD;
2062         [CCode (cheader_filename = "linux/input.h")]
2063         public const int KEY_REWIND;
2064         [CCode (cheader_filename = "linux/input.h")]
2065         public const int KEY_PHONE;
2066         [CCode (cheader_filename = "linux/input.h")]
2067         public const int KEY_ISO;
2068         [CCode (cheader_filename = "linux/input.h")]
2069         public const int KEY_CONFIG;
2070         [CCode (cheader_filename = "linux/input.h")]
2071         public const int KEY_HOMEPAGE;
2072         [CCode (cheader_filename = "linux/input.h")]
2073         public const int KEY_REFRESH;
2074         [CCode (cheader_filename = "linux/input.h")]
2075         public const int KEY_EXIT;
2076         [CCode (cheader_filename = "linux/input.h")]
2077         public const int KEY_MOVE;
2078         [CCode (cheader_filename = "linux/input.h")]
2079         public const int KEY_EDIT;
2080         [CCode (cheader_filename = "linux/input.h")]
2081         public const int KEY_SCROLLUP;
2082         [CCode (cheader_filename = "linux/input.h")]
2083         public const int KEY_SCROLLDOWN;
2084         [CCode (cheader_filename = "linux/input.h")]
2085         public const int KEY_KPLEFTPAREN;
2086         [CCode (cheader_filename = "linux/input.h")]
2087         public const int KEY_KPRIGHTPAREN;
2088         [CCode (cheader_filename = "linux/input.h")]
2089         public const int KEY_NEW;
2090         [CCode (cheader_filename = "linux/input.h")]
2091         public const int KEY_REDO;
2093         [CCode (cheader_filename = "linux/input.h")]
2094         public const int KEY_F13;
2095         [CCode (cheader_filename = "linux/input.h")]
2096         public const int KEY_F14;
2097         [CCode (cheader_filename = "linux/input.h")]
2098         public const int KEY_F15;
2099         [CCode (cheader_filename = "linux/input.h")]
2100         public const int KEY_F16;
2101         [CCode (cheader_filename = "linux/input.h")]
2102         public const int KEY_F17;
2103         [CCode (cheader_filename = "linux/input.h")]
2104         public const int KEY_F18;
2105         [CCode (cheader_filename = "linux/input.h")]
2106         public const int KEY_F19;
2107         [CCode (cheader_filename = "linux/input.h")]
2108         public const int KEY_F20;
2109         [CCode (cheader_filename = "linux/input.h")]
2110         public const int KEY_F21;
2111         [CCode (cheader_filename = "linux/input.h")]
2112         public const int KEY_F22;
2113         [CCode (cheader_filename = "linux/input.h")]
2114         public const int KEY_F23;
2115         [CCode (cheader_filename = "linux/input.h")]
2116         public const int KEY_F24;
2118         [CCode (cheader_filename = "linux/input.h")]
2119         public const int KEY_PLAYCD;
2120         [CCode (cheader_filename = "linux/input.h")]
2121         public const int KEY_PAUSECD;
2122         [CCode (cheader_filename = "linux/input.h")]
2123         public const int KEY_PROG3;
2124         [CCode (cheader_filename = "linux/input.h")]
2125         public const int KEY_PROG4;
2126         [CCode (cheader_filename = "linux/input.h")]
2127         public const int KEY_DASHBOARD;
2128         [CCode (cheader_filename = "linux/input.h")]
2129         public const int KEY_SUSPEND;
2130         [CCode (cheader_filename = "linux/input.h")]
2131         public const int KEY_CLOSE;
2132         [CCode (cheader_filename = "linux/input.h")]
2133         public const int KEY_PLAY;
2134         [CCode (cheader_filename = "linux/input.h")]
2135         public const int KEY_FASTFORWARD;
2136         [CCode (cheader_filename = "linux/input.h")]
2137         public const int KEY_BASSBOOST;
2138         [CCode (cheader_filename = "linux/input.h")]
2139         public const int KEY_PRINT;
2140         [CCode (cheader_filename = "linux/input.h")]
2141         public const int KEY_HP;
2142         [CCode (cheader_filename = "linux/input.h")]
2143         public const int KEY_CAMERA;
2144         [CCode (cheader_filename = "linux/input.h")]
2145         public const int KEY_SOUND;
2146         [CCode (cheader_filename = "linux/input.h")]
2147         public const int KEY_QUESTION;
2148         [CCode (cheader_filename = "linux/input.h")]
2149         public const int KEY_EMAIL;
2150         [CCode (cheader_filename = "linux/input.h")]
2151         public const int KEY_CHAT;
2152         [CCode (cheader_filename = "linux/input.h")]
2153         public const int KEY_SEARCH;
2154         [CCode (cheader_filename = "linux/input.h")]
2155         public const int KEY_CONNECT;
2156         [CCode (cheader_filename = "linux/input.h")]
2157         public const int KEY_FINANCE;
2158         [CCode (cheader_filename = "linux/input.h")]
2159         public const int KEY_SPORT;
2160         [CCode (cheader_filename = "linux/input.h")]
2161         public const int KEY_SHOP;
2162         [CCode (cheader_filename = "linux/input.h")]
2163         public const int KEY_ALTERASE;
2164         [CCode (cheader_filename = "linux/input.h")]
2165         public const int KEY_CANCEL;
2166         [CCode (cheader_filename = "linux/input.h")]
2167         public const int KEY_BRIGHTNESSDOWN;
2168         [CCode (cheader_filename = "linux/input.h")]
2169         public const int KEY_BRIGHTNESSUP;
2170         [CCode (cheader_filename = "linux/input.h")]
2171         public const int KEY_MEDIA;
2173         [CCode (cheader_filename = "linux/input.h")]
2174         public const int KEY_SWITCHVIDEOMODE;
2175         [CCode (cheader_filename = "linux/input.h")]
2176         public const int KEY_KBDILLUMTOGGLE;
2177         [CCode (cheader_filename = "linux/input.h")]
2178         public const int KEY_KBDILLUMDOWN;
2179         [CCode (cheader_filename = "linux/input.h")]
2180         public const int KEY_KBDILLUMUP;
2182         [CCode (cheader_filename = "linux/input.h")]
2183         public const int KEY_SEND;
2184         [CCode (cheader_filename = "linux/input.h")]
2185         public const int KEY_REPLY;
2186         [CCode (cheader_filename = "linux/input.h")]
2187         public const int KEY_FORWARDMAIL;
2188         [CCode (cheader_filename = "linux/input.h")]
2189         public const int KEY_SAVE;
2190         [CCode (cheader_filename = "linux/input.h")]
2191         public const int KEY_DOCUMENTS;
2193         [CCode (cheader_filename = "linux/input.h")]
2194         public const int KEY_BATTERY;
2196         [CCode (cheader_filename = "linux/input.h")]
2197         public const int KEY_BLUETOOTH;
2198         [CCode (cheader_filename = "linux/input.h")]
2199         public const int KEY_WLAN;
2200         [CCode (cheader_filename = "linux/input.h")]
2201         public const int KEY_UWB;
2203         [CCode (cheader_filename = "linux/input.h")]
2204         public const int KEY_UNKNOWN;
2206         [CCode (cheader_filename = "linux/input.h")]
2207         public const int KEY_VIDEO_NEXT;
2208         [CCode (cheader_filename = "linux/input.h")]
2209         public const int KEY_VIDEO_PREV;
2210         [CCode (cheader_filename = "linux/input.h")]
2211         public const int KEY_BRIGHTNESS_CYCLE;
2212         [CCode (cheader_filename = "linux/input.h")]
2213         public const int KEY_BRIGHTNESS_ZERO;
2214         [CCode (cheader_filename = "linux/input.h")]
2215         public const int KEY_DISPLAY_OFF;
2217         [CCode (cheader_filename = "linux/input.h")]
2218         public const int KEY_WIMAX;
2220         [CCode (cheader_filename = "linux/input.h")]
2221         public const int KEY_MAX;
2223         /* Range 248 - 255 is reserved for special needs of AT keyboard driver */
2225         [CCode (cheader_filename = "linux/input.h")]
2226         public const int BTN_MISC;
2227         [CCode (cheader_filename = "linux/input.h")]
2228         public const int BTN_0;
2229         [CCode (cheader_filename = "linux/input.h")]
2230         public const int BTN_1;
2231         [CCode (cheader_filename = "linux/input.h")]
2232         public const int BTN_2;
2233         [CCode (cheader_filename = "linux/input.h")]
2234         public const int BTN_3;
2235         [CCode (cheader_filename = "linux/input.h")]
2236         public const int BTN_4;
2237         [CCode (cheader_filename = "linux/input.h")]
2238         public const int BTN_5;
2239         [CCode (cheader_filename = "linux/input.h")]
2240         public const int BTN_6;
2241         [CCode (cheader_filename = "linux/input.h")]
2242         public const int BTN_7;
2243         [CCode (cheader_filename = "linux/input.h")]
2244         public const int BTN_8;
2245         [CCode (cheader_filename = "linux/input.h")]
2246         public const int BTN_9;
2248         [CCode (cheader_filename = "linux/input.h")]
2249         public const int BTN_MOUSE;
2250         [CCode (cheader_filename = "linux/input.h")]
2251         public const int BTN_LEFT;
2252         [CCode (cheader_filename = "linux/input.h")]
2253         public const int BTN_RIGHT;
2254         [CCode (cheader_filename = "linux/input.h")]
2255         public const int BTN_MIDDLE;
2256         [CCode (cheader_filename = "linux/input.h")]
2257         public const int BTN_SIDE;
2258         [CCode (cheader_filename = "linux/input.h")]
2259         public const int BTN_EXTRA;
2260         [CCode (cheader_filename = "linux/input.h")]
2261         public const int BTN_FORWARD;
2262         [CCode (cheader_filename = "linux/input.h")]
2263         public const int BTN_BACK;
2264         [CCode (cheader_filename = "linux/input.h")]
2265         public const int BTN_TASK;
2267         [CCode (cheader_filename = "linux/input.h")]
2268         public const int BTN_JOYSTICK;
2269         [CCode (cheader_filename = "linux/input.h")]
2270         public const int BTN_TRIGGER;
2271         [CCode (cheader_filename = "linux/input.h")]
2272         public const int BTN_THUMB;
2273         [CCode (cheader_filename = "linux/input.h")]
2274         public const int BTN_THUMB2;
2275         [CCode (cheader_filename = "linux/input.h")]
2276         public const int BTN_TOP;
2277         [CCode (cheader_filename = "linux/input.h")]
2278         public const int BTN_TOP2;
2279         [CCode (cheader_filename = "linux/input.h")]
2280         public const int BTN_PINKIE;
2281         [CCode (cheader_filename = "linux/input.h")]
2282         public const int BTN_BASE;
2283         [CCode (cheader_filename = "linux/input.h")]
2284         public const int BTN_BASE2;
2285         [CCode (cheader_filename = "linux/input.h")]
2286         public const int BTN_BASE3;
2287         [CCode (cheader_filename = "linux/input.h")]
2288         public const int BTN_BASE4;
2289         [CCode (cheader_filename = "linux/input.h")]
2290         public const int BTN_BASE5;
2291         [CCode (cheader_filename = "linux/input.h")]
2292         public const int BTN_BASE6;
2293         [CCode (cheader_filename = "linux/input.h")]
2294         public const int BTN_DEAD;
2296         [CCode (cheader_filename = "linux/input.h")]
2297         public const int BTN_GAMEPAD;
2298         [CCode (cheader_filename = "linux/input.h")]
2299         public const int BTN_A;
2300         [CCode (cheader_filename = "linux/input.h")]
2301         public const int BTN_B;
2302         [CCode (cheader_filename = "linux/input.h")]
2303         public const int BTN_C;
2304         [CCode (cheader_filename = "linux/input.h")]
2305         public const int BTN_X;
2306         [CCode (cheader_filename = "linux/input.h")]
2307         public const int BTN_Y;
2308         [CCode (cheader_filename = "linux/input.h")]
2309         public const int BTN_Z;
2310         [CCode (cheader_filename = "linux/input.h")]
2311         public const int BTN_TL;
2312         [CCode (cheader_filename = "linux/input.h")]
2313         public const int BTN_TR;
2314         [CCode (cheader_filename = "linux/input.h")]
2315         public const int BTN_TL2;
2316         [CCode (cheader_filename = "linux/input.h")]
2317         public const int BTN_TR2;
2318         [CCode (cheader_filename = "linux/input.h")]
2319         public const int BTN_SELECT;
2320         [CCode (cheader_filename = "linux/input.h")]
2321         public const int BTN_START;
2322         [CCode (cheader_filename = "linux/input.h")]
2323         public const int BTN_MODE;
2324         [CCode (cheader_filename = "linux/input.h")]
2325         public const int BTN_THUMBL;
2326         [CCode (cheader_filename = "linux/input.h")]
2327         public const int BTN_THUMBR;
2329         [CCode (cheader_filename = "linux/input.h")]
2330         public const int BTN_DIGI;
2331         [CCode (cheader_filename = "linux/input.h")]
2332         public const int BTN_TOOL_PEN;
2333         [CCode (cheader_filename = "linux/input.h")]
2334         public const int BTN_TOOL_RUBBER;
2335         [CCode (cheader_filename = "linux/input.h")]
2336         public const int BTN_TOOL_BRUSH;
2337         [CCode (cheader_filename = "linux/input.h")]
2338         public const int BTN_TOOL_PENCIL;
2339         [CCode (cheader_filename = "linux/input.h")]
2340         public const int BTN_TOOL_AIRBRUSH;
2341         [CCode (cheader_filename = "linux/input.h")]
2342         public const int BTN_TOOL_FINGER;
2343         [CCode (cheader_filename = "linux/input.h")]
2344         public const int BTN_TOOL_MOUSE;
2345         [CCode (cheader_filename = "linux/input.h")]
2346         public const int BTN_TOOL_LENS;
2347         [CCode (cheader_filename = "linux/input.h")]
2348         public const int BTN_TOUCH;
2349         [CCode (cheader_filename = "linux/input.h")]
2350         public const int BTN_STYLUS;
2351         [CCode (cheader_filename = "linux/input.h")]
2352         public const int BTN_STYLUS2;
2353         [CCode (cheader_filename = "linux/input.h")]
2354         public const int BTN_TOOL_DOUBLETAP;
2355         [CCode (cheader_filename = "linux/input.h")]
2356         public const int BTN_TOOL_TRIPLETAP;
2358         [CCode (cheader_filename = "linux/input.h")]
2359         public const int BTN_WHEEL;
2360         [CCode (cheader_filename = "linux/input.h")]
2361         public const int BTN_GEAR_DOWN;
2362         [CCode (cheader_filename = "linux/input.h")]
2363         public const int BTN_GEAR_UP;
2365         [CCode (cheader_filename = "linux/input.h")]
2366         public const int KEY_OK;
2367         [CCode (cheader_filename = "linux/input.h")]
2368         public const int KEY_SELECT;
2369         [CCode (cheader_filename = "linux/input.h")]
2370         public const int KEY_GOTO;
2371         [CCode (cheader_filename = "linux/input.h")]
2372         public const int KEY_CLEAR;
2373         [CCode (cheader_filename = "linux/input.h")]
2374         public const int KEY_POWER2;
2375         [CCode (cheader_filename = "linux/input.h")]
2376         public const int KEY_OPTION;
2377         [CCode (cheader_filename = "linux/input.h")]
2378         public const int KEY_INFO;
2379         [CCode (cheader_filename = "linux/input.h")]
2380         public const int KEY_TIME;
2381         [CCode (cheader_filename = "linux/input.h")]
2382         public const int KEY_VENDOR;
2383         [CCode (cheader_filename = "linux/input.h")]
2384         public const int KEY_ARCHIVE;
2385         [CCode (cheader_filename = "linux/input.h")]
2386         public const int KEY_PROGRAM;
2387         [CCode (cheader_filename = "linux/input.h")]
2388         public const int KEY_CHANNEL;
2389         [CCode (cheader_filename = "linux/input.h")]
2390         public const int KEY_FAVORITES;
2391         [CCode (cheader_filename = "linux/input.h")]
2392         public const int KEY_EPG;
2393         [CCode (cheader_filename = "linux/input.h")]
2394         public const int KEY_PVR;
2395         [CCode (cheader_filename = "linux/input.h")]
2396         public const int KEY_MHP;
2397         [CCode (cheader_filename = "linux/input.h")]
2398         public const int KEY_LANGUAGE;
2399         [CCode (cheader_filename = "linux/input.h")]
2400         public const int KEY_TITLE;
2401         [CCode (cheader_filename = "linux/input.h")]
2402         public const int KEY_SUBTITLE;
2403         [CCode (cheader_filename = "linux/input.h")]
2404         public const int KEY_ANGLE;
2405         [CCode (cheader_filename = "linux/input.h")]
2406         public const int KEY_ZOOM;
2407         [CCode (cheader_filename = "linux/input.h")]
2408         public const int KEY_MODE;
2409         [CCode (cheader_filename = "linux/input.h")]
2410         public const int KEY_KEYBOARD;
2411         [CCode (cheader_filename = "linux/input.h")]
2412         public const int KEY_SCREEN;
2413         [CCode (cheader_filename = "linux/input.h")]
2414         public const int KEY_PC;
2415         [CCode (cheader_filename = "linux/input.h")]
2416         public const int KEY_TV;
2417         [CCode (cheader_filename = "linux/input.h")]
2418         public const int KEY_TV2;
2419         [CCode (cheader_filename = "linux/input.h")]
2420         public const int KEY_VCR;
2421         [CCode (cheader_filename = "linux/input.h")]
2422         public const int KEY_VCR2;
2423         [CCode (cheader_filename = "linux/input.h")]
2424         public const int KEY_SAT;
2425         [CCode (cheader_filename = "linux/input.h")]
2426         public const int KEY_SAT2;
2427         [CCode (cheader_filename = "linux/input.h")]
2428         public const int KEY_CD;
2429         [CCode (cheader_filename = "linux/input.h")]
2430         public const int KEY_TAPE;
2431         [CCode (cheader_filename = "linux/input.h")]
2432         public const int KEY_RADIO;
2433         [CCode (cheader_filename = "linux/input.h")]
2434         public const int KEY_TUNER;
2435         [CCode (cheader_filename = "linux/input.h")]
2436         public const int KEY_PLAYER;
2437         [CCode (cheader_filename = "linux/input.h")]
2438         public const int KEY_TEXT;
2439         [CCode (cheader_filename = "linux/input.h")]
2440         public const int KEY_DVD;
2441         [CCode (cheader_filename = "linux/input.h")]
2442         public const int KEY_AUX;
2443         [CCode (cheader_filename = "linux/input.h")]
2444         public const int KEY_MP3;
2445         [CCode (cheader_filename = "linux/input.h")]
2446         public const int KEY_AUDIO;
2447         [CCode (cheader_filename = "linux/input.h")]
2448         public const int KEY_VIDEO;
2449         [CCode (cheader_filename = "linux/input.h")]
2450         public const int KEY_DIRECTORY;
2451         [CCode (cheader_filename = "linux/input.h")]
2452         public const int KEY_LIST;
2453         [CCode (cheader_filename = "linux/input.h")]
2454         public const int KEY_MEMO;
2455         [CCode (cheader_filename = "linux/input.h")]
2456         public const int KEY_CALENDAR;
2457         [CCode (cheader_filename = "linux/input.h")]
2458         public const int KEY_RED;
2459         [CCode (cheader_filename = "linux/input.h")]
2460         public const int KEY_GREEN;
2461         [CCode (cheader_filename = "linux/input.h")]
2462         public const int KEY_YELLOW;
2463         [CCode (cheader_filename = "linux/input.h")]
2464         public const int KEY_BLUE;
2465         [CCode (cheader_filename = "linux/input.h")]
2466         public const int KEY_CHANNELUP;
2467         [CCode (cheader_filename = "linux/input.h")]
2468         public const int KEY_CHANNELDOWN;
2469         [CCode (cheader_filename = "linux/input.h")]
2470         public const int KEY_FIRST;
2471         [CCode (cheader_filename = "linux/input.h")]
2472         public const int KEY_LAST;
2473         [CCode (cheader_filename = "linux/input.h")]
2474         public const int KEY_AB;
2475         [CCode (cheader_filename = "linux/input.h")]
2476         public const int KEY_NEXT;
2477         [CCode (cheader_filename = "linux/input.h")]
2478         public const int KEY_RESTART;
2479         [CCode (cheader_filename = "linux/input.h")]
2480         public const int KEY_SLOW;
2481         [CCode (cheader_filename = "linux/input.h")]
2482         public const int KEY_SHUFFLE;
2483         [CCode (cheader_filename = "linux/input.h")]
2484         public const int KEY_BREAK;
2485         [CCode (cheader_filename = "linux/input.h")]
2486         public const int KEY_PREVIOUS;
2487         [CCode (cheader_filename = "linux/input.h")]
2488         public const int KEY_DIGITS;
2489         [CCode (cheader_filename = "linux/input.h")]
2490         public const int KEY_TEEN;
2491         [CCode (cheader_filename = "linux/input.h")]
2492         public const int KEY_TWEN;
2493         [CCode (cheader_filename = "linux/input.h")]
2494         public const int KEY_VIDEOPHONE;
2495         [CCode (cheader_filename = "linux/input.h")]
2496         public const int KEY_GAMES;
2497         [CCode (cheader_filename = "linux/input.h")]
2498         public const int KEY_ZOOMIN;
2499         [CCode (cheader_filename = "linux/input.h")]
2500         public const int KEY_ZOOMOUT;
2501         [CCode (cheader_filename = "linux/input.h")]
2502         public const int KEY_ZOOMRESET;
2503         [CCode (cheader_filename = "linux/input.h")]
2504         public const int KEY_WORDPROCESSOR;
2505         [CCode (cheader_filename = "linux/input.h")]
2506         public const int KEY_EDITOR;
2507         [CCode (cheader_filename = "linux/input.h")]
2508         public const int KEY_SPREADSHEET;
2509         [CCode (cheader_filename = "linux/input.h")]
2510         public const int KEY_GRAPHICSEDITOR;
2511         [CCode (cheader_filename = "linux/input.h")]
2512         public const int KEY_PRESENTATION;
2513         [CCode (cheader_filename = "linux/input.h")]
2514         public const int KEY_DATABASE;
2515         [CCode (cheader_filename = "linux/input.h")]
2516         public const int KEY_NEWS;
2517         [CCode (cheader_filename = "linux/input.h")]
2518         public const int KEY_VOICEMAIL;
2519         [CCode (cheader_filename = "linux/input.h")]
2520         public const int KEY_ADDRESSBOOK;
2521         [CCode (cheader_filename = "linux/input.h")]
2522         public const int KEY_MESSENGER;
2523         [CCode (cheader_filename = "linux/input.h")]
2524         public const int KEY_DISPLAYTOGGLE;
2525         [CCode (cheader_filename = "linux/input.h")]
2526         public const int KEY_SPELLCHECK;
2527         [CCode (cheader_filename = "linux/input.h")]
2528         public const int KEY_LOGOFF;
2530         [CCode (cheader_filename = "linux/input.h")]
2531         public const int KEY_DOLLAR;
2532         [CCode (cheader_filename = "linux/input.h")]
2533         public const int KEY_EURO;
2535         [CCode (cheader_filename = "linux/input.h")]
2536         public const int KEY_FRAMEBACK;
2537         [CCode (cheader_filename = "linux/input.h")]
2538         public const int KEY_FRAMEFORWARD;
2539         [CCode (cheader_filename = "linux/input.h")]
2540         public const int KEY_CONTEXT_MENU;
2541         [CCode (cheader_filename = "linux/input.h")]
2542         public const int KEY_MEDIA_REPEAT;
2544         [CCode (cheader_filename = "linux/input.h")]
2545         public const int KEY_DEL_EOL;
2546         [CCode (cheader_filename = "linux/input.h")]
2547         public const int KEY_DEL_EOS;
2548         [CCode (cheader_filename = "linux/input.h")]
2549         public const int KEY_INS_LINE;
2550         [CCode (cheader_filename = "linux/input.h")]
2551         public const int KEY_DEL_LINE;
2553         [CCode (cheader_filename = "linux/input.h")]
2554         public const int KEY_FN;
2555         [CCode (cheader_filename = "linux/input.h")]
2556         public const int KEY_FN_ESC;
2557         [CCode (cheader_filename = "linux/input.h")]
2558         public const int KEY_FN_F1;
2559         [CCode (cheader_filename = "linux/input.h")]
2560         public const int KEY_FN_F2;
2561         [CCode (cheader_filename = "linux/input.h")]
2562         public const int KEY_FN_F3;
2563         [CCode (cheader_filename = "linux/input.h")]
2564         public const int KEY_FN_F4;
2565         [CCode (cheader_filename = "linux/input.h")]
2566         public const int KEY_FN_F5;
2567         [CCode (cheader_filename = "linux/input.h")]
2568         public const int KEY_FN_F6;
2569         [CCode (cheader_filename = "linux/input.h")]
2570         public const int KEY_FN_F7;
2571         [CCode (cheader_filename = "linux/input.h")]
2572         public const int KEY_FN_F8;
2573         [CCode (cheader_filename = "linux/input.h")]
2574         public const int KEY_FN_F9;
2575         [CCode (cheader_filename = "linux/input.h")]
2576         public const int KEY_FN_F10;
2577         [CCode (cheader_filename = "linux/input.h")]
2578         public const int KEY_FN_F11;
2579         [CCode (cheader_filename = "linux/input.h")]
2580         public const int KEY_FN_F12;
2581         [CCode (cheader_filename = "linux/input.h")]
2582         public const int KEY_FN_1;
2583         [CCode (cheader_filename = "linux/input.h")]
2584         public const int KEY_FN_2;
2585         [CCode (cheader_filename = "linux/input.h")]
2586         public const int KEY_FN_D;
2587         [CCode (cheader_filename = "linux/input.h")]
2588         public const int KEY_FN_E;
2589         [CCode (cheader_filename = "linux/input.h")]
2590         public const int KEY_FN_F;
2591         [CCode (cheader_filename = "linux/input.h")]
2592         public const int KEY_FN_S;
2593         [CCode (cheader_filename = "linux/input.h")]
2594         public const int KEY_FN_B;
2596         [CCode (cheader_filename = "linux/input.h")]
2597         public const int KEY_BRL_DOT1;
2598         [CCode (cheader_filename = "linux/input.h")]
2599         public const int KEY_BRL_DOT2;
2600         [CCode (cheader_filename = "linux/input.h")]
2601         public const int KEY_BRL_DOT3;
2602         [CCode (cheader_filename = "linux/input.h")]
2603         public const int KEY_BRL_DOT4;
2604         [CCode (cheader_filename = "linux/input.h")]
2605         public const int KEY_BRL_DOT5;
2606         [CCode (cheader_filename = "linux/input.h")]
2607         public const int KEY_BRL_DOT6;
2608         [CCode (cheader_filename = "linux/input.h")]
2609         public const int KEY_BRL_DOT7;
2610         [CCode (cheader_filename = "linux/input.h")]
2611         public const int KEY_BRL_DOT8;
2612         [CCode (cheader_filename = "linux/input.h")]
2613         public const int KEY_BRL_DOT9;
2614         [CCode (cheader_filename = "linux/input.h")]
2615         public const int KEY_BRL_DOT10;
2617         [CCode (cheader_filename = "linux/input.h")]
2618         public const int KEY_NUMERIC_0;
2619         [CCode (cheader_filename = "linux/input.h")]
2620         public const int KEY_NUMERIC_1;
2621         [CCode (cheader_filename = "linux/input.h")]
2622         public const int KEY_NUMERIC_2;
2623         [CCode (cheader_filename = "linux/input.h")]
2624         public const int KEY_NUMERIC_3;
2625         [CCode (cheader_filename = "linux/input.h")]
2626         public const int KEY_NUMERIC_4;
2627         [CCode (cheader_filename = "linux/input.h")]
2628         public const int KEY_NUMERIC_5;
2629         [CCode (cheader_filename = "linux/input.h")]
2630         public const int KEY_NUMERIC_6;
2631         [CCode (cheader_filename = "linux/input.h")]
2632         public const int KEY_NUMERIC_7;
2633         [CCode (cheader_filename = "linux/input.h")]
2634         public const int KEY_NUMERIC_8;
2635         [CCode (cheader_filename = "linux/input.h")]
2636         public const int KEY_NUMERIC_9;
2637         [CCode (cheader_filename = "linux/input.h")]
2638         public const int KEY_NUMERIC_STAR;
2639         [CCode (cheader_filename = "linux/input.h")]
2640         public const int KEY_NUMERIC_POUND;
2642         /*
2643         * Relative axes
2644         */
2646         [CCode (cheader_filename = "linux/input.h")]
2647         public const int REL_X;
2648         [CCode (cheader_filename = "linux/input.h")]
2649         public const int REL_Y;
2650         [CCode (cheader_filename = "linux/input.h")]
2651         public const int REL_Z;
2652         [CCode (cheader_filename = "linux/input.h")]
2653         public const int REL_RX;
2654         [CCode (cheader_filename = "linux/input.h")]
2655         public const int REL_RY;
2656         [CCode (cheader_filename = "linux/input.h")]
2657         public const int REL_RZ;
2658         [CCode (cheader_filename = "linux/input.h")]
2659         public const int REL_HWHEEL;
2660         [CCode (cheader_filename = "linux/input.h")]
2661         public const int REL_DIAL;
2662         [CCode (cheader_filename = "linux/input.h")]
2663         public const int REL_WHEEL;
2664         [CCode (cheader_filename = "linux/input.h")]
2665         public const int REL_MISC;
2666         [CCode (cheader_filename = "linux/input.h")]
2667         public const int REL_MAX;
2669         /*
2670          * Absolute axes
2671          */
2673         [CCode (cheader_filename = "linux/input.h")]
2674         public const int ABS_X;
2675         [CCode (cheader_filename = "linux/input.h")]
2676         public const int ABS_Y;
2677         [CCode (cheader_filename = "linux/input.h")]
2678         public const int ABS_Z;
2679         [CCode (cheader_filename = "linux/input.h")]
2680         public const int ABS_RX;
2681         [CCode (cheader_filename = "linux/input.h")]
2682         public const int ABS_RY;
2683         [CCode (cheader_filename = "linux/input.h")]
2684         public const int ABS_RZ;
2685         [CCode (cheader_filename = "linux/input.h")]
2686         public const int ABS_THROTTLE;
2687         [CCode (cheader_filename = "linux/input.h")]
2688         public const int ABS_RUDDER;
2689         [CCode (cheader_filename = "linux/input.h")]
2690         public const int ABS_WHEEL;
2691         [CCode (cheader_filename = "linux/input.h")]
2692         public const int ABS_GAS;
2693         [CCode (cheader_filename = "linux/input.h")]
2694         public const int ABS_BRAKE;
2695         [CCode (cheader_filename = "linux/input.h")]
2696         public const int ABS_HAT0X;
2697         [CCode (cheader_filename = "linux/input.h")]
2698         public const int ABS_HAT0Y;
2699         [CCode (cheader_filename = "linux/input.h")]
2700         public const int ABS_HAT1X;
2701         [CCode (cheader_filename = "linux/input.h")]
2702         public const int ABS_HAT1Y;
2703         [CCode (cheader_filename = "linux/input.h")]
2704         public const int ABS_HAT2X;
2705         [CCode (cheader_filename = "linux/input.h")]
2706         public const int ABS_HAT2Y;
2707         [CCode (cheader_filename = "linux/input.h")]
2708         public const int ABS_HAT3X;
2709         [CCode (cheader_filename = "linux/input.h")]
2710         public const int ABS_HAT3Y;
2711         [CCode (cheader_filename = "linux/input.h")]
2712         public const int ABS_PRESSURE;
2713         [CCode (cheader_filename = "linux/input.h")]
2714         public const int ABS_DISTANCE;
2715         [CCode (cheader_filename = "linux/input.h")]
2716         public const int ABS_TILT_X;
2717         [CCode (cheader_filename = "linux/input.h")]
2718         public const int ABS_TILT_Y;
2719         [CCode (cheader_filename = "linux/input.h")]
2720         public const int ABS_TOOL_WIDTH;
2721         [CCode (cheader_filename = "linux/input.h")]
2722         public const int ABS_VOLUME;
2723         [CCode (cheader_filename = "linux/input.h")]
2724         public const int ABS_MISC;
2725         [CCode (cheader_filename = "linux/input.h")]
2726         public const int ABS_MAX;
2728         /*
2729          * Switch events
2730          */
2732         [CCode (cheader_filename = "linux/input.h")]
2733         public const int SW_LID;
2734         [CCode (cheader_filename = "linux/input.h")]
2735         public const int SW_TABLET_MODE;
2736         [CCode (cheader_filename = "linux/input.h")]
2737         public const int SW_HEADPHONE_INSERT;
2738         [CCode (cheader_filename = "linux/input.h")]
2739         public const int SW_RFKILL_ALL;
2740         [CCode (cheader_filename = "linux/input.h")]
2741         public const int SW_RADIO;
2742         [CCode (cheader_filename = "linux/input.h")]
2743         public const int SW_MICROPHONE_INSERT;
2744         [CCode (cheader_filename = "linux/input.h")]
2745         public const int SW_DOCK;
2746         [CCode (cheader_filename = "linux/input.h")]
2747         public const int SW_MAX;
2749         /*
2750          * Misc events
2751          */
2753         [CCode (cheader_filename = "linux/input.h")]
2754         public const int MSC_SERIAL;
2755         [CCode (cheader_filename = "linux/input.h")]
2756         public const int MSC_PULSELED;
2757         [CCode (cheader_filename = "linux/input.h")]
2758         public const int MSC_GESTURE;
2759         [CCode (cheader_filename = "linux/input.h")]
2760         public const int MSC_RAW;
2761         [CCode (cheader_filename = "linux/input.h")]
2762         public const int MSC_SCAN;
2763         [CCode (cheader_filename = "linux/input.h")]
2764         public const int MSC_MAX;
2766         /*
2767          * LEDs
2768          */
2770         [CCode (cheader_filename = "linux/input.h")]
2771         public const int LED_NUML;
2772         [CCode (cheader_filename = "linux/input.h")]
2773         public const int LED_CAPSL;
2774         [CCode (cheader_filename = "linux/input.h")]
2775         public const int LED_SCROLLL;
2776         [CCode (cheader_filename = "linux/input.h")]
2777         public const int LED_COMPOSE;
2778         [CCode (cheader_filename = "linux/input.h")]
2779         public const int LED_KANA;
2780         [CCode (cheader_filename = "linux/input.h")]
2781         public const int LED_SLEEP;
2782         [CCode (cheader_filename = "linux/input.h")]
2783         public const int LED_SUSPEND;
2784         [CCode (cheader_filename = "linux/input.h")]
2785         public const int LED_MUTE;
2786         [CCode (cheader_filename = "linux/input.h")]
2787         public const int LED_MISC;
2788         [CCode (cheader_filename = "linux/input.h")]
2789         public const int LED_MAIL;
2790         [CCode (cheader_filename = "linux/input.h")]
2791         public const int LED_CHARGING;
2792         [CCode (cheader_filename = "linux/input.h")]
2793         public const int LED_MAX;
2795         /*
2796          * Autorepeat values
2797          */
2799         [CCode (cheader_filename = "linux/input.h")]
2800         public const int REP_DELAY;
2801         [CCode (cheader_filename = "linux/input.h")]
2802         public const int REP_PERIOD;
2803         [CCode (cheader_filename = "linux/input.h")]
2804         public const int REP_MAX;
2806         /*
2807          * Sounds
2808          */
2810         [CCode (cheader_filename = "linux/input.h")]
2811         public const int SND_CLICK;
2812         [CCode (cheader_filename = "linux/input.h")]
2813         public const int SND_BELL;
2814         [CCode (cheader_filename = "linux/input.h")]
2815         public const int SND_TONE;
2816         [CCode (cheader_filename = "linux/input.h")]
2817         public const int SND_MAX;
2819         /*
2820          * IDs.
2821          */
2823         [CCode (cheader_filename = "linux/input.h")]
2824         public const int ID_BUS;
2825         [CCode (cheader_filename = "linux/input.h")]
2826         public const int ID_VENDOR;
2827         [CCode (cheader_filename = "linux/input.h")]
2828         public const int ID_PRODUCT;
2829         [CCode (cheader_filename = "linux/input.h")]
2830         public const int ID_VERSION;
2832         [CCode (cheader_filename = "linux/input.h")]
2833         public const int BUS_PCI;
2834         [CCode (cheader_filename = "linux/input.h")]
2835         public const int BUS_ISAPNP;
2836         [CCode (cheader_filename = "linux/input.h")]
2837         public const int BUS_USB;
2838         [CCode (cheader_filename = "linux/input.h")]
2839         public const int BUS_HIL;
2840         [CCode (cheader_filename = "linux/input.h")]
2841         public const int BUS_BLUETOOTH;
2842         [CCode (cheader_filename = "linux/input.h")]
2843         public const int BUS_VIRTUAL;
2845         [CCode (cheader_filename = "linux/input.h")]
2846         public const int BUS_ISA;
2847         [CCode (cheader_filename = "linux/input.h")]
2848         public const int BUS_I8042;
2849         [CCode (cheader_filename = "linux/input.h")]
2850         public const int BUS_XTKBD;
2851         [CCode (cheader_filename = "linux/input.h")]
2852         public const int BUS_RS232;
2853         [CCode (cheader_filename = "linux/input.h")]
2854         public const int BUS_GAMEPORT;
2855         [CCode (cheader_filename = "linux/input.h")]
2856         public const int BUS_PARPORT;
2857         [CCode (cheader_filename = "linux/input.h")]
2858         public const int BUS_AMIGA;
2859         [CCode (cheader_filename = "linux/input.h")]
2860         public const int BUS_ADB;
2861         [CCode (cheader_filename = "linux/input.h")]
2862         public const int BUS_I2C;
2863         [CCode (cheader_filename = "linux/input.h")]
2864         public const int BUS_HOST;
2865         [CCode (cheader_filename = "linux/input.h")]
2866         public const int BUS_GSC;
2867         [CCode (cheader_filename = "linux/input.h")]
2868         public const int BUS_ATARI;
2869     }
2871     /*
2872      * Netlink subsystem
2873      */
2874     [CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "linux/netlink.h")]
2875     namespace Netlink {
2877         [CCode (cheader_filename = "linux/netlink.h")]
2878         public const int NETLINK_ROUTE;
2879         [CCode (cheader_filename = "linux/netlink.h")]
2880         public const int NETLINK_UNUSED;
2881         [CCode (cheader_filename = "linux/netlink.h")]
2882         public const int NETLINK_USERSOCK;
2883         [CCode (cheader_filename = "linux/netlink.h")]
2884         public const int NETLINK_FIREWALL;
2885         [CCode (cheader_filename = "linux/netlink.h")]
2886         public const int NETLINK_INET_DIAG;
2887         [CCode (cheader_filename = "linux/netlink.h")]
2888         public const int NETLINK_NFLOG;
2889         [CCode (cheader_filename = "linux/netlink.h")]
2890         public const int NETLINK_XFRM;
2891         [CCode (cheader_filename = "linux/netlink.h")]
2892         public const int NETLINK_SELINUX;
2893         [CCode (cheader_filename = "linux/netlink.h")]
2894         public const int NETLINK_ISCSI;
2895         [CCode (cheader_filename = "linux/netlink.h")]
2896         public const int NETLINK_AUDIT;
2897         [CCode (cheader_filename = "linux/netlink.h")]
2898         public const int NETLINK_FIB_LOOKUP;
2899         [CCode (cheader_filename = "linux/netlink.h")]
2900         public const int NETLINK_CONNECTOR;
2901         [CCode (cheader_filename = "linux/netlink.h")]
2902         public const int NETLINK_NETFILTER;
2903         [CCode (cheader_filename = "linux/netlink.h")]
2904         public const int NETLINK_IP6_FW;
2905         [CCode (cheader_filename = "linux/netlink.h")]
2906         public const int NETLINK_DNRTMSG;
2907         [CCode (cheader_filename = "linux/netlink.h")]
2908         public const int NETLINK_KOBJECT_UEVENT;
2909         [CCode (cheader_filename = "linux/netlink.h")]
2910         public const int NETLINK_GENERIC;
2911         [CCode (cheader_filename = "linux/netlink.h")]
2912         public const int NETLINK_SCSITRANSPORT;
2913         [CCode (cheader_filename = "linux/netlink.h")]
2914         public const int NETLINK_ECRYPTFS;
2916         [CCode (cheader_filename = "linux/netlink.h")]
2917         public const int NETLINK_ADD_MEMBERSHIP;
2918         [CCode (cheader_filename = "linux/netlink.h")]
2919         public const int NETLINK_DROP_MEMBERSHIP;
2920         [CCode (cheader_filename = "linux/netlink.h")]
2921         public const int NETLINK_PKTINFO;
2922         [CCode (cheader_filename = "linux/netlink.h")]
2923         public const int NETLINK_BROADCAST_ERROR;
2924         [CCode (cheader_filename = "linux/netlink.h")]
2925         public const int NETLINK_NO_ENOBUFS;
2927         [CCode (cheader_filename = "linux/netlink.h")]
2928         public const int NLM_F_REQUEST;
2929         [CCode (cheader_filename = "linux/netlink.h")]
2930         public const int NLM_F_MULTI;
2931         [CCode (cheader_filename = "linux/netlink.h")]
2932         public const int NLM_F_ACK;
2933         [CCode (cheader_filename = "linux/netlink.h")]
2934         public const int NLM_F_ECHO;
2936         [CCode (cheader_filename = "linux/netlink.h")]
2937         public const int NLM_F_ROOT;
2938         [CCode (cheader_filename = "linux/netlink.h")]
2939         public const int NLM_F_MATCH;
2940         [CCode (cheader_filename = "linux/netlink.h")]
2941         public const int NLM_F_ATOMIC;
2942         [CCode (cheader_filename = "linux/netlink.h")]
2943         public const int NLM_F_DUMP;
2945         [CCode (cheader_filename = "linux/netlink.h")]
2946         public const int NLM_F_REPLACE;
2947         [CCode (cheader_filename = "linux/netlink.h")]
2948         public const int NLM_F_EXCL;
2949         [CCode (cheader_filename = "linux/netlink.h")]
2950         public const int NLM_F_CREATE;
2951         [CCode (cheader_filename = "linux/netlink.h")]
2952         public const int NLM_F_APPEND;
2954         [CCode (cheader_filename = "linux/netlink.h")]
2955         public const int NLMSG_ALIGNTO;
2956         [CCode (cheader_filename = "linux/netlink.h")]
2957         public const int NLMSG_NOOP;
2958         [CCode (cheader_filename = "linux/netlink.h")]
2959         public const int NLMSG_ERROR;
2960         [CCode (cheader_filename = "linux/netlink.h")]
2961         public const int NLMSG_DONE;
2962         [CCode (cheader_filename = "linux/netlink.h")]
2963         public const int NLMSG_OVERRUN;
2964         [CCode (cheader_filename = "linux/netlink.h")]
2965         public const int NLMSG_MIN_TYPE;
2967         /* netlink action macros, we bind them as functions for convenience */
2968         [CCode (cheader_filename = "linux/netlink.h")]
2969         public void NLMSG_ALIGN (int len);
2970         [CCode (cheader_filename = "linux/netlink.h")]
2971         public int NLMSG_HDRLEN ();
2972         [CCode (cheader_filename = "linux/netlink.h")]
2973         public int NLMSG_LENGTH (int len);
2974         [CCode (cheader_filename = "linux/netlink.h")]
2975         public void NLMSG_SPACE (int len);
2976         [CCode (cheader_filename = "linux/netlink.h")]
2977         public void* NLMSG_DATA (NlMsgHdr nlh);
2978         [CCode (cheader_filename = "linux/netlink.h")]
2979         public unowned NlMsgHdr NLMSG_NEXT (NlMsgHdr nlh, int len);
2980         [CCode (cheader_filename = "linux/netlink.h")]
2981         public bool NLMSG_OK (NlMsgHdr nlh, int len);
2982         [CCode (cheader_filename = "linux/netlink.h")]
2983         public int NLMSG_PAYLOAD (NlMsgHdr nlh, int len);
2985         // netlink socket, can be used instead of sockaddr
2986         [CCode (cname = "struct sockaddr_nl", has_type_id = false, cheader_filename = "linux/netlink.h", destroy_function = "")]
2987         public struct SockAddrNl {
2988             public int nl_family;
2989             public ushort nl_pad;
2990             public uint32 nl_pid;
2991             public uint32 nl_groups;
2992         }
2994         // netlink message header
2995         [CCode (cname = "struct nlmsghdr", has_type_id = false, cheader_filename = "linux/netlink.h", destroy_function = "")]
2996         public struct NlMsgHdr {
2997             public uint32 nlmsg_len;
2998             public uint16 nlmsg_type;
2999             public uint16 nlmsg_flags;
3000             public uint32 nlmsg_seq;
3001             public uint32 nlmsg_pid;
3002         }
3004         // netlink error message
3005         [CCode (cname = "struct nlmsgerr", has_type_id = false, cheader_filename = "linux/netlink.h", destroy_function = "")]
3006         public struct NlMsgErr {
3007             public int error;
3008             public NlMsgHdr msg;
3009         }
3011         // rtnetlink multicast groups ( userland compatibility values )
3012         [CCode (cheader_filename = "linux/rtnetlink.h")]
3013         public const int RTMGRP_LINK;
3014         [CCode (cheader_filename = "linux/rtnetlink.h")]
3015         public const int RTMGRP_NOTIFY;
3016         [CCode (cheader_filename = "linux/rtnetlink.h")]
3017         public const int RTMGRP_NEIGH;
3018         [CCode (cheader_filename = "linux/rtnetlink.h")]
3019         public const int RTMGRP_TC;
3020         [CCode (cheader_filename = "linux/rtnetlink.h")]
3021         public const int RTMGRP_IPV4_IFADDR;
3022         [CCode (cheader_filename = "linux/rtnetlink.h")]
3023         public const int RTMGRP_IPV4_MROUTE;
3024         [CCode (cheader_filename = "linux/rtnetlink.h")]
3025         public const int RTMGRP_IPV4_ROUTE;
3026         [CCode (cheader_filename = "linux/rtnetlink.h")]
3027         public const int RTMGRP_IPV4_RULE;
3028         [CCode (cheader_filename = "linux/rtnetlink.h")]
3029         public const int RTMGRP_IPV6_IFADDR;
3030         [CCode (cheader_filename = "linux/rtnetlink.h")]
3031         public const int RTMGRP_IPV6_MROUTE;
3032         [CCode (cheader_filename = "linux/rtnetlink.h")]
3033         public const int RTMGRP_IPV6_ROUTE;
3034         [CCode (cheader_filename = "linux/rtnetlink.h")]
3035         public const int RTMGRP_IPV6_IFINFO;
3036         [CCode (cheader_filename = "linux/rtnetlink.h")]
3037         public const int RTMGRP_DECnet_IFADDR;
3038         [CCode (cheader_filename = "linux/rtnetlink.h")]
3039         public const int RTMGRP_DECnet_ROUTE;
3040         [CCode (cheader_filename = "linux/rtnetlink.h")]
3041         public const int RTMGRP_IPV6_PREFIX;
3043         // rtnetlink multicast groups ( 1 << group )
3044         [CCode (cheader_filename = "linux/rtnetlink.h")]
3045         public const int RTNLGRP_NONE;
3046         [CCode (cheader_filename = "linux/rtnetlink.h")]
3047         public const int RTNLGRP_LINK;
3048         [CCode (cheader_filename = "linux/rtnetlink.h")]
3049         public const int RTNLGRP_NOTIFY;
3050         [CCode (cheader_filename = "linux/rtnetlink.h")]
3051         public const int RTNLGRP_NEIGH;
3052         [CCode (cheader_filename = "linux/rtnetlink.h")]
3053         public const int RTNLGRP_TC;
3054         [CCode (cheader_filename = "linux/rtnetlink.h")]
3055         public const int RTNLGRP_IPV4_IFADDR;
3056         [CCode (cheader_filename = "linux/rtnetlink.h")]
3057         public const int RTNLGRP_IPV4_MROUTE;
3058         [CCode (cheader_filename = "linux/rtnetlink.h")]
3059         public const int RTNLGRP_IPV4_ROUTE;
3060         [CCode (cheader_filename = "linux/rtnetlink.h")]
3061         public const int RTNLGRP_IPV4_RULE;
3062         [CCode (cheader_filename = "linux/rtnetlink.h")]
3063         public const int RTNLGRP_IPV6_IFADDR;
3064         [CCode (cheader_filename = "linux/rtnetlink.h")]
3065         public const int RTNLGRP_IPV6_MROUTE;
3066         [CCode (cheader_filename = "linux/rtnetlink.h")]
3067         public const int RTNLGRP_IPV6_ROUTE;
3068         [CCode (cheader_filename = "linux/rtnetlink.h")]
3069         public const int RTNLGRP_IPV6_IFINFO;
3070         [CCode (cheader_filename = "linux/rtnetlink.h")]
3071         public const int RTNLGRP_DECnet_IFADDR;
3072         [CCode (cheader_filename = "linux/rtnetlink.h")]
3073         public const int RTNLGRP_NOP2;
3074         [CCode (cheader_filename = "linux/rtnetlink.h")]
3075         public const int RTNLGRP_DECnet_ROUTE;
3076         [CCode (cheader_filename = "linux/rtnetlink.h")]
3077         public const int RTNLGRP_DECnet_RULE;
3078         [CCode (cheader_filename = "linux/rtnetlink.h")]
3079         public const int RTNLGRP_NOP4;
3080         [CCode (cheader_filename = "linux/rtnetlink.h")]
3081         public const int RTNLGRP_IPV6_PREFIX;
3082         [CCode (cheader_filename = "linux/rtnetlink.h")]
3083         public const int RTNLGRP_IPV6_RULE;
3084         [CCode (cheader_filename = "linux/rtnetlink.h")]
3085         public const int RTNLGRP_ND_USEROPT;
3086         [CCode (cheader_filename = "linux/rtnetlink.h")]
3087         public const int RTNLGRP_PHONET_IFADDR;
3088         [CCode (cheader_filename = "linux/rtnetlink.h")]
3089         public const int RTNLGRP_PHONET_ROUTE;
3091         /* rtnetlink action macros, we bind them as functions for convenience */
3092         [CCode (cheader_filename = "linux/rtnetlink.h")]
3093         public void RTA_ALIGN (int len);
3094         [CCode (cheader_filename = "linux/rtnetlink.h")]
3095         public int RTA_HDRLEN ();
3096         [CCode (cheader_filename = "linux/rtnetlink.h")]
3097         public int RTA_LENGTH (int len);
3098         [CCode (cheader_filename = "linux/rtnetlink.h")]
3099         public void RTA_SPACE (int len);
3100         [CCode (cheader_filename = "linux/rtnetlink.h")]
3101         public void* RTA_DATA (RtAttr* rta);
3102         [CCode (cheader_filename = "linux/rtnetlink.h")]
3103         public RtAttr* RTA_NEXT (RtAttr* rta, int len);
3104         [CCode (cheader_filename = "linux/rtnetlink.h")]
3105         public bool RTA_OK (RtAttr* rta, int len);
3106         [CCode (cheader_filename = "linux/rtnetlink.h")]
3107         public void* RTA_PAYLOAD (RtAttr* rta, int len);
3109         /*
3110         [CCode (cheader_filename = "sys/socket.h", sentinel = "")]
3111         public int bind (int sockfd, SockAddrNl addr, ulong length);
3112         */
3114         // rtnetlink info message
3115         [CCode (cname = "struct ifinfomsg", has_type_id = false, cheader_filename = "linux/rtnetlink.h", destroy_function = "")]
3116         public struct IfInfoMsg {
3117             public uchar ifi_family;
3118             public uchar __ifi_pad;
3119             public ushort ifi_type;
3120             public int ifi_index;
3121             public uint32 ifi_flags;
3122             public uint32 ifi_change;
3123         }
3125         // rtnetlink attribute
3126         [CCode (cname = "struct rtattr", has_type_id = false, cheader_filename = "linux/rtnetlink.h", destroy_function = "")]
3127         public struct RtAttr {
3128             public ushort rta_len;
3129             public ushort rta_type;
3130         }
3132         // rtnetlink routing / discovery messages
3133         [CCode (cprefix = "RTM_", has_type_id = false, cheader_filename = "linux/rtnetlink.h")]
3134         public enum RtMessageType {
3135             NEWLINK,
3136             DELLINK,
3137             GETLINK,
3138             SETLINK,
3139             NEWADDR,
3140             DELADDR,
3141             GETADDR,
3142             NEWROUTE,
3143             DELROUTE,
3144             GETROUTE,
3145             NEWNEIGH,
3146             DELNEIGH,
3147             GETNEIGH,
3148             NEWRULE,
3149             DELRULE,
3150             GETRULE,
3151             NEWQDISC,
3152             DELQDISC,
3153             GETQDISC,
3154             NEWTCLASS,
3155             DELTCLASS,
3156             GETTCLASS,
3157             NEWTFILTER,
3158             DELTFILTER,
3159             GETTFILTER,
3160             NEWACTION,
3161             DELACTION,
3162             GETACTION,
3163             NEWPREFIX,
3164             GETMULTICAST,
3165             GETANYCAST,
3166             NEWNEIGHTBL,
3167             GETNEIGHTBL,
3168             SETNEIGHTBL,
3169         }
3170     }
3172     /*
3173      * Real time clock subsystem
3174      */
3176     [CCode (cprefix = "", lower_case_cprefix = "")]
3177     namespace Rtc {
3179         [CCode (cname = "struct rtc_time", cheader_filename = "linux/rtc.h", has_type_id = false)]
3180         public struct Time {
3181             public int tm_sec;
3182             public int tm_min;
3183             public int tm_hour;
3184             public int tm_mday;
3185             public int tm_mon;
3186             public int tm_year;
3187             public int tm_wday;
3188             public int tm_yday;
3189             public int tm_isdst;
3190         }
3192         [CCode (cname = "struct rtc_wkalrm", has_type_id = false, cheader_filename = "linux/rtc.h")]
3193         public struct WakeAlarm {
3194             public char enabled;
3195             public char pending;
3196             public Linux.Rtc.Time time;
3197         }
3199         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3200         public const int RTC_RD_TIME;
3201         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3202         public const int RTC_SET_TIME;
3203         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3204         public const int RTC_WKALM_RD;
3205         [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3206         public const int RTC_WKALM_SET;
3207     }
3209     /*
3210      * Socket extensions (non-posix)
3211      */
3212     [CCode (cprefix = "", lower_case_cprefix = "")]
3213     namespace Socket {
3214         [CCode (cheader_filename = "sys/socket.h")]
3215         public const int AF_NETLINK;
3216         [CCode (cheader_filename = "sys/socket.h")]
3217         public const int AF_PHONET;
3218         [CCode (cheader_filename = "sys/socket.h")]
3219         public const int AF_UNSPEC;
3220         [CCode (cheader_filename = "sys/socket.h")]
3221         public const int SOCK_NONBLOCK;
3222         [CCode (cheader_filename = "sys/socket.h")]
3223         public const int SOCK_CLOEXEC;
3225         [CCode (cname = "struct ucred", has_type_id = false, cheader_filename = "linux/socket.h", destroy_function = "")]
3226         public struct ucred {
3227             public uint32 pid;
3228             public uint32 uid;
3229             public uint32 gid;
3230         }
3232         /* setsockopt(2) level constants */
3233         [CCode (cheader_filename = "linux/socket.h")]
3234         public const int SOL_IP;
3235         [CCode (cheader_filename = "linux/socket.h")]
3236         public const int SOL_TCP;
3237         [CCode (cheader_filename = "linux/socket.h")]
3238         public const int SOL_UDP;
3239         [CCode (cheader_filename = "linux/socket.h")]
3240         public const int SOL_IPV6;
3241         [CCode (cheader_filename = "linux/socket.h")]
3242         public const int SOL_ICMPV6;
3243         [CCode (cheader_filename = "linux/socket.h")]
3244         public const int SOL_SCTP;
3245         [CCode (cheader_filename = "linux/socket.h")]
3246         public const int SOL_UDPLITE;
3247         [CCode (cheader_filename = "linux/socket.h")]
3248         public const int SOL_RAW;
3249         [CCode (cheader_filename = "linux/socket.h")]
3250         public const int SOL_IPX;
3251         [CCode (cheader_filename = "linux/socket.h")]
3252         public const int SOL_AX25;
3253         [CCode (cheader_filename = "linux/socket.h")]
3254         public const int SOL_ATALK;
3255         [CCode (cheader_filename = "linux/socket.h")]
3256         public const int SOL_NETROM;
3257         [CCode (cheader_filename = "linux/socket.h")]
3258         public const int SOL_ROSE;
3259         [CCode (cheader_filename = "linux/socket.h")]
3260         public const int SOL_DECNET;
3261         [CCode (cheader_filename = "linux/socket.h")]
3262         public const int SOL_X25;
3263         [CCode (cheader_filename = "linux/socket.h")]
3264         public const int SOL_PACKET;
3265         [CCode (cheader_filename = "linux/socket.h")]
3266         public const int SOL_ATM;
3267         [CCode (cheader_filename = "linux/socket.h")]
3268         public const int SOL_AAL;
3269         [CCode (cheader_filename = "linux/socket.h")]
3270         public const int SOL_IRDA;
3271         [CCode (cheader_filename = "linux/socket.h")]
3272         public const int SOL_NETBEUI;
3273         [CCode (cheader_filename = "linux/socket.h")]
3274         public const int SOL_LLC;
3275         [CCode (cheader_filename = "linux/socket.h")]
3276         public const int SOL_DCCP;
3277         [CCode (cheader_filename = "linux/socket.h")]
3278         public const int SOL_NETLINK;
3279         [CCode (cheader_filename = "linux/socket.h")]
3280         public const int SOL_TIPC;
3281         [CCode (cheader_filename = "linux/socket.h")]
3282         public const int SOL_RXRPC;
3283         [CCode (cheader_filename = "linux/socket.h")]
3284         public const int SOL_PPPOL2TP;
3285         [CCode (cheader_filename = "linux/socket.h")]
3286         public const int SOL_BLUETOOTH;
3287         [CCode (cheader_filename = "linux/socket.h")]
3288         public const int SOL_PNPIPE;
3289         [CCode (cheader_filename = "linux/socket.h")]
3290         public const int SOL_RDS;
3291         [CCode (cheader_filename = "linux/socket.h")]
3292         public const int SOL_IUCV;
3293         [CCode (cheader_filename = "sys/socket.h")]
3294         public const int SOL_SOCKET;
3295         [CCode (cheader_filename = "sys/socket.h")]
3296         public const int SO_DEBUG;
3297         [CCode (cheader_filename = "sys/socket.h")]
3298         public const int SO_REUSEADDR;
3299         [CCode (cheader_filename = "sys/socket.h")]
3300         public const int SO_TYPE;
3301         [CCode (cheader_filename = "sys/socket.h")]
3302         public const int SO_ERROR;
3303         [CCode (cheader_filename = "sys/socket.h")]
3304         public const int SO_DONTROUTE;
3305         [CCode (cheader_filename = "sys/socket.h")]
3306         public const int SO_BROADCAST;
3307         [CCode (cheader_filename = "sys/socket.h")]
3308         public const int SO_SNDBUF;
3309         [CCode (cheader_filename = "sys/socket.h")]
3310         public const int SO_RCVBUF;
3311         [CCode (cheader_filename = "sys/socket.h")]
3312         public const int SO_SNDBUFFORCE;
3313         [CCode (cheader_filename = "sys/socket.h")]
3314         public const int SO_RCVBUFFORCE;
3315         [CCode (cheader_filename = "sys/socket.h")]
3316         public const int SO_KEEPALIVE;
3317         [CCode (cheader_filename = "sys/socket.h")]
3318         public const int SO_OOBINLINE;
3319         [CCode (cheader_filename = "sys/socket.h")]
3320         public const int SO_NO_CHECK;
3321         [CCode (cheader_filename = "sys/socket.h")]
3322         public const int SO_PRIORITY;
3323         [CCode (cheader_filename = "sys/socket.h")]
3324         public const int SO_LINGER;
3325         [CCode (cheader_filename = "sys/socket.h")]
3326         public const int SO_BSDCOMPAT;
3327     }
3329     /*
3330      * SPI (Serial Peripheral Interface)
3331      */
3333     [CCode (cprefix = "", lower_case_cprefix = "")]
3334     namespace Spi {
3336         [CCode (cname = "spi_ioc_transfer", has_type_id = false, cheader_filename = "linux/spi/spidev.h")]
3337         public struct IocTransfer {
3338             public uint64  tx_buf;
3339             public uint64  rx_buf;
3341             public uint32  len;
3342             public uint32  speed_hz;
3344             public uint16  delay_usecs;
3345             public uint8   bits_per_word;
3346             public uint8   cs_change;
3347             public uint32  pad;
3348         }
3350         /* mode constants */
3351         [CCode (cheader_filename = "linux/spi/spidev.h")]
3352         public const int SPI_CPHA;
3353         [CCode (cheader_filename = "linux/spi/spidev.h")]
3354         public const int SPI_CPOL;
3356         [CCode (cheader_filename = "linux/spi/spidev.h")]
3357         public const int SPI_MODE_0;
3358         [CCode (cheader_filename = "linux/spi/spidev.h")]
3359         public const int SPI_MODE_1;
3360         [CCode (cheader_filename = "linux/spi/spidev.h")]
3361         public const int SPI_MODE_2;
3362         [CCode (cheader_filename = "linux/spi/spidev.h")]
3363         public const int SPI_MODE_3;
3365         [CCode (cheader_filename = "linux/spi/spidev.h")]
3366         public const int SPI_CS_HIGH;
3367         [CCode (cheader_filename = "linux/spi/spidev.h")]
3368         public const int SPI_LSB_FIRST;
3369         [CCode (cheader_filename = "linux/spi/spidev.h")]
3370         public const int SPI_3WIRE;
3371         [CCode (cheader_filename = "linux/spi/spidev.h")]
3372         public const int SPI_LOOP;
3373         [CCode (cheader_filename = "linux/spi/spidev.h")]
3374         public const int SPI_NO_CS;
3375         [CCode (cheader_filename = "linux/spi/spidev.h")]
3376         public const int SPI_READY;
3378         /* size */
3379         public int SPI_MSGSIZE(int N);
3380         public int SPI_IOC_MESSAGE(int N);
3382         /* ioctls */
3383         [CCode (cheader_filename = "linux/spi/spidev.h")]
3384         public const int SPI_IOC_RD_MODE;
3385         [CCode (cheader_filename = "linux/spi/spidev.h")]
3386         public const int SPI_IOC_WR_MODE;
3388         [CCode (cheader_filename = "linux/spi/spidev.h")]
3389         public const int SPI_IOC_RD_LSB_FIRST;
3390         [CCode (cheader_filename = "linux/spi/spidev.h")]
3391         public const int SPI_IOC_WR_LSB_FIRST;
3393         [CCode (cheader_filename = "linux/spi/spidev.h")]
3394         public const int SPI_IOC_RD_BITS_PER_WORD;
3395         [CCode (cheader_filename = "linux/spi/spidev.h")]
3396         public const int SPI_IOC_WR_BITS_PER_WORD;
3397         [CCode (cheader_filename = "linux/spi/spidev.h")]
3398         public const int SPI_IOC_RD_MAX_SPEED_HZ;
3399         [CCode (cheader_filename = "linux/spi/spidev.h")]
3400         public const int SPI_IOC_WR_MAX_SPEED_HZ;
3401     }
3403     /*
3404      * Terminal input/output
3405      */
3406     [CCode (cprefix = "", lower_case_cprefix = "")]
3407     namespace Termios {
3409         /*
3410          * non-posix functions
3411          */
3412         [CCode (cheader_filename = "stdlib.h")]
3413         public int ptsname_r (int fd, char[] buf);
3415         /*
3416          * non-posix flags
3417          */
3418         [CCode (cheader_filename = "termios.h")]
3419         public const int OLCUC;
3421         /*
3422          * non-posix constants
3423          */
3425         // flow control
3426         [CCode (cheader_filename = "termios.h")]
3427         public const int CRTSCTS;
3428         // v24 modem lines
3429         [CCode (cheader_filename = "termios.h")]
3430         public const int TIOCM_LE;
3431         [CCode (cheader_filename = "termios.h")]
3432         public const int TIOCM_DTR;
3433         [CCode (cheader_filename = "termios.h")]
3434         public const int TIOCM_RTS;
3435         [CCode (cheader_filename = "termios.h")]
3436         public const int TIOCM_ST;
3437         [CCode (cheader_filename = "termios.h")]
3438         public const int TIOCM_SR;
3439         [CCode (cheader_filename = "termios.h")]
3440         public const int TIOCM_CTS;
3441         [CCode (cheader_filename = "termios.h")]
3442         public const int TIOCM_CARM;
3443         [CCode (cheader_filename = "termios.h")]
3444         public const int TIOCM_RNG;
3445         [CCode (cheader_filename = "termios.h")]
3446         public const int TIOCM_DSR;
3447         [CCode (cheader_filename = "termios.h")]
3448         public const int TIOCM_OUT1;
3449         [CCode (cheader_filename = "termios.h")]
3450         public const int TIOCM_OUT2;
3451         [CCode (cheader_filename = "termios.h")]
3452         public const int TIOCM_LOOP;
3453         // baud rates
3454         [CCode (cheader_filename = "termios.h")]
3455         public const int B460800;
3456         [CCode (cheader_filename = "termios.h")]
3457         public const int B500000;
3458         [CCode (cheader_filename = "termios.h")]
3459         public const int B576000;
3460         [CCode (cheader_filename = "termios.h")]
3461         public const int B921600;
3462         [CCode (cheader_filename = "termios.h")]
3463         public const int B1000000;
3464         [CCode (cheader_filename = "termios.h")]
3465         public const int B1152000;
3466         [CCode (cheader_filename = "termios.h")]
3467         public const int B1500000;
3468         [CCode (cheader_filename = "termios.h")]
3469         public const int B2000000;
3470         [CCode (cheader_filename = "termios.h")]
3471         public const int B2500000;
3472         [CCode (cheader_filename = "termios.h")]
3473         public const int B3000000;
3474         [CCode (cheader_filename = "termios.h")]
3475         public const int B3500000;
3476         [CCode (cheader_filename = "termios.h")]
3477         public const int B4000000;
3478         // misc
3479         [CCode (cheader_filename = "termios.h")]
3480         public const Posix.tcflag_t CBAUD;
3481         [CCode (cheader_filename = "termios.h")]
3482         public const Posix.tcflag_t CBAUDEX;
3483         [CCode (cheader_filename = "termios.h")]
3484         public const Posix.tcflag_t ECHOCTL;
3485         [CCode (cheader_filename = "termios.h")]
3486         public const Posix.tcflag_t ECHOPRT;
3487         [CCode (cheader_filename = "termios.h")]
3488         public const Posix.tcflag_t ECHOKE;
3490         /*
3491          * ioctls
3492          */
3493         [CCode (cheader_filename = "sys/ioctl.h")]
3494         public const int TCGETS;
3495         [CCode (cheader_filename = "sys/ioctl.h")]
3496         public const int TCSETS;
3497         [CCode (cheader_filename = "sys/ioctl.h")]
3498         public const int TCSETSW;
3499         [CCode (cheader_filename = "sys/ioctl.h")]
3500         public const int TCSETSF;
3501         [CCode (cheader_filename = "sys/ioctl.h")]
3502         public const int TCGETA;
3503         [CCode (cheader_filename = "sys/ioctl.h")]
3504         public const int TCSETA;
3505         [CCode (cheader_filename = "sys/ioctl.h")]
3506         public const int TCSETAW;
3507         [CCode (cheader_filename = "sys/ioctl.h")]
3508         public const int TCSETAF;
3509         [CCode (cheader_filename = "sys/ioctl.h")]
3510         public const int TCSBRK;
3511         [CCode (cheader_filename = "sys/ioctl.h")]
3512         public const int TCXONC;
3513         [CCode (cheader_filename = "sys/ioctl.h")]
3514         public const int TCFLSH;
3515         [CCode (cheader_filename = "sys/ioctl.h")]
3516         public const int TIOCEXCL;
3517         [CCode (cheader_filename = "sys/ioctl.h")]
3518         public const int TIOCNXCL;
3519         [CCode (cheader_filename = "sys/ioctl.h")]
3520         public const int TIOCSCTTY;
3521         [CCode (cheader_filename = "sys/ioctl.h")]
3522         public const int TIOCGPGRP;
3523         [CCode (cheader_filename = "sys/ioctl.h")]
3524         public const int TIOCSPGRP;
3525         [CCode (cheader_filename = "sys/ioctl.h")]
3526         public const int TIOCOUTQ;
3527         [CCode (cheader_filename = "sys/ioctl.h")]
3528         public const int TIOCSTI;
3529         [CCode (cheader_filename = "sys/ioctl.h")]
3530         public const int TIOCGWINSZ;
3531         [CCode (cheader_filename = "sys/ioctl.h")]
3532         public const int TIOCSWINSZ;
3533         [CCode (cheader_filename = "sys/ioctl.h")]
3534         public const int TIOCMGET;
3535         [CCode (cheader_filename = "sys/ioctl.h")]
3536         public const int TIOCMBIS;
3537         [CCode (cheader_filename = "sys/ioctl.h")]
3538         public const int TIOCMBIC;
3539         [CCode (cheader_filename = "sys/ioctl.h")]
3540         public const int TIOCMSET;
3541         [CCode (cheader_filename = "sys/ioctl.h")]
3542         public const int TIOCGSOFTCAR;
3543         [CCode (cheader_filename = "sys/ioctl.h")]
3544         public const int TIOCSSOFTCAR;
3545         [CCode (cheader_filename = "sys/ioctl.h")]
3546         public const int FIONREAD;
3547         [CCode (cheader_filename = "sys/ioctl.h")]
3548         public const int TIOCINQ;
3549         [CCode (cheader_filename = "sys/ioctl.h")]
3550         public const int TIOCLINUX;
3551         [CCode (cheader_filename = "sys/ioctl.h")]
3552         public const int TIOCCONS;
3553         [CCode (cheader_filename = "sys/ioctl.h")]
3554         public const int TIOCGSERIAL;
3555         [CCode (cheader_filename = "sys/ioctl.h")]
3556         public const int TIOCSSERIAL;
3557         [CCode (cheader_filename = "sys/ioctl.h")]
3558         public const int TIOCPKT;
3559         [CCode (cheader_filename = "sys/ioctl.h")]
3560         public const int FIONBIO;
3561         [CCode (cheader_filename = "sys/ioctl.h")]
3562         public const int TIOCNOTTY;
3563         [CCode (cheader_filename = "sys/ioctl.h")]
3564         public const int TIOCSETD;
3565         [CCode (cheader_filename = "sys/ioctl.h")]
3566         public const int TIOCGETD;
3567         [CCode (cheader_filename = "sys/ioctl.h")]
3568         public const int TCSBRKP;
3569         [CCode (cheader_filename = "sys/ioctl.h")]
3570         public const int TIOCSBRK;
3571         [CCode (cheader_filename = "sys/ioctl.h")]
3572         public const int TIOCCBRK;
3573         [CCode (cheader_filename = "sys/ioctl.h")]
3574         public const int TIOCGSID;
3575         [CCode (cheader_filename = "sys/ioctl.h")]
3576         public const int TCGETS2;
3577         [CCode (cheader_filename = "sys/ioctl.h")]
3578         public const int TCSETS2;
3579         [CCode (cheader_filename = "sys/ioctl.h")]
3580         public const int TCSETSW2;
3581         [CCode (cheader_filename = "sys/ioctl.h")]
3582         public const int TCSETSF2;
3583         [CCode (cheader_filename = "sys/ioctl.h")]
3584         public const int TIOCGRS485;
3585         [CCode (cheader_filename = "sys/ioctl.h")]
3586         public const int TIOCSRS485;
3587         [CCode (cheader_filename = "sys/ioctl.h")]
3588         public const int TIOCGPTN;
3589         [CCode (cheader_filename = "sys/ioctl.h")]
3590         public const int TIOCSPTLCK;
3591         [CCode (cheader_filename = "sys/ioctl.h")]
3592         public const int TCGETX;
3593         [CCode (cheader_filename = "sys/ioctl.h")]
3594         public const int TCSETX;
3595         [CCode (cheader_filename = "sys/ioctl.h")]
3596         public const int TCSETXF;
3597         [CCode (cheader_filename = "sys/ioctl.h")]
3598         public const int TCSETXW;
3600         [CCode (cheader_filename = "sys/ioctl.h")]
3601         public const int FIONCLEX;
3602         [CCode (cheader_filename = "sys/ioctl.h")]
3603         public const int FIOCLEX;
3604         [CCode (cheader_filename = "sys/ioctl.h")]
3605         public const int FIOASYNC;
3606         [CCode (cheader_filename = "sys/ioctl.h")]
3607         public const int TIOCSERCONFIG;
3608         [CCode (cheader_filename = "sys/ioctl.h")]
3609         public const int TIOCSERGWILD;
3610         [CCode (cheader_filename = "sys/ioctl.h")]
3611         public const int TIOCSERSWILD;
3612         [CCode (cheader_filename = "sys/ioctl.h")]
3613         public const int TIOCGLCKTRMIOS;
3614         [CCode (cheader_filename = "sys/ioctl.h")]
3615         public const int TIOCSLCKTRMIOS;
3616         [CCode (cheader_filename = "sys/ioctl.h")]
3617         public const int TIOCSERGSTRUCT;
3618         [CCode (cheader_filename = "sys/ioctl.h")]
3619         public const int TIOCSERGETLSR;
3620         [CCode (cheader_filename = "sys/ioctl.h")]
3621         public const int TIOCSERGETMULTI;
3622         [CCode (cheader_filename = "sys/ioctl.h")]
3623         public const int TIOCSERSETMULTI;
3625         [CCode (cheader_filename = "sys/ioctl.h")]
3626         public const int TIOCMIWAIT;
3627         [CCode (cheader_filename = "sys/ioctl.h")]
3628         public const int TIOCGICOUNT;
3629         [CCode (cheader_filename = "sys/ioctl.h")]
3630         public const int TIOCGHAYESESP;
3631         [CCode (cheader_filename = "sys/ioctl.h")]
3632         public const int TIOCSHAYESESP;
3633         [CCode (cheader_filename = "sys/ioctl.h")]
3634         public const int FIOQSIZE;
3636         [CCode (cheader_filename = "sys/ioctl.h")]
3637         public const int TIOCPKT_DATA;
3638         [CCode (cheader_filename = "sys/ioctl.h")]
3639         public const int TIOCPKT_FLUSHREAD;
3640         [CCode (cheader_filename = "sys/ioctl.h")]
3641         public const int TIOCPKT_FLUSHWRITE;
3642         [CCode (cheader_filename = "sys/ioctl.h")]
3643         public const int TIOCPKT_STOP;
3644         [CCode (cheader_filename = "sys/ioctl.h")]
3645         public const int TIOCPKT_START;
3646         [CCode (cheader_filename = "sys/ioctl.h")]
3647         public const int TIOCPKT_NOSTOP;
3648         [CCode (cheader_filename = "sys/ioctl.h")]
3649         public const int TIOCPKT_DOSTOP;
3651         [CCode (cheader_filename = "sys/ioctl.h")]
3652         public const int TIOCSER_TEMT;
3653     }
3655     /*
3656      * Userspace Input
3657      */
3658     [CCode (cprefix = "", lower_case_cprefix = "")]
3659     namespace UserspaceInput {
3660         [CCode (cheader_filename = "linux/uinput.h")]
3661         public const int VERSION;
3663         [CCode (cheader_filename = "linux/uinput.h")]
3664         public const int EV_UINPUT;
3665         [CCode (cheader_filename = "linux/uinput.h")]
3666         public const int UI_FF_UPLOAD;
3667         [CCode (cheader_filename = "linux/uinput.h")]
3668         public const int UI_FF_ERASE;
3670         [CCode (cheader_filename = "linux/uinput.h")]
3671         public const int UI_DEV_CREATE;
3672         [CCode (cheader_filename = "linux/uinput.h")]
3673         public const int UI_DEV_DESTROY;
3674         [CCode (cheader_filename = "linux/uinput.h")]
3675         public const int UI_SET_EVBIT;
3676         [CCode (cheader_filename = "linux/uinput.h")]
3677         public const int UI_SET_KEYBIT;
3678         [CCode (cheader_filename = "linux/uinput.h")]
3679         public const int UI_SET_RELBIT;
3680         [CCode (cheader_filename = "linux/uinput.h")]
3681         public const int UI_SET_ABSBIT;
3682         [CCode (cheader_filename = "linux/uinput.h")]
3683         public const int UI_SET_MSCBIT;
3684         [CCode (cheader_filename = "linux/uinput.h")]
3685         public const int UI_SET_LEDBIT;
3686         [CCode (cheader_filename = "linux/uinput.h")]
3687         public const int UI_SET_SNDBIT;
3688         [CCode (cheader_filename = "linux/uinput.h")]
3689         public const int UI_SET_FFBIT;
3690         [CCode (cheader_filename = "linux/uinput.h")]
3691         public const int UI_SET_PHYS;
3692         [CCode (cheader_filename = "linux/uinput.h")]
3693         public const int UI_SET_SWBIT;
3695         [CCode (cname = "struct uinput_user_dev", cheader_filename = "linux/uinput.h")]
3696         struct UserDevice
3697         {
3698             char name[80];
3699             Input.Id id;
3700             int ff_effects_max;
3701             int absmax[64];
3702             int absmin[64];
3703             int absfuzz[64];
3704             int absflat[64];
3705         }
3706     }
3708     /*
3709      * Virtual Terminal
3710      */
3711     [CCode (cprefix = "", lower_case_cprefix = "")]
3712     namespace VirtualTerminal {
3714         /* constants */
3716         [CCode (cheader_filename = "linux/vt.h")]
3717         public const int MIN_NR_CONSOLES;
3718         [CCode (cheader_filename = "linux/vt.h")]
3719         public const int MAX_NR_CONSOLES;
3720         [CCode (cheader_filename = "linux/vt.h")]
3721         public const int MAX_NR_USER_CONSOLES;
3722         [CCode (cheader_filename = "linux/vt.h")]
3723         public const int VT_OPENQRY;
3724         [CCode (cheader_filename = "linux/vt.h")]
3725         public const int VT_GETMODE;
3726         [CCode (cheader_filename = "linux/vt.h")]
3727         public const int VT_SETMODE;
3728         [CCode (cheader_filename = "linux/vt.h")]
3729         public const int VT_AUTO;
3730         [CCode (cheader_filename = "linux/vt.h")]
3731         public const int VT_PROCESS;
3732         [CCode (cheader_filename = "linux/vt.h")]
3733         public const int VT_ACKACQ;
3734         [CCode (cheader_filename = "linux/vt.h")]
3735         public const int VT_GETSTATE;
3736         [CCode (cheader_filename = "linux/vt.h")]
3737         public const int VT_SENDSIG;
3738         [CCode (cheader_filename = "linux/vt.h")]
3739         public const int VT_RELDISP;
3740         [CCode (cheader_filename = "linux/vt.h")]
3741         public const int VT_ACTIVATE;
3742         [CCode (cheader_filename = "linux/vt.h")]
3743         public const int VT_WAITACTIVE;
3744         [CCode (cheader_filename = "linux/vt.h")]
3745         public const int VT_DISALLOCATE;
3746         [CCode (cheader_filename = "linux/vt.h")]
3747         public const int VT_RESIZE;
3748         [CCode (cheader_filename = "linux/vt.h")]
3749         public const int VT_RESIZEX;
3750         [CCode (cheader_filename = "linux/vt.h")]
3751         public const int VT_LOCKSWITCH;
3752         [CCode (cheader_filename = "linux/vt.h")]
3753         public const int VT_UNLOCKSWITCH;
3754         [CCode (cheader_filename = "linux/vt.h")]
3755         public const int VT_GETHIFONTMASK;
3757         /* structs */
3759         [CCode (cname = "struct vt_mode", has_type_id = false, cheader_filename = "linux/vt.h")]
3760         public struct Mode {
3761             public char mode;
3762             public char waitv;
3763             public int16 relsig;
3764             public int16 acqsig;
3765             public int16 frsig;
3766         }
3768         [CCode (cname = "struct vt_stat", has_type_id = false, cheader_filename = "linux/vt.h")]
3769         public struct Stat {
3770             public uint16 v_active;
3771             public uint16 v_signal;
3772             public uint16 v_state;
3773         }
3775         [CCode (cname = "struct vt_sizes", has_type_id = false, cheader_filename = "linux/vt.h")]
3776         public struct Sizes {
3777             public uint16 v_rows;
3778             public uint16 v_cols;
3779             public uint16 v_scrollsize;
3780         }
3782         [CCode (cname = "struct vt_consize", has_type_id = false, cheader_filename = "linux/vt.h")]
3783         public struct Consize {
3784             public uint16 v_rows;
3785             public uint16 v_cols;
3786             public uint16 v_vlin;
3787             public uint16 v_clin;
3788             public uint16 v_vcol;
3789             public uint16 v_ccol;
3790         }
3791     }
3793     /*
3794      * Wireless Extensions (WEXT) Infrastructure
3795      */
3796     [CCode (cprefix = "", lower_case_cprefix = "")]
3797     namespace WirelessExtensions {
3799         [CCode (cname = "struct iw_point", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
3800         public struct IwPoint
3801         {
3802             public void *pointer;
3803             public uint16 length;
3804             public uint16 flags;
3805         }
3807         [CCode (cname = "struct iw_param", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
3808         public struct IwParam
3809         {
3810             public int32 value;
3811             public uint8 fixed;
3812             public uint8 disabled;
3813             public uint16 flags;
3814         }
3816         [CCode (cname = "struct iw_freq", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
3817         public struct IwFreq
3818         {
3819             public int32 m;
3820             public int16 e;
3821             public uint8 i;
3822             public uint8 flags;
3823         }
3825         [CCode (cname = "struct iw_quality", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
3826         public struct IwQuality
3827         {
3828             public uint8 qual;
3829             public uint8 level;
3830             public uint8 noise;
3831             public uint8 updated;
3832         }
3834         [CCode (cname = "struct iwreq_data", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
3835         public struct IwReqData
3836         {
3837             [CCode (array_length = false)]
3838             public string name;
3839             public IwPoint essid;
3840             public IwParam nwid;
3841             public IwFreq freq;
3842             public IwParam sens;
3843             public IwParam bitrate;
3844             public IwParam txpower;
3845             public IwParam rts;
3846             public IwParam frag;
3847             public uint32 mode;
3848             public IwParam retry;
3849             public IwPoint encoding;
3850             public IwParam power;
3851             public IwQuality qual;
3852             public Posix.SockAddr ap_addr;
3853             public Posix.SockAddr addr;
3854             public IwParam param;
3855             public IwPoint data;
3856         }
3858         [CCode (cname = "struct iwreq", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
3859         public struct IwReq
3860         {
3861             [CCode (array_length = false)]
3862             public char[] ifr_name;
3863             public IwReqData u;
3864         }
3866         /* constants */
3867         // TBD
3869         /* ioctls */
3870         [CCode (cheader_filename = "linux/wireless.h")]
3871         public const int SIOCSIWCOMMIT;
3872         [CCode (cheader_filename = "linux/wireless.h")]
3873         public const int SIOCGIWNAME;
3874         [CCode (cheader_filename = "linux/wireless.h")]
3875         public const int SIOCSIWNWID;
3876         [CCode (cheader_filename = "linux/wireless.h")]
3877         public const int SIOCGIWNWID;
3878         [CCode (cheader_filename = "linux/wireless.h")]
3879         public const int SIOCSIWFREQ;
3880         [CCode (cheader_filename = "linux/wireless.h")]
3881         public const int SIOCGIWFREQ;
3882         [CCode (cheader_filename = "linux/wireless.h")]
3883         public const int SIOCSIWMODE;
3884         [CCode (cheader_filename = "linux/wireless.h")]
3885         public const int SIOCGIWMODE;
3886         [CCode (cheader_filename = "linux/wireless.h")]
3887         public const int SIOCSIWSENS;
3888         [CCode (cheader_filename = "linux/wireless.h")]
3889         public const int SIOCGIWSENS;
3890         [CCode (cheader_filename = "linux/wireless.h")]
3891         public const int SIOCSIWRANGE;
3892         [CCode (cheader_filename = "linux/wireless.h")]
3893         public const int SIOCGIWRANGE;
3894         [CCode (cheader_filename = "linux/wireless.h")]
3895         public const int SIOCSIWPRIV;
3896         [CCode (cheader_filename = "linux/wireless.h")]
3897         public const int SIOCGIWPRIV;
3898         [CCode (cheader_filename = "linux/wireless.h")]
3899         public const int SIOCSIWSTATS;
3900         [CCode (cheader_filename = "linux/wireless.h")]
3901         public const int SIOCGIWSTATS;
3902         [CCode (cheader_filename = "linux/wireless.h")]
3903         public const int SIOCSIWSPY;
3904         [CCode (cheader_filename = "linux/wireless.h")]
3905         public const int SIOCGIWSPY;
3906         [CCode (cheader_filename = "linux/wireless.h")]
3907         public const int SIOCSIWTHRSPY;
3908         [CCode (cheader_filename = "linux/wireless.h")]
3909         public const int SIOCGIWTHRSPY;
3910         [CCode (cheader_filename = "linux/wireless.h")]
3911         public const int SIOCSIWAP;
3912         [CCode (cheader_filename = "linux/wireless.h")]
3913         public const int SIOCGIWAP;
3914         [CCode (cheader_filename = "linux/wireless.h")]
3915         public const int SIOCGIWAPLIST;
3916         [CCode (cheader_filename = "linux/wireless.h")]
3917         public const int SIOCSIWSCAN;
3918         [CCode (cheader_filename = "linux/wireless.h")]
3919         public const int SIOCGIWSCAN;
3920         [CCode (cheader_filename = "linux/wireless.h")]
3921         public const int SIOCSIWESSID;
3922         [CCode (cheader_filename = "linux/wireless.h")]
3923         public const int SIOCGIWESSID;
3924         [CCode (cheader_filename = "linux/wireless.h")]
3925         public const int SIOCSIWNICKN;
3926         [CCode (cheader_filename = "linux/wireless.h")]
3927         public const int SIOCGIWNICKN;
3928         [CCode (cheader_filename = "linux/wireless.h")]
3929         public const int SIOCSIWRATE;
3930         [CCode (cheader_filename = "linux/wireless.h")]
3931         public const int SIOCGIWRATE;
3932         [CCode (cheader_filename = "linux/wireless.h")]
3933         public const int SIOCSIWRTS;
3934         [CCode (cheader_filename = "linux/wireless.h")]
3935         public const int SIOCGIWRTS;
3936         [CCode (cheader_filename = "linux/wireless.h")]
3937         public const int SIOCSIWFRAG;
3938         [CCode (cheader_filename = "linux/wireless.h")]
3939         public const int SIOCGIWFRAG;
3940         [CCode (cheader_filename = "linux/wireless.h")]
3941         public const int SIOCSIWTXPOW;
3942         [CCode (cheader_filename = "linux/wireless.h")]
3943         public const int SIOCGIWTXPOW;
3944         [CCode (cheader_filename = "linux/wireless.h")]
3945         public const int SIOCSIWRETRY;
3946         [CCode (cheader_filename = "linux/wireless.h")]
3947         public const int SIOCGIWRETRY;
3948         [CCode (cheader_filename = "linux/wireless.h")]
3949         public const int SIOCSIWENCODE;
3950         [CCode (cheader_filename = "linux/wireless.h")]
3951         public const int SIOCGIWENCODE;
3952         [CCode (cheader_filename = "linux/wireless.h")]
3953         public const int SIOCSIWPOWER;
3954         [CCode (cheader_filename = "linux/wireless.h")]
3955         public const int SIOCGIWPOWER;
3956         [CCode (cheader_filename = "linux/wireless.h")]
3957         public const int SIOCSIWGENIE;
3958         [CCode (cheader_filename = "linux/wireless.h")]
3959         public const int SIOCGIWGENIE;
3960         [CCode (cheader_filename = "linux/wireless.h")]
3961         public const int SIOCSIWMLME;
3962         [CCode (cheader_filename = "linux/wireless.h")]
3963         public const int SIOCSIWAUTH;
3964         [CCode (cheader_filename = "linux/wireless.h")]
3965         public const int SIOCGIWAUTH;
3966         [CCode (cheader_filename = "linux/wireless.h")]
3967         public const int SIOCSIWENCODEEXT;
3968         [CCode (cheader_filename = "linux/wireless.h")]
3969         public const int SIOCGIWENCODEEXT;
3970         [CCode (cheader_filename = "linux/wireless.h")]
3971         public const int SIOCSIWPMKSA;
3972         [CCode (cheader_filename = "linux/wireless.h")]
3973         public const int SIOCIWFIRSTPRIV;
3974         [CCode (cheader_filename = "linux/wireless.h")]
3975         public const int SIOCIWLASTPRIV;
3976     }