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.
9
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.
14
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 */
19
20[CCode (cprefix = "", lower_case_cprefix = "")]
21namespace Linux {
22
23    /*
24     * Console
25     */
26    [CCode (cprefix = "", lower_case_cprefix = "")]
27    namespace Console {
28
29        /* constants */
30
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;
141
142        /* enums */
143
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        }
151
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        }
159
160        [CCode (cprefix = "K_", has_type_id = false, cheader_filename = "linux/kd.h")]
161        public enum LedMode {
162            SCROLLLOCK,
163            NUMLOCK,
164            CAPSLOCK
165        }
166
167        [CCode (cprefix = "LED_", has_type_id = false, cheader_filename = "linux/kd.h")]
168        public enum LedType {
169            SCR,
170            NUM,
171            CAP
172        }
173
174        [CCode (cprefix = "KD_", has_type_id = false, cheader_filename = "linux/kd.h")]
175        public enum TerminalMode {
176            TEXT,
177            GRAPHICS
178        }
179
180        [CCode (cprefix = "K_", has_type_id = false, cheader_filename = "linux/kd.h")]
181        public enum MetaMode {
182            METABIT,
183            ESCPREFIX
184        }
185
186        /* structs */
187
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        }
194
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        }
200
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        }
207
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        }
213
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        }
221
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        }
228
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        }
238
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        }
244
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        }
251
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        }
257
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        }
263
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        }
269
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        }
275
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    }
283
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    }
292
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);
297
298    /*
299     * Epoll
300     */
301    [CCode (cprefix = "EPOLL_", has_type_id = false, cheader_filename = "sys/epoll.h")]
302    public enum EpollFdFlags {
303        CLOEXEC,
304    }
305
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    }
313
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    }
319
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;
346
347    /*
348     * Framebuffer
349     */
350    [CCode (cprefix = "", lower_case_cprefix = "")]
351    namespace Framebuffer {
352
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;
394
395        /* enums */
396
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        }
405
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        }
419
420        [CCode (cname = "guint32", cprefix = "FB_ACCEL_", has_type_id = false, cheader_filename = "linux/fb.h")]
421        public enum Accel {
422            NONE
423        }
424
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        }
443
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        }
452
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        }
463
464        [CCode (cname = "guint32", cprefix = "ROP_", has_type_id = false, cheader_filename = "linux/fb.h")]
465        public enum Rop {
466            COPY,
467            XOR
468        }
469
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        }
477
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        }
487
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        }
497
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        }
509
510        /* structures */
511
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        }
518
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        }
528
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        }
534
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        }
540
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        }
550
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        }
560
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        }
570
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        }
583
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        }
600
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        }
630
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        }
638
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            }
666
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,
672
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            }
683
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,
688
689                DOUBLE,
690                TEARSYNC,
691                FORCE_VSYNC,
692                ENABLE_OVERLAY,
693                DISABLE_OVERLAY
694            }
695
696            [CCode (cname = "int", has_type_id = false, cprefix = "OMAPFB_MEMTYPE_")]
697            public enum MemType {
698                SDRAM,
699                SRAM,
700                MAX
701            }
702
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,
714
715                ARGB16,
716                RGB24U,
717                RGB24P,
718                ARGB32,
719                RGBA32,
720                RGBX32,
721            }
722
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            }
735
736            [CCode (cname = "enum omapfb_plane", has_type_id = false, cprefix = "OMAPFB_PLANE_")]
737            public enum Plane {
738                GFX,
739                VID1,
740                VID2
741            }
742
743            [CCode (cname = "enum omapfb_channel_out", has_type_id = false, cprefix = "OMAPFB_CHANNEL_OUT_")]
744            public enum ChannelOut {
745                LCD,
746                DIGIT
747            }
748
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            }
759
760            [CCode (cname = "struct omapfb_mem_info", has_type_id = false)]
761            public struct MemInfo {
762                public uint32 size;
763                public uint8 type;
764            }
765
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            }
772
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            }
779
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            }
787
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            }
797
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            }
807
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            }
819
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            }
826
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    }
834
835    // Non-Posix file control constants, -D _GNU_SOURCE
836    [CCode (cheader_filename = "fcntl.h", feature_test_macro = "_GNU_SOURCE")]
837    public const int O_DIRECT;
838    [CCode (cheader_filename = "fcntl.h", feature_test_macro = "_GNU_SOURCE")]
839    public const int O_NOATIME;
840    [CCode (cheader_filename = "fcntl.h", feature_test_macro = "_GNU_SOURCE")]
841    public const int O_PATH;
842    [CCode (cheader_filename = "fcntl.h", feature_test_macro = "_GNU_SOURCE")]
843    public const int O_TMPFILE;
844
845    /*
846     * Gsm
847     */
848    namespace Gsm {
849
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;
854
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    }
870
871    /*
872     * I2C and System Management Bus
873     */
874    [CCode (cprefix = "I2C_", lower_case_cprefix = "i2c_")]
875    namespace I2C {
876
877        const int SLAVE;
878
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            }
891
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    }
922
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    }
934
935    [Flags, CCode (cname = "int", cprefix = "IN_", has_type_id = false, cheader_filename = "sys/inotify.h")]
936
937    public enum InotifyFlags {
938        CLOEXEC,
939        NONBLOCK
940    }
941
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    }
967
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);
972
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    }
984
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    }
992
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    }
999
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        GPS,
1009        FM,
1010        NFC
1011    }
1012
1013    /*
1014     * SignalFd
1015     */
1016    [CCode (cprefix = "SFD_", has_type_id = false, cheader_filename = "sys/signalfd.h")]
1017    public enum SignalFdFlags {
1018        CLOEXEC,
1019        NONBLOCK
1020    }
1021
1022    [CCode (cheader_filename = "sys/signalfd.h")]
1023    public int signalfd (int fd, Posix.sigset_t mask, SignalFdFlags flags = 0);
1024
1025    /*
1026     * Misc non-posix additions
1027     */
1028    [CCode (cheader_filename = "dirent.h", has_type_id = false)]
1029    public enum DirEntType {
1030        DT_UNKNOWN,
1031        DT_FIFO,
1032        DT_CHR,
1033        DT_DIR,
1034        DT_BLK,
1035        DT_REG,
1036        DT_LNK,
1037        DT_SOCK,
1038        DT_WHT
1039    }
1040
1041    [CCode (cheader_filename = "errno.h", feature_test_macro = "_GNU_SOURCE")]
1042    public const string program_invocation_name;
1043    [CCode (cheader_filename = "errno.h", feature_test_macro = "_GNU_SOURCE")]
1044    public const string program_invocation_short_name;
1045
1046    [Version (deprecated_since = "vala-0.26", replacement = "Backtrace.get"), CCode (cheader_filename = "execinfo.h")]
1047    public int backtrace (void* buffer, int size);
1048
1049    [Version (deprecated_since = "vala-0.26", replacement = "Backtrace.symbols"), CCode (cheader_filename = "execinfo.h", array_length = false)]
1050    public (unowned string)[]? backtrace_symbols (void* buffer, int size);
1051
1052    [Version (deprecated_since = "vala-0.26", replacement = "Backtrace.symbols_fd"), CCode (cheader_filename = "execinfo.h")]
1053    public void backtrace_symbols_fd (void* buffer, int size, int fd);
1054
1055    namespace Backtrace {
1056      [CCode (cname = "backtrace", cheader_filename = "execinfo.h")]
1057      public int @get (void*[] buffer);
1058      [CCode (cname = "backtrace_symbols", cheader_filename = "execinfo.h", array_length = false)]
1059      private (unowned string)[]? _symbols (void*[] buffer);
1060      [CCode (cname = "_vala_backtrace_symbols")]
1061      public (unowned string)[]? symbols (void*[] buffer) {
1062        (unowned string)[]? s = _symbols (buffer);
1063        s.length = buffer.length;
1064        return s;
1065      }
1066      [CCode (cheader_filename = "execinfo.h")]
1067      public void symbols_fd (void*[] buffer, int fd);
1068    }
1069
1070    [CCode (cheader_filename = "signal.h")]
1071    public void psiginfo (Posix.siginfo_t pinfo, string message);
1072
1073    [CCode (cheader_filename = "unistd.h", feature_test_macro = "_GNU_SOURCE")]
1074    public int dup3 (int oldfd, int newfd, int flags);
1075
1076    [CCode (cheader_filename = "sys/types.h,unistd.h")]
1077    public int getgroups ([CCode (array_length_pos = 0.9)] Posix.gid_t[]? list = null);
1078    [CCode (cheader_filename = "unistd.h", feature_test_macro = "_GNU_SOURCE")]
1079    public int getresgid (out Posix.gid_t rgid, out Posix.gid_t egid, out Posix.gid_t sgid);
1080    [CCode (cheader_filename = "unistd.h", feature_test_macro = "_GNU_SOURCE")]
1081    public int getresuid (out Posix.uid_t ruid, out Posix.uid_t euid, out Posix.uid_t suid);
1082    [CCode (cheader_filename = "sys/types.h,grp.h,unistd.h")]
1083    public int setgroups ([CCode (array_length_pos = 0.9)] Posix.gid_t[] list);
1084    [CCode (cheader_filename = "unistd.h", feature_test_macro = "_GNU_SOURCE")]
1085    public int setresgid (Posix.gid_t rgid, Posix.gid_t egid, Posix.gid_t sgid);
1086    [CCode (cheader_filename = "unistd.h", feature_test_macro = "_GNU_SOURCE")]
1087    public int setresuid (Posix.uid_t ruid, Posix.uid_t euid, Posix.uid_t suid);
1088
1089    [CCode (cheader_filename = "unistd.h")]
1090    public int sethostname (string name, size_t len);
1091
1092    // additional sysconf(3) constants
1093    [CCode (cheader_filename = "unistd.h")]
1094    public const int _SC_PHYS_PAGES;
1095    [CCode (cheader_filename = "unistd.h")]
1096    public const int _SC_AVPHYS_PAGES;
1097    [CCode (cheader_filename = "unistd.h")]
1098    public const int _SC_NPROCESSORS_CONF;
1099    [CCode (cheader_filename = "unistd.h")]
1100    public const int _SC_NPROCESSORS_ONLN;
1101
1102    [CCode (cheader_filename = "arpa/inet.h")]
1103    public int inet_aton (string cp, out Posix.InAddr addr);
1104
1105    [CCode (cheader_filename = "sys/ioctl.h", sentinel = "")]
1106    public int ioctl (int fd, int request, ...);
1107
1108    [CCode (cname = "makedev", cheader_filename = "sys/types.h")]
1109    public Posix.dev_t makedev (int maj, int min);
1110    [CCode (cname = "major", cheader_filename = "sys/types.h")]
1111    public int major (Posix.dev_t dev);
1112    [CCode (cname = "minor", cheader_filename = "sys/types.h")]
1113    public int minor (Posix.dev_t dev);
1114
1115    [CCode (cname = "unsigned long int", cprefix = "MS_", has_type_id = false, cheader_filename = "sys/mount.h,linux/fs.h")]
1116    public enum MountFlags {
1117        RDONLY,
1118        NOSUID,
1119        NODEV,
1120        NOEXEC,
1121        SYNCHRONOUS,
1122        REMOUNT,
1123        MANDLOCK,
1124        DIRSYNC,
1125        NOATIME,
1126        NODIRATIME,
1127        BIND,
1128        MOVE,
1129        REC,
1130        SILENT,
1131        POSIXACL,
1132        UNBINDABLE,
1133        PRIVATE,
1134        SLAVE,
1135        SHARED,
1136        RELATIME,
1137        KERNMOUNT,
1138        I_VERSION,
1139        STRICTATIME,
1140        BORN,
1141        ACTIVE,
1142        NOUSER
1143    }
1144
1145    [CCode (cname = "int", cprefix = "MNT_", has_type_id = false, cheader_filename = "sys/mount.h")]
1146    public enum UnmountFlags {
1147        FORCE,                /* Force unmounting.  */
1148        DETACH,               /* Just detach from the tree.  */
1149        EXPIRE                /* Mark for expiry.  */
1150    }
1151
1152    [CCode (cheader_filename = "sys/mount.h")]
1153    public int mount (string source, string target, string filesystemtype, MountFlags flags = 0, string options = "");
1154    [CCode (cheader_filename = "sys/mount.h")]
1155    public int umount (string target);
1156    [CCode (cheader_filename = "sys/mount.h")]
1157    public int umount2 (string target, UnmountFlags flags);
1158
1159    [CCode (cname = "struct winsize", has_type_id = false, cheader_filename = "termios.h", destroy_function = "")]
1160    public struct winsize {
1161        public ushort ws_row;
1162        public ushort ws_col;
1163        public ushort ws_xpixel;
1164        public ushort ws_ypixel;
1165    }
1166
1167    [CCode (cheader_filename = "pty.h")]
1168    public Posix.pid_t forkpty (out int amaster,
1169                                [CCode (array_length=false, array_null_terminated=true)] char[] name,
1170                                Posix.termios? termp,
1171                                winsize? winp);
1172
1173    [CCode (cheader_filename = "pty.h")]
1174    public int openpty (out int amaster,
1175                        out int aslave,
1176                        [CCode (array_length=false, array_null_terminated=true)] char[] name,
1177                        Posix.termios? termp,
1178                        winsize? winp);
1179
1180    [CCode (cprefix = "RB_", has_type_id = false, cheader_filename = "unistd.h,sys/reboot.h")]
1181    public enum RebootCommands {
1182         AUTOBOOT,
1183         HALT_SYSTEM,
1184         ENABLE_CAD,
1185         DISABLE_CAD,
1186         POWER_OFF
1187    }
1188
1189    [CCode (cheader_filename = "unistd.h,sys/reboot.h")]
1190    public int reboot (RebootCommands cmd);
1191
1192    [CCode (cprefix = "CLONE_", has_type_id = false, cheader_filename = "sched.h")]
1193    public enum CloneFlags {
1194        FILES,
1195        FS,
1196        NEWNS
1197    }
1198
1199    [CCode (cheader_filename = "sched.h")]
1200    public int unshare (CloneFlags flags);
1201
1202    [CCode (cheader_filename = "sys/time.h")]
1203    public int adjtime (Posix.timeval delta, Posix.timeval? olddelta = null);
1204
1205    // adjtimex(2)
1206    [CCode (cprefix = "ADJ_", has_type_id = false, cheader_filename = "sys/timex.h")]
1207    public enum AdjustModes {
1208        OFFSET,
1209        FREQUENCY,
1210        MAXERROR,
1211        ESTERROR,
1212        STATUS,
1213        TIMECONST,
1214        TICK,
1215        OFFSET_SINGLESHOT
1216    }
1217
1218    [CCode (cheader_filename = "sys/timex.h")]
1219    public const int TIME_OK;
1220    [CCode (cheader_filename = "sys/timex.h")]
1221    public const int TIME_INS;
1222    [CCode (cheader_filename = "sys/timex.h")]
1223    public const int TIME_DEL;
1224    [CCode (cheader_filename = "sys/timex.h")]
1225    public const int TIME_OOP;
1226    [CCode (cheader_filename = "sys/timex.h")]
1227    public const int TIME_WAIT;
1228    [CCode (cheader_filename = "sys/timex.h")]
1229    public const int TIME_BAD;
1230
1231    // adjtimex(2)
1232    [CCode (cname = "struct timex", has_type_id = false, cheader_filename = "sys/timex.h")]
1233    public struct timex {
1234        public AdjustModes modes;   /* mode selector */
1235        public long offset;         /* time offset (usec) */
1236        public long freq;           /* frequency offset (scaled ppm) */
1237        public long maxerror;       /* maximum error (usec) */
1238        public long esterror;       /* estimated error (usec) */
1239        public int status;          /* clock command/status */
1240        public long constant;       /* pll time constant */
1241        public long precision;      /* clock precision (usec) (read-only) */
1242        public long tolerance;      /* clock frequency tolerance (ppm) (read-only) */
1243        public Posix.timeval time;  /* current time (read-only) */
1244        public long tick;           /* usecs between clock ticks */
1245    }
1246
1247    [CCode (cheader_filename = "sys/timex.h")]
1248    public int adjtimex (Linux.timex buf);
1249
1250    [CCode (cheader_filename = "time.h")]
1251    public time_t timegm (GLib.Time t);
1252
1253    [CCode (cheader_filename = "time.h")]
1254    public const Posix.clockid_t CLOCK_MONOTONIC_RAW;
1255
1256    [CCode (cheader_filename = "utmp.h")]
1257    public int login_tty (int fd);
1258
1259    // emulate gettid(2) for which no glib wrapper exists via syscall
1260    public Posix.pid_t gettid() {
1261        return (Posix.pid_t) syscall( SysCall.gettid );
1262    }
1263
1264    // syscall(2)
1265    [CCode (cprefix = "SYS_", has_type_id = false, cname = "int")]
1266    public enum SysCall {
1267        gettid
1268    }
1269
1270    [CCode (cname = "syscall", cheader_filename = "unistd.h,sys/syscall.h")]
1271    public int syscall (int number, ...);
1272
1273    // mremap(2)
1274    [CCode (cprefix = "MREMAP_", has_type_id = false, cheader_filename = "sys/mman.h")]
1275    public enum MremapFlags {
1276        MAYMOVE,
1277        FIXED
1278    }
1279
1280    [CCode (cheader_filename = "sys/mman.h")]
1281    public void *mremap (void *old_address, size_t old_size, size_t new_size, MremapFlags flags);
1282
1283    /*
1284     * Network
1285     */
1286    [CCode (cprefix = "", lower_case_cprefix = "")]
1287    namespace Network {
1288
1289        // interface consts, structs, and methods
1290        [CCode (cname = "IFNAMSIZ", cheader_filename = "sys/socket.h,linux/if.h")]
1291        public const int INTERFACE_NAME_SIZE;
1292
1293        [CCode (cheader_filename = "net/if.h")]
1294        public uint if_nametoindex (string ifname);
1295        [CCode (cheader_filename = "net/if.h")]
1296        public unowned string if_indextoname (uint ifindex, string ifname);
1297        [CCode (cheader_filename = "net/if.h")]
1298        public IfNameindex if_nameindex ();
1299
1300        [CCode (cname = "int", cprefix = "IFF_", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h")]
1301        public enum IfFlag {
1302            UP,
1303            BROADCAST,
1304            DEBUG,
1305            LOOPBACK,
1306            POINTOPOINT,
1307            NOTRAILERS,
1308            RUNNING,
1309            NOARP,
1310            PROMISC,
1311            ALLMULTI,
1312            MASTER,
1313            SLAVE,
1314            PORTSEL,
1315            AUTOMEDIA,
1316            DYNAMIC
1317        }
1318
1319        [CCode (cname = "struct if_nameindex", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h", destroy_function = "if_freenameindex")]
1320        public struct IfNameindex {
1321            public uint if_index;
1322            public string if_name;
1323        }
1324
1325        [CCode (cname = "struct ifmap", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h", destroy_function = "")]
1326        public struct IfMap {
1327            public ulong mem_start;
1328            public ulong mem_end;
1329            public short base_addr;
1330            public uchar irq;
1331            public uchar dma;
1332            public uchar port;
1333        }
1334
1335        [CCode (cname = "struct ifreq", has_type_id = false, cheader_filename = "netinet/in.h,linux/if.h", destroy_function = "")]
1336        public struct IfReq {
1337            [CCode (array_length = false)]
1338            public char[] ifr_name;
1339            public Posix.SockAddr ifr_addr;
1340            public Posix.SockAddr ifr_dstaddr;
1341            public Posix.SockAddr ifr_broadaddr;
1342            public Posix.SockAddr ifr_netmask;
1343            public Posix.SockAddr ifr_hwaddr;
1344            public short ifr_flags;
1345            public int ifr_metric;
1346            public int ifr_mtu;
1347            public IfMap ifr_map;
1348            public char[] ifr_slave;
1349            public string ifr_data;
1350            public int ifr_ifindex;
1351            public int ifr_bandwidth;
1352            public int ifr_qlen;
1353            public char[] ifr_newname;
1354        }
1355
1356        [CCode (cname = "struct ifconf", has_type_id = false, cheader_filename = "sys/socket.h,linux/if.h", destroy_function = "")]
1357        public struct IfConf {
1358            public int ifc_len;
1359            public string ifc_buf;
1360            public IfReq ifc_req;
1361        }
1362
1363        [CCode (cname = "struct ifaddrmsg", has_type_id = false, cheader_filename = "linux/if_addr.h", destroy_function = "")]
1364        public struct IfAddrMsg {
1365            public uint8 ifa_family;
1366            public uint8 ifa_prefixlen;
1367            public uint8 ifa_flags;
1368            public uint8 ifa_scope;
1369            public uint32 ifa_index;
1370        }
1371
1372        [Compact, CCode (cname = "struct ifaddrs", cheader_filename = "sys/types.h,ifaddrs.h", free_function = "freeifaddrs", has_type_id = false)]
1373        public class IfAddrs {
1374                public unowned IfAddrs? ifa_next;
1375                public string ifa_name;
1376                public uint ifa_flags;
1377                public Posix.SockAddr? ifa_addr;
1378                public Posix.SockAddr? ifa_netmask;
1379                [CCode (cname = "ifa_ifu.ifu_broadaddr")]
1380                public Posix.SockAddr? ifa_ifu_broadaddr;
1381                [CCode (cname = "ifa_ifu.ifu_dstaddr")]
1382                public Posix.SockAddr? ifa_ifu_dstaddr;
1383                public void* ifa_data;
1384        }
1385
1386        [CCode (cname = "getifaddrs")]
1387        public static int getifaddrs (out IfAddrs ifap);
1388
1389        [CCode (cprefix = "IFA_", has_type_id = false, cheader_filename = "linux/if_addr.h")]
1390        public enum IfAddrType {
1391            UNSPEC,
1392            ADDRESS,
1393            LOCAL,
1394            LABEL,
1395            BROADCAST,
1396            ANYCAST,
1397            CACHEINFO,
1398            MULTICAST
1399        }
1400
1401        [CCode (cheader_filename = "linux/if_addr.h")]
1402        public int IFA_PAYLOAD (Linux.Netlink.NlMsgHdr nlh);
1403        [CCode (cheader_filename = "linux/if_addr.h")]
1404        public Linux.Netlink.RtAttr* IFA_RTA (Linux.Network.IfAddrMsg* msg);
1405
1406        [CCode (cprefix = "ARPHRD_", has_type_id = false, cheader_filename = "linux/if_arp.h")]
1407        public enum IfArpHeaderType {
1408            NETROM,
1409            ETHER,
1410            EETHER,
1411            AX25,
1412            PRONET,
1413            CHAOS,
1414            IEEE802,
1415            ARCNET,
1416            APPLETLK,
1417            DLCI,
1418            ATM,
1419            METRICOM,
1420            IEEE1394,
1421            EUI64,
1422            INFINIBAND,
1423            SLIP,
1424            CSLIP,
1425            SLIP6,
1426            CSLIP6,
1427            RSRVD,
1428            ADAPT,
1429            ROSE,
1430            X25,
1431            HWX25,
1432            CAN,
1433            PPP,
1434            CISCO,
1435            HDLC,
1436            LAPB,
1437            DDCMP,
1438            RAWHDLC,
1439            TUNNEL,
1440            TUNNEL6,
1441            FRAD,
1442            SKIP,
1443            LOOPBACK,
1444            LOCALTLK,
1445            FDDI,
1446            BIF,
1447            SIT,
1448            IPDDP,
1449            IPGRE,
1450            PIMREG,
1451            HIPPI,
1452            ASH,
1453            ECONET,
1454            IRDA,
1455            FCPP,
1456            FCAL,
1457            FCPL,
1458            FCFABRIC,
1459            IEEE802_TR,
1460            IEEE80211,
1461            IEEE80211_PRISM,
1462            IEEE80211_RADIOTAP,
1463            IEEE802154,
1464            PHONET,
1465            PHONET_PIPE,
1466            CAIF,
1467            VOID,
1468            NONE
1469        }
1470
1471        [CCode (cprefix = "ARPOP_", has_type_id = false, cheader_filename = "linux/if_arp.h")]
1472        public enum IfArpOpcode {
1473            REQUEST,
1474            REPLY,
1475            RREQUEST,
1476            RREPLY,
1477            InREQUEST,
1478            InREPLY,
1479            ARPOP_NAK
1480        }
1481
1482        // route consts, structs, and methods
1483        [CCode (cname = "struct rtentry", has_type_id = false, cheader_filename = "net/route.h", destroy_function = "")]
1484        public struct RtEntry {
1485            public Posix.SockAddr rt_dst;
1486            public Posix.SockAddr rt_gateway;
1487            public Posix.SockAddr rt_genmask;
1488            public RtFlag rt_flags;
1489            public short rt_metric;
1490            public string rt_dev;
1491            public ulong rt_mtu;
1492            public ulong rt_window;
1493            public ushort rt_irtt;
1494        }
1495
1496        [CCode (cname = "ushort", cprefix = "RTF_", has_type_id = false, cheader_filename = "net/route.h")]
1497        public enum RtFlag {
1498            UP,
1499            GATEWAY,
1500            HOST,
1501            REINSTATE,
1502            DYNAMIC,
1503            MODIFIED,
1504            MTU,
1505            WINDOW,
1506            IRTT,
1507            REJECT,
1508            STATIC,
1509            XRESOLVE,
1510            NOFORWARD,
1511            THROW,
1512            NOPMTUDISC
1513        }
1514
1515        /* ioctls */
1516        [CCode (cheader_filename = "sys/ioctl.h")]
1517        public const int SIOCADDRT;
1518        [CCode (cheader_filename = "sys/ioctl.h")]
1519        public const int SIOCDELRT;
1520        [CCode (cheader_filename = "sys/ioctl.h")]
1521        public const int SIOCRTMSG;
1522        [CCode (cheader_filename = "sys/ioctl.h")]
1523        public const int SIOCGIFNAME;
1524        [CCode (cheader_filename = "sys/ioctl.h")]
1525        public const int SIOCSIFLINK;
1526        [CCode (cheader_filename = "sys/ioctl.h")]
1527        public const int SIOCGIFCONF;
1528        [CCode (cheader_filename = "sys/ioctl.h")]
1529        public const int SIOCGIFFLAGS;
1530        [CCode (cheader_filename = "sys/ioctl.h")]
1531        public const int SIOCSIFFLAGS;
1532        [CCode (cheader_filename = "sys/ioctl.h")]
1533        public const int SIOCGIFADDR;
1534        [CCode (cheader_filename = "sys/ioctl.h")]
1535        public const int SIOCSIFADDR;
1536        [CCode (cheader_filename = "sys/ioctl.h")]
1537        public const int SIOCGIFDSTADDR;
1538        [CCode (cheader_filename = "sys/ioctl.h")]
1539        public const int SIOCSIFDSTADDR;
1540        [CCode (cheader_filename = "sys/ioctl.h")]
1541        public const int SIOCGIFBRDADDR;
1542        [CCode (cheader_filename = "sys/ioctl.h")]
1543        public const int SIOCSIFBRDADDR;
1544        [CCode (cheader_filename = "sys/ioctl.h")]
1545        public const int SIOCGIFNETMASK;
1546        [CCode (cheader_filename = "sys/ioctl.h")]
1547        public const int SIOCSIFNETMASK;
1548        [CCode (cheader_filename = "sys/ioctl.h")]
1549        public const int SIOCGIFMETRIC;
1550        [CCode (cheader_filename = "sys/ioctl.h")]
1551        public const int SIOCSIFMETRIC;
1552        [CCode (cheader_filename = "sys/ioctl.h")]
1553        public const int SIOCGIFMEM;
1554        [CCode (cheader_filename = "sys/ioctl.h")]
1555        public const int SIOCSIFMEM;
1556        [CCode (cheader_filename = "sys/ioctl.h")]
1557        public const int SIOCGIFMTU;
1558        [CCode (cheader_filename = "sys/ioctl.h")]
1559        public const int SIOCSIFMTU;
1560        [CCode (cheader_filename = "sys/ioctl.h")]
1561        public const int SIOCSIFNAME;
1562        [CCode (cheader_filename = "sys/ioctl.h")]
1563        public const int SIOCSIFHWADDR;
1564        [CCode (cheader_filename = "sys/ioctl.h")]
1565        public const int SIOCGIFENCAP;
1566        [CCode (cheader_filename = "sys/ioctl.h")]
1567        public const int SIOCSIFENCAP;
1568        [CCode (cheader_filename = "sys/ioctl.h")]
1569        public const int SIOCGIFHWADDR;
1570        [CCode (cheader_filename = "sys/ioctl.h")]
1571        public const int SIOCGIFSLAVE;
1572        [CCode (cheader_filename = "sys/ioctl.h")]
1573        public const int SIOCSIFSLAVE;
1574        [CCode (cheader_filename = "sys/ioctl.h")]
1575        public const int SIOCADDMULTI;
1576        [CCode (cheader_filename = "sys/ioctl.h")]
1577        public const int SIOCDELMULTI;
1578        [CCode (cheader_filename = "sys/ioctl.h")]
1579        public const int SIOCGIFINDEX;
1580        [CCode (cheader_filename = "sys/ioctl.h")]
1581        public const int SIOCSIFPFLAGS;
1582        [CCode (cheader_filename = "sys/ioctl.h")]
1583        public const int SIOCGIFPFLAGS;
1584        [CCode (cheader_filename = "sys/ioctl.h")]
1585        public const int SIOCDIFADDR;
1586        [CCode (cheader_filename = "sys/ioctl.h")]
1587        public const int SIOCSIFHWBROADCAST;
1588        [CCode (cheader_filename = "sys/ioctl.h")]
1589        public const int SIOCGIFCOUNT;
1590        [CCode (cheader_filename = "sys/ioctl.h")]
1591        public const int SIOCGIFBR;
1592        [CCode (cheader_filename = "sys/ioctl.h")]
1593        public const int SIOCSIFBR;
1594        [CCode (cheader_filename = "sys/ioctl.h")]
1595        public const int SIOCGIFTXQLEN;
1596        [CCode (cheader_filename = "sys/ioctl.h")]
1597        public const int SIOCSIFTXQLEN;
1598        [CCode (cheader_filename = "sys/ioctl.h")]
1599        public const int SIOCDARP;
1600        [CCode (cheader_filename = "sys/ioctl.h")]
1601        public const int SIOCGARP;
1602        [CCode (cheader_filename = "sys/ioctl.h")]
1603        public const int SIOCSARP;
1604        [CCode (cheader_filename = "sys/ioctl.h")]
1605        public const int SIOCDRARP;
1606        [CCode (cheader_filename = "sys/ioctl.h")]
1607        public const int SIOCGRARP;
1608        [CCode (cheader_filename = "sys/ioctl.h")]
1609        public const int SIOCSRARP;
1610        [CCode (cheader_filename = "sys/ioctl.h")]
1611        public const int SIOCGIFMAP;
1612        [CCode (cheader_filename = "sys/ioctl.h")]
1613        public const int SIOCSIFMAP;
1614        [CCode (cheader_filename = "sys/ioctl.h")]
1615        public const int SIOCADDDLCI;
1616        [CCode (cheader_filename = "sys/ioctl.h")]
1617        public const int SIOCDELDLCI;
1618    }
1619
1620    /*
1621     * Input subsystem
1622     */
1623    [CCode (cprefix = "", lower_case_cprefix = "")]
1624    namespace Input {
1625
1626        /*
1627         * subsystem structures
1628         */
1629
1630        [CCode (cname = "struct input_event", has_type_id = false, cheader_filename = "linux/input.h")]
1631        public struct Event {
1632            public Posix.timeval time;
1633            public uint16 type;
1634            public uint16 code;
1635            public int32 value;
1636        }
1637
1638        [CCode (cname = "struct input_id", has_type_id = false, cheader_filename = "linux/input.h")]
1639        public struct Id {
1640            public uint16 bustype;
1641            public uint16 vendor;
1642            public uint16 product;
1643            public uint16 version;
1644        }
1645
1646        [CCode (cname = "struct input_absinfo", has_type_id = false, cheader_filename = "linux/input.h")]
1647        public struct AbsInfo {
1648            public int32 value;
1649            public int32 minimum;
1650            public int32 maximum;
1651            public int32 fuzz;
1652            public int32 flat;
1653        }
1654
1655        /*
1656         * ioctls
1657         */
1658
1659        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1660        public const int EVIOCGVERSION;
1661        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1662        public const int EVIOCGID;
1663        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1664        public const int EVIOCGREP;
1665        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1666        public const int EVIOCSREP;
1667        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1668        public const int EVIOCGKEYCODE;
1669        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1670        public const int EVIOCSKEYCODE;
1671
1672        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1673        public int EVIOCGNAME( uint len );
1674        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1675        public int EVIOCGPHYS( uint len );
1676        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1677        public int EVIOCGUNIQ( uint len );
1678
1679        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1680        public int EVIOCGKEY( uint len );
1681        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1682        public int EVIOCGLED( uint len );
1683        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1684        public int EVIOCGSND( uint len );
1685        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1686        public int EVIOCGSW( uint len );
1687
1688        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1689        public int EVIOCGBIT( uint ev, uint len );
1690        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1691        public int EVIOCGABS( uint abs );
1692        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1693        public int EVIOCSABS( uint abs );
1694
1695        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1696        public const int EVIOCSFF;
1697        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1698        public const int EVIOCRMFF;
1699        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1700        public const int EVIOCGEFFECTS;
1701        [CCode (cheader_filename = "linux/input.h,sys/ioctl.h")]
1702        public const int EVIOCGRAB;
1703
1704        /*
1705         * event types
1706         */
1707
1708        [CCode (cheader_filename = "linux/input.h")]
1709        public const uint16 EV_SYN;
1710        [CCode (cheader_filename = "linux/input.h")]
1711        public const uint16 EV_KEY;
1712        [CCode (cheader_filename = "linux/input.h")]
1713        public const uint16 EV_REL;
1714        [CCode (cheader_filename = "linux/input.h")]
1715        public const uint16 EV_ABS;
1716        [CCode (cheader_filename = "linux/input.h")]
1717        public const uint16 EV_MSC;
1718        [CCode (cheader_filename = "linux/input.h")]
1719        public const uint16 EV_SW;
1720        [CCode (cheader_filename = "linux/input.h")]
1721        public const uint16 EV_LED;
1722        [CCode (cheader_filename = "linux/input.h")]
1723        public const uint16 EV_SND;
1724        [CCode (cheader_filename = "linux/input.h")]
1725        public const uint16 EV_REP;
1726        [CCode (cheader_filename = "linux/input.h")]
1727        public const uint16 EV_FF;
1728        [CCode (cheader_filename = "linux/input.h")]
1729        public const uint16 EV_PWR;
1730        [CCode (cheader_filename = "linux/input.h")]
1731        public const uint16 EV_FF_STATUS;
1732        [CCode (cheader_filename = "linux/input.h")]
1733        public const uint16 EV_MAX;
1734
1735        /*
1736         * synchronization events
1737         */
1738
1739        [CCode (cheader_filename = "linux/input.h")]
1740        public const int SYN_REPORT;
1741        [CCode (cheader_filename = "linux/input.h")]
1742        public const int SYN_CONFIG;
1743        [CCode (cheader_filename = "linux/input.h")]
1744        public const int SYN_MT_REPORT;
1745        [CCode (cheader_filename = "linux/input.h")]
1746        public const int SYN_DROPPED;
1747        [CCode (cheader_filename = "linux/input.h")]
1748        public const int SYN_MAX;
1749
1750        /*
1751         * keys, switches, buttons, etc.
1752         */
1753
1754        [CCode (cheader_filename = "linux/input.h")]
1755        public const int KEY_RESERVED;
1756        [CCode (cheader_filename = "linux/input.h")]
1757        public const int KEY_ESC;
1758        [CCode (cheader_filename = "linux/input.h")]
1759        public const int KEY_1;
1760        [CCode (cheader_filename = "linux/input.h")]
1761        public const int KEY_2;
1762        [CCode (cheader_filename = "linux/input.h")]
1763        public const int KEY_3;
1764        [CCode (cheader_filename = "linux/input.h")]
1765        public const int KEY_4;
1766        [CCode (cheader_filename = "linux/input.h")]
1767        public const int KEY_5;
1768        [CCode (cheader_filename = "linux/input.h")]
1769        public const int KEY_6;
1770        [CCode (cheader_filename = "linux/input.h")]
1771        public const int KEY_7;
1772        [CCode (cheader_filename = "linux/input.h")]
1773        public const int KEY_8;
1774        [CCode (cheader_filename = "linux/input.h")]
1775        public const int KEY_9;
1776        [CCode (cheader_filename = "linux/input.h")]
1777        public const int KEY_0;
1778        [CCode (cheader_filename = "linux/input.h")]
1779        public const int KEY_MINUS;
1780        [CCode (cheader_filename = "linux/input.h")]
1781        public const int KEY_EQUAL;
1782        [CCode (cheader_filename = "linux/input.h")]
1783        public const int KEY_BACKSPACE;
1784        [CCode (cheader_filename = "linux/input.h")]
1785        public const int KEY_TAB;
1786        [CCode (cheader_filename = "linux/input.h")]
1787        public const int KEY_Q;
1788        [CCode (cheader_filename = "linux/input.h")]
1789        public const int KEY_W;
1790        [CCode (cheader_filename = "linux/input.h")]
1791        public const int KEY_E;
1792        [CCode (cheader_filename = "linux/input.h")]
1793        public const int KEY_R;
1794        [CCode (cheader_filename = "linux/input.h")]
1795        public const int KEY_T;
1796        [CCode (cheader_filename = "linux/input.h")]
1797        public const int KEY_Y;
1798        [CCode (cheader_filename = "linux/input.h")]
1799        public const int KEY_U;
1800        [CCode (cheader_filename = "linux/input.h")]
1801        public const int KEY_I;
1802        [CCode (cheader_filename = "linux/input.h")]
1803        public const int KEY_O;
1804        [CCode (cheader_filename = "linux/input.h")]
1805        public const int KEY_P;
1806        [CCode (cheader_filename = "linux/input.h")]
1807        public const int KEY_LEFTBRACE;
1808        [CCode (cheader_filename = "linux/input.h")]
1809        public const int KEY_RIGHTBRACE;
1810        [CCode (cheader_filename = "linux/input.h")]
1811        public const int KEY_ENTER;
1812        [CCode (cheader_filename = "linux/input.h")]
1813        public const int KEY_LEFTCTRL;
1814        [CCode (cheader_filename = "linux/input.h")]
1815        public const int KEY_A;
1816        [CCode (cheader_filename = "linux/input.h")]
1817        public const int KEY_S;
1818        [CCode (cheader_filename = "linux/input.h")]
1819        public const int KEY_D;
1820        [CCode (cheader_filename = "linux/input.h")]
1821        public const int KEY_F;
1822        [CCode (cheader_filename = "linux/input.h")]
1823        public const int KEY_G;
1824        [CCode (cheader_filename = "linux/input.h")]
1825        public const int KEY_H;
1826        [CCode (cheader_filename = "linux/input.h")]
1827        public const int KEY_J;
1828        [CCode (cheader_filename = "linux/input.h")]
1829        public const int KEY_K;
1830        [CCode (cheader_filename = "linux/input.h")]
1831        public const int KEY_L;
1832        [CCode (cheader_filename = "linux/input.h")]
1833        public const int KEY_SEMICOLON;
1834        [CCode (cheader_filename = "linux/input.h")]
1835        public const int KEY_APOSTROPHE;
1836        [CCode (cheader_filename = "linux/input.h")]
1837        public const int KEY_GRAVE;
1838        [CCode (cheader_filename = "linux/input.h")]
1839        public const int KEY_LEFTSHIFT;
1840        [CCode (cheader_filename = "linux/input.h")]
1841        public const int KEY_BACKSLASH;
1842        [CCode (cheader_filename = "linux/input.h")]
1843        public const int KEY_Z;
1844        [CCode (cheader_filename = "linux/input.h")]
1845        public const int KEY_X;
1846        [CCode (cheader_filename = "linux/input.h")]
1847        public const int KEY_C;
1848        [CCode (cheader_filename = "linux/input.h")]
1849        public const int KEY_V;
1850        [CCode (cheader_filename = "linux/input.h")]
1851        public const int KEY_B;
1852        [CCode (cheader_filename = "linux/input.h")]
1853        public const int KEY_N;
1854        [CCode (cheader_filename = "linux/input.h")]
1855        public const int KEY_M;
1856        [CCode (cheader_filename = "linux/input.h")]
1857        public const int KEY_COMMA;
1858        [CCode (cheader_filename = "linux/input.h")]
1859        public const int KEY_DOT;
1860        [CCode (cheader_filename = "linux/input.h")]
1861        public const int KEY_SLASH;
1862        [CCode (cheader_filename = "linux/input.h")]
1863        public const int KEY_RIGHTSHIFT;
1864        [CCode (cheader_filename = "linux/input.h")]
1865        public const int KEY_KPASTERISK;
1866        [CCode (cheader_filename = "linux/input.h")]
1867        public const int KEY_LEFTALT;
1868        [CCode (cheader_filename = "linux/input.h")]
1869        public const int KEY_SPACE;
1870        [CCode (cheader_filename = "linux/input.h")]
1871        public const int KEY_CAPSLOCK;
1872        [CCode (cheader_filename = "linux/input.h")]
1873        public const int KEY_F1;
1874        [CCode (cheader_filename = "linux/input.h")]
1875        public const int KEY_F2;
1876        [CCode (cheader_filename = "linux/input.h")]
1877        public const int KEY_F3;
1878        [CCode (cheader_filename = "linux/input.h")]
1879        public const int KEY_F4;
1880        [CCode (cheader_filename = "linux/input.h")]
1881        public const int KEY_F5;
1882        [CCode (cheader_filename = "linux/input.h")]
1883        public const int KEY_F6;
1884        [CCode (cheader_filename = "linux/input.h")]
1885        public const int KEY_F7;
1886        [CCode (cheader_filename = "linux/input.h")]
1887        public const int KEY_F8;
1888        [CCode (cheader_filename = "linux/input.h")]
1889        public const int KEY_F9;
1890        [CCode (cheader_filename = "linux/input.h")]
1891        public const int KEY_F10;
1892        [CCode (cheader_filename = "linux/input.h")]
1893        public const int KEY_NUMLOCK;
1894        [CCode (cheader_filename = "linux/input.h")]
1895        public const int KEY_SCROLLLOCK;
1896        [CCode (cheader_filename = "linux/input.h")]
1897        public const int KEY_KP7;
1898        [CCode (cheader_filename = "linux/input.h")]
1899        public const int KEY_KP8;
1900        [CCode (cheader_filename = "linux/input.h")]
1901        public const int KEY_KP9;
1902        [CCode (cheader_filename = "linux/input.h")]
1903        public const int KEY_KPMINUS;
1904        [CCode (cheader_filename = "linux/input.h")]
1905        public const int KEY_KP4;
1906        [CCode (cheader_filename = "linux/input.h")]
1907        public const int KEY_KP5;
1908        [CCode (cheader_filename = "linux/input.h")]
1909        public const int KEY_KP6;
1910        [CCode (cheader_filename = "linux/input.h")]
1911        public const int KEY_KPPLUS;
1912        [CCode (cheader_filename = "linux/input.h")]
1913        public const int KEY_KP1;
1914        [CCode (cheader_filename = "linux/input.h")]
1915        public const int KEY_KP2;
1916        [CCode (cheader_filename = "linux/input.h")]
1917        public const int KEY_KP3;
1918        [CCode (cheader_filename = "linux/input.h")]
1919        public const int KEY_KP0;
1920        [CCode (cheader_filename = "linux/input.h")]
1921        public const int KEY_KPDOT;
1922
1923        [CCode (cheader_filename = "linux/input.h")]
1924        public const int KEY_ZENKAKUHANKAKU;
1925        [CCode (cheader_filename = "linux/input.h")]
1926        public const int KEY_102ND;
1927        [CCode (cheader_filename = "linux/input.h")]
1928        public const int KEY_F11;
1929        [CCode (cheader_filename = "linux/input.h")]
1930        public const int KEY_F12;
1931        [CCode (cheader_filename = "linux/input.h")]
1932        public const int KEY_RO;
1933        [CCode (cheader_filename = "linux/input.h")]
1934        public const int KEY_KATAKANA;
1935        [CCode (cheader_filename = "linux/input.h")]
1936        public const int KEY_HIRAGANA;
1937        [CCode (cheader_filename = "linux/input.h")]
1938        public const int KEY_HENKAN;
1939        [CCode (cheader_filename = "linux/input.h")]
1940        public const int KEY_KATAKANAHIRAGANA;
1941        [CCode (cheader_filename = "linux/input.h")]
1942        public const int KEY_MUHENKAN;
1943        [CCode (cheader_filename = "linux/input.h")]
1944        public const int KEY_KPJPCOMMA;
1945        [CCode (cheader_filename = "linux/input.h")]
1946        public const int KEY_KPENTER;
1947        [CCode (cheader_filename = "linux/input.h")]
1948        public const int KEY_RIGHTCTRL;
1949        [CCode (cheader_filename = "linux/input.h")]
1950        public const int KEY_KPSLASH;
1951        [CCode (cheader_filename = "linux/input.h")]
1952        public const int KEY_SYSRQ;
1953        [CCode (cheader_filename = "linux/input.h")]
1954        public const int KEY_RIGHTALT;
1955        [CCode (cheader_filename = "linux/input.h")]
1956        public const int KEY_LINEFEED;
1957        [CCode (cheader_filename = "linux/input.h")]
1958        public const int KEY_HOME;
1959        [CCode (cheader_filename = "linux/input.h")]
1960        public const int KEY_UP;
1961        [CCode (cheader_filename = "linux/input.h")]
1962        public const int KEY_PAGEUP;
1963        [CCode (cheader_filename = "linux/input.h")]
1964        public const int KEY_LEFT;
1965        [CCode (cheader_filename = "linux/input.h")]
1966        public const int KEY_RIGHT;
1967        [CCode (cheader_filename = "linux/input.h")]
1968        public const int KEY_END;
1969        [CCode (cheader_filename = "linux/input.h")]
1970        public const int KEY_DOWN;
1971        [CCode (cheader_filename = "linux/input.h")]
1972        public const int KEY_PAGEDOWN;
1973        [CCode (cheader_filename = "linux/input.h")]
1974        public const int KEY_INSERT;
1975        [CCode (cheader_filename = "linux/input.h")]
1976        public const int KEY_DELETE;
1977        [CCode (cheader_filename = "linux/input.h")]
1978        public const int KEY_MACRO;
1979        [CCode (cheader_filename = "linux/input.h")]
1980        public const int KEY_MUTE;
1981        [CCode (cheader_filename = "linux/input.h")]
1982        public const int KEY_VOLUMEDOWN;
1983        [CCode (cheader_filename = "linux/input.h")]
1984        public const int KEY_VOLUMEUP;
1985        [CCode (cheader_filename = "linux/input.h")]
1986        public const int KEY_POWER;
1987        [CCode (cheader_filename = "linux/input.h")]
1988        public const int KEY_KPEQUAL;
1989        [CCode (cheader_filename = "linux/input.h")]
1990        public const int KEY_KPPLUSMINUS;
1991        [CCode (cheader_filename = "linux/input.h")]
1992        public const int KEY_PAUSE;
1993        [CCode (cheader_filename = "linux/input.h")]
1994        public const int KEY_SCALE;
1995
1996        [CCode (cheader_filename = "linux/input.h")]
1997        public const int KEY_KPCOMMA;
1998        [CCode (cheader_filename = "linux/input.h")]
1999        public const int KEY_HANGEUL;
2000        [CCode (cheader_filename = "linux/input.h")]
2001        public const int KEY_HANGUEL;
2002        [CCode (cheader_filename = "linux/input.h")]
2003        public const int KEY_HANJA;
2004        [CCode (cheader_filename = "linux/input.h")]
2005        public const int KEY_YEN;
2006        [CCode (cheader_filename = "linux/input.h")]
2007        public const int KEY_LEFTMETA;
2008        [CCode (cheader_filename = "linux/input.h")]
2009        public const int KEY_RIGHTMETA;
2010        [CCode (cheader_filename = "linux/input.h")]
2011        public const int KEY_COMPOSE;
2012
2013        [CCode (cheader_filename = "linux/input.h")]
2014        public const int KEY_STOP;
2015        [CCode (cheader_filename = "linux/input.h")]
2016        public const int KEY_AGAIN;
2017        [CCode (cheader_filename = "linux/input.h")]
2018        public const int KEY_PROPS;
2019        [CCode (cheader_filename = "linux/input.h")]
2020        public const int KEY_UNDO;
2021        [CCode (cheader_filename = "linux/input.h")]
2022        public const int KEY_FRONT;
2023        [CCode (cheader_filename = "linux/input.h")]
2024        public const int KEY_COPY;
2025        [CCode (cheader_filename = "linux/input.h")]
2026        public const int KEY_OPEN;
2027        [CCode (cheader_filename = "linux/input.h")]
2028        public const int KEY_PASTE;
2029        [CCode (cheader_filename = "linux/input.h")]
2030        public const int KEY_FIND;
2031        [CCode (cheader_filename = "linux/input.h")]
2032        public const int KEY_CUT;
2033        [CCode (cheader_filename = "linux/input.h")]
2034        public const int KEY_HELP;
2035        [CCode (cheader_filename = "linux/input.h")]
2036        public const int KEY_MENU;
2037        [CCode (cheader_filename = "linux/input.h")]
2038        public const int KEY_CALC;
2039        [CCode (cheader_filename = "linux/input.h")]
2040        public const int KEY_SETUP;
2041        [CCode (cheader_filename = "linux/input.h")]
2042        public const int KEY_SLEEP;
2043        [CCode (cheader_filename = "linux/input.h")]
2044        public const int KEY_WAKEUP;
2045        [CCode (cheader_filename = "linux/input.h")]
2046        public const int KEY_FILE;
2047        [CCode (cheader_filename = "linux/input.h")]
2048        public const int KEY_SENDFILE;
2049        [CCode (cheader_filename = "linux/input.h")]
2050        public const int KEY_DELETEFILE;
2051        [CCode (cheader_filename = "linux/input.h")]
2052        public const int KEY_XFER;
2053        [CCode (cheader_filename = "linux/input.h")]
2054        public const int KEY_PROG1;
2055        [CCode (cheader_filename = "linux/input.h")]
2056        public const int KEY_PROG2;
2057        [CCode (cheader_filename = "linux/input.h")]
2058        public const int KEY_WWW;
2059        [CCode (cheader_filename = "linux/input.h")]
2060        public const int KEY_MSDOS;
2061        [CCode (cheader_filename = "linux/input.h")]
2062        public const int KEY_COFFEE;
2063        [CCode (cheader_filename = "linux/input.h")]
2064        public const int KEY_SCREENLOCK;
2065        [CCode (cheader_filename = "linux/input.h")]
2066        public const int KEY_DIRECTION;
2067        [CCode (cheader_filename = "linux/input.h")]
2068        public const int KEY_CYCLEWINDOWS;
2069        [CCode (cheader_filename = "linux/input.h")]
2070        public const int KEY_MAIL;
2071        [CCode (cheader_filename = "linux/input.h")]
2072        public const int KEY_BOOKMARKS;
2073        [CCode (cheader_filename = "linux/input.h")]
2074        public const int KEY_COMPUTER;
2075        [CCode (cheader_filename = "linux/input.h")]
2076        public const int KEY_BACK;
2077        [CCode (cheader_filename = "linux/input.h")]
2078        public const int KEY_FORWARD;
2079        [CCode (cheader_filename = "linux/input.h")]
2080        public const int KEY_CLOSECD;
2081        [CCode (cheader_filename = "linux/input.h")]
2082        public const int KEY_EJECTCD;
2083        [CCode (cheader_filename = "linux/input.h")]
2084        public const int KEY_EJECTCLOSECD;
2085        [CCode (cheader_filename = "linux/input.h")]
2086        public const int KEY_NEXTSONG;
2087        [CCode (cheader_filename = "linux/input.h")]
2088        public const int KEY_PLAYPAUSE;
2089        [CCode (cheader_filename = "linux/input.h")]
2090        public const int KEY_PREVIOUSSONG;
2091        [CCode (cheader_filename = "linux/input.h")]
2092        public const int KEY_STOPCD;
2093        [CCode (cheader_filename = "linux/input.h")]
2094        public const int KEY_RECORD;
2095        [CCode (cheader_filename = "linux/input.h")]
2096        public const int KEY_REWIND;
2097        [CCode (cheader_filename = "linux/input.h")]
2098        public const int KEY_PHONE;
2099        [CCode (cheader_filename = "linux/input.h")]
2100        public const int KEY_ISO;
2101        [CCode (cheader_filename = "linux/input.h")]
2102        public const int KEY_CONFIG;
2103        [CCode (cheader_filename = "linux/input.h")]
2104        public const int KEY_HOMEPAGE;
2105        [CCode (cheader_filename = "linux/input.h")]
2106        public const int KEY_REFRESH;
2107        [CCode (cheader_filename = "linux/input.h")]
2108        public const int KEY_EXIT;
2109        [CCode (cheader_filename = "linux/input.h")]
2110        public const int KEY_MOVE;
2111        [CCode (cheader_filename = "linux/input.h")]
2112        public const int KEY_EDIT;
2113        [CCode (cheader_filename = "linux/input.h")]
2114        public const int KEY_SCROLLUP;
2115        [CCode (cheader_filename = "linux/input.h")]
2116        public const int KEY_SCROLLDOWN;
2117        [CCode (cheader_filename = "linux/input.h")]
2118        public const int KEY_KPLEFTPAREN;
2119        [CCode (cheader_filename = "linux/input.h")]
2120        public const int KEY_KPRIGHTPAREN;
2121        [CCode (cheader_filename = "linux/input.h")]
2122        public const int KEY_NEW;
2123        [CCode (cheader_filename = "linux/input.h")]
2124        public const int KEY_REDO;
2125
2126        [CCode (cheader_filename = "linux/input.h")]
2127        public const int KEY_F13;
2128        [CCode (cheader_filename = "linux/input.h")]
2129        public const int KEY_F14;
2130        [CCode (cheader_filename = "linux/input.h")]
2131        public const int KEY_F15;
2132        [CCode (cheader_filename = "linux/input.h")]
2133        public const int KEY_F16;
2134        [CCode (cheader_filename = "linux/input.h")]
2135        public const int KEY_F17;
2136        [CCode (cheader_filename = "linux/input.h")]
2137        public const int KEY_F18;
2138        [CCode (cheader_filename = "linux/input.h")]
2139        public const int KEY_F19;
2140        [CCode (cheader_filename = "linux/input.h")]
2141        public const int KEY_F20;
2142        [CCode (cheader_filename = "linux/input.h")]
2143        public const int KEY_F21;
2144        [CCode (cheader_filename = "linux/input.h")]
2145        public const int KEY_F22;
2146        [CCode (cheader_filename = "linux/input.h")]
2147        public const int KEY_F23;
2148        [CCode (cheader_filename = "linux/input.h")]
2149        public const int KEY_F24;
2150
2151        [CCode (cheader_filename = "linux/input.h")]
2152        public const int KEY_PLAYCD;
2153        [CCode (cheader_filename = "linux/input.h")]
2154        public const int KEY_PAUSECD;
2155        [CCode (cheader_filename = "linux/input.h")]
2156        public const int KEY_PROG3;
2157        [CCode (cheader_filename = "linux/input.h")]
2158        public const int KEY_PROG4;
2159        [CCode (cheader_filename = "linux/input.h")]
2160        public const int KEY_DASHBOARD;
2161        [CCode (cheader_filename = "linux/input.h")]
2162        public const int KEY_SUSPEND;
2163        [CCode (cheader_filename = "linux/input.h")]
2164        public const int KEY_CLOSE;
2165        [CCode (cheader_filename = "linux/input.h")]
2166        public const int KEY_PLAY;
2167        [CCode (cheader_filename = "linux/input.h")]
2168        public const int KEY_FASTFORWARD;
2169        [CCode (cheader_filename = "linux/input.h")]
2170        public const int KEY_BASSBOOST;
2171        [CCode (cheader_filename = "linux/input.h")]
2172        public const int KEY_PRINT;
2173        [CCode (cheader_filename = "linux/input.h")]
2174        public const int KEY_HP;
2175        [CCode (cheader_filename = "linux/input.h")]
2176        public const int KEY_CAMERA;
2177        [CCode (cheader_filename = "linux/input.h")]
2178        public const int KEY_SOUND;
2179        [CCode (cheader_filename = "linux/input.h")]
2180        public const int KEY_QUESTION;
2181        [CCode (cheader_filename = "linux/input.h")]
2182        public const int KEY_EMAIL;
2183        [CCode (cheader_filename = "linux/input.h")]
2184        public const int KEY_CHAT;
2185        [CCode (cheader_filename = "linux/input.h")]
2186        public const int KEY_SEARCH;
2187        [CCode (cheader_filename = "linux/input.h")]
2188        public const int KEY_CONNECT;
2189        [CCode (cheader_filename = "linux/input.h")]
2190        public const int KEY_FINANCE;
2191        [CCode (cheader_filename = "linux/input.h")]
2192        public const int KEY_SPORT;
2193        [CCode (cheader_filename = "linux/input.h")]
2194        public const int KEY_SHOP;
2195        [CCode (cheader_filename = "linux/input.h")]
2196        public const int KEY_ALTERASE;
2197        [CCode (cheader_filename = "linux/input.h")]
2198        public const int KEY_CANCEL;
2199        [CCode (cheader_filename = "linux/input.h")]
2200        public const int KEY_BRIGHTNESSDOWN;
2201        [CCode (cheader_filename = "linux/input.h")]
2202        public const int KEY_BRIGHTNESSUP;
2203        [CCode (cheader_filename = "linux/input.h")]
2204        public const int KEY_MEDIA;
2205
2206        [CCode (cheader_filename = "linux/input.h")]
2207        public const int KEY_SWITCHVIDEOMODE;
2208        [CCode (cheader_filename = "linux/input.h")]
2209        public const int KEY_KBDILLUMTOGGLE;
2210        [CCode (cheader_filename = "linux/input.h")]
2211        public const int KEY_KBDILLUMDOWN;
2212        [CCode (cheader_filename = "linux/input.h")]
2213        public const int KEY_KBDILLUMUP;
2214
2215        [CCode (cheader_filename = "linux/input.h")]
2216        public const int KEY_SEND;
2217        [CCode (cheader_filename = "linux/input.h")]
2218        public const int KEY_REPLY;
2219        [CCode (cheader_filename = "linux/input.h")]
2220        public const int KEY_FORWARDMAIL;
2221        [CCode (cheader_filename = "linux/input.h")]
2222        public const int KEY_SAVE;
2223        [CCode (cheader_filename = "linux/input.h")]
2224        public const int KEY_DOCUMENTS;
2225
2226        [CCode (cheader_filename = "linux/input.h")]
2227        public const int KEY_BATTERY;
2228
2229        [CCode (cheader_filename = "linux/input.h")]
2230        public const int KEY_BLUETOOTH;
2231        [CCode (cheader_filename = "linux/input.h")]
2232        public const int KEY_WLAN;
2233        [CCode (cheader_filename = "linux/input.h")]
2234        public const int KEY_UWB;
2235
2236        [CCode (cheader_filename = "linux/input.h")]
2237        public const int KEY_UNKNOWN;
2238
2239        [CCode (cheader_filename = "linux/input.h")]
2240        public const int KEY_VIDEO_NEXT;
2241        [CCode (cheader_filename = "linux/input.h")]
2242        public const int KEY_VIDEO_PREV;
2243        [CCode (cheader_filename = "linux/input.h")]
2244        public const int KEY_BRIGHTNESS_CYCLE;
2245        [CCode (cheader_filename = "linux/input.h")]
2246        public const int KEY_BRIGHTNESS_AUTO;
2247        [CCode (cheader_filename = "linux/input.h")]
2248        public const int KEY_BRIGHTNESS_ZERO;
2249        [CCode (cheader_filename = "linux/input.h")]
2250        public const int KEY_DISPLAY_OFF;
2251
2252        [CCode (cheader_filename = "linux/input.h")]
2253        public const int KEY_WWAN;
2254        [CCode (cheader_filename = "linux/input.h")]
2255        public const int KEY_WIMAX;
2256        [CCode (cheader_filename = "linux/input.h")]
2257        public const int KEY_RFKILL;
2258
2259        [CCode (cheader_filename = "linux/input.h")]
2260        public const int KEY_MICMUTE;
2261
2262        /* Code 255 is reserved for special needs of AT keyboard driver */
2263
2264        [CCode (cheader_filename = "linux/input.h")]
2265        public const int BTN_MISC;
2266        [CCode (cheader_filename = "linux/input.h")]
2267        public const int BTN_0;
2268        [CCode (cheader_filename = "linux/input.h")]
2269        public const int BTN_1;
2270        [CCode (cheader_filename = "linux/input.h")]
2271        public const int BTN_2;
2272        [CCode (cheader_filename = "linux/input.h")]
2273        public const int BTN_3;
2274        [CCode (cheader_filename = "linux/input.h")]
2275        public const int BTN_4;
2276        [CCode (cheader_filename = "linux/input.h")]
2277        public const int BTN_5;
2278        [CCode (cheader_filename = "linux/input.h")]
2279        public const int BTN_6;
2280        [CCode (cheader_filename = "linux/input.h")]
2281        public const int BTN_7;
2282        [CCode (cheader_filename = "linux/input.h")]
2283        public const int BTN_8;
2284        [CCode (cheader_filename = "linux/input.h")]
2285        public const int BTN_9;
2286
2287        [CCode (cheader_filename = "linux/input.h")]
2288        public const int BTN_MOUSE;
2289        [CCode (cheader_filename = "linux/input.h")]
2290        public const int BTN_LEFT;
2291        [CCode (cheader_filename = "linux/input.h")]
2292        public const int BTN_RIGHT;
2293        [CCode (cheader_filename = "linux/input.h")]
2294        public const int BTN_MIDDLE;
2295        [CCode (cheader_filename = "linux/input.h")]
2296        public const int BTN_SIDE;
2297        [CCode (cheader_filename = "linux/input.h")]
2298        public const int BTN_EXTRA;
2299        [CCode (cheader_filename = "linux/input.h")]
2300        public const int BTN_FORWARD;
2301        [CCode (cheader_filename = "linux/input.h")]
2302        public const int BTN_BACK;
2303        [CCode (cheader_filename = "linux/input.h")]
2304        public const int BTN_TASK;
2305
2306        [CCode (cheader_filename = "linux/input.h")]
2307        public const int BTN_JOYSTICK;
2308        [CCode (cheader_filename = "linux/input.h")]
2309        public const int BTN_TRIGGER;
2310        [CCode (cheader_filename = "linux/input.h")]
2311        public const int BTN_THUMB;
2312        [CCode (cheader_filename = "linux/input.h")]
2313        public const int BTN_THUMB2;
2314        [CCode (cheader_filename = "linux/input.h")]
2315        public const int BTN_TOP;
2316        [CCode (cheader_filename = "linux/input.h")]
2317        public const int BTN_TOP2;
2318        [CCode (cheader_filename = "linux/input.h")]
2319        public const int BTN_PINKIE;
2320        [CCode (cheader_filename = "linux/input.h")]
2321        public const int BTN_BASE;
2322        [CCode (cheader_filename = "linux/input.h")]
2323        public const int BTN_BASE2;
2324        [CCode (cheader_filename = "linux/input.h")]
2325        public const int BTN_BASE3;
2326        [CCode (cheader_filename = "linux/input.h")]
2327        public const int BTN_BASE4;
2328        [CCode (cheader_filename = "linux/input.h")]
2329        public const int BTN_BASE5;
2330        [CCode (cheader_filename = "linux/input.h")]
2331        public const int BTN_BASE6;
2332        [CCode (cheader_filename = "linux/input.h")]
2333        public const int BTN_DEAD;
2334
2335        [CCode (cheader_filename = "linux/input.h")]
2336        public const int BTN_GAMEPAD;
2337        [CCode (cheader_filename = "linux/input.h")]
2338        public const int BTN_A;
2339        [CCode (cheader_filename = "linux/input.h")]
2340        public const int BTN_B;
2341        [CCode (cheader_filename = "linux/input.h")]
2342        public const int BTN_C;
2343        [CCode (cheader_filename = "linux/input.h")]
2344        public const int BTN_X;
2345        [CCode (cheader_filename = "linux/input.h")]
2346        public const int BTN_Y;
2347        [CCode (cheader_filename = "linux/input.h")]
2348        public const int BTN_Z;
2349        [CCode (cheader_filename = "linux/input.h")]
2350        public const int BTN_TL;
2351        [CCode (cheader_filename = "linux/input.h")]
2352        public const int BTN_TR;
2353        [CCode (cheader_filename = "linux/input.h")]
2354        public const int BTN_TL2;
2355        [CCode (cheader_filename = "linux/input.h")]
2356        public const int BTN_TR2;
2357        [CCode (cheader_filename = "linux/input.h")]
2358        public const int BTN_SELECT;
2359        [CCode (cheader_filename = "linux/input.h")]
2360        public const int BTN_START;
2361        [CCode (cheader_filename = "linux/input.h")]
2362        public const int BTN_MODE;
2363        [CCode (cheader_filename = "linux/input.h")]
2364        public const int BTN_THUMBL;
2365        [CCode (cheader_filename = "linux/input.h")]
2366        public const int BTN_THUMBR;
2367
2368        [CCode (cheader_filename = "linux/input.h")]
2369        public const int BTN_DIGI;
2370        [CCode (cheader_filename = "linux/input.h")]
2371        public const int BTN_TOOL_PEN;
2372        [CCode (cheader_filename = "linux/input.h")]
2373        public const int BTN_TOOL_RUBBER;
2374        [CCode (cheader_filename = "linux/input.h")]
2375        public const int BTN_TOOL_BRUSH;
2376        [CCode (cheader_filename = "linux/input.h")]
2377        public const int BTN_TOOL_PENCIL;
2378        [CCode (cheader_filename = "linux/input.h")]
2379        public const int BTN_TOOL_AIRBRUSH;
2380        [CCode (cheader_filename = "linux/input.h")]
2381        public const int BTN_TOOL_FINGER;
2382        [CCode (cheader_filename = "linux/input.h")]
2383        public const int BTN_TOOL_MOUSE;
2384        [CCode (cheader_filename = "linux/input.h")]
2385        public const int BTN_TOOL_LENS;
2386        [CCode (cheader_filename = "linux/input.h")]
2387        public const int BTN_TOOL_QUINTTAP;
2388        [CCode (cheader_filename = "linux/input.h")]
2389        public const int BTN_TOUCH;
2390        [CCode (cheader_filename = "linux/input.h")]
2391        public const int BTN_STYLUS;
2392        [CCode (cheader_filename = "linux/input.h")]
2393        public const int BTN_STYLUS2;
2394        [CCode (cheader_filename = "linux/input.h")]
2395        public const int BTN_TOOL_DOUBLETAP;
2396        [CCode (cheader_filename = "linux/input.h")]
2397        public const int BTN_TOOL_TRIPLETAP;
2398        [CCode (cheader_filename = "linux/input.h")]
2399        public const int BTN_TOOL_QUADTAP;
2400
2401        [CCode (cheader_filename = "linux/input.h")]
2402        public const int BTN_WHEEL;
2403        [CCode (cheader_filename = "linux/input.h")]
2404        public const int BTN_GEAR_DOWN;
2405        [CCode (cheader_filename = "linux/input.h")]
2406        public const int BTN_GEAR_UP;
2407
2408        [CCode (cheader_filename = "linux/input.h")]
2409        public const int KEY_OK;
2410        [CCode (cheader_filename = "linux/input.h")]
2411        public const int KEY_SELECT;
2412        [CCode (cheader_filename = "linux/input.h")]
2413        public const int KEY_GOTO;
2414        [CCode (cheader_filename = "linux/input.h")]
2415        public const int KEY_CLEAR;
2416        [CCode (cheader_filename = "linux/input.h")]
2417        public const int KEY_POWER2;
2418        [CCode (cheader_filename = "linux/input.h")]
2419        public const int KEY_OPTION;
2420        [CCode (cheader_filename = "linux/input.h")]
2421        public const int KEY_INFO;
2422        [CCode (cheader_filename = "linux/input.h")]
2423        public const int KEY_TIME;
2424        [CCode (cheader_filename = "linux/input.h")]
2425        public const int KEY_VENDOR;
2426        [CCode (cheader_filename = "linux/input.h")]
2427        public const int KEY_ARCHIVE;
2428        [CCode (cheader_filename = "linux/input.h")]
2429        public const int KEY_PROGRAM;
2430        [CCode (cheader_filename = "linux/input.h")]
2431        public const int KEY_CHANNEL;
2432        [CCode (cheader_filename = "linux/input.h")]
2433        public const int KEY_FAVORITES;
2434        [CCode (cheader_filename = "linux/input.h")]
2435        public const int KEY_EPG;
2436        [CCode (cheader_filename = "linux/input.h")]
2437        public const int KEY_PVR;
2438        [CCode (cheader_filename = "linux/input.h")]
2439        public const int KEY_MHP;
2440        [CCode (cheader_filename = "linux/input.h")]
2441        public const int KEY_LANGUAGE;
2442        [CCode (cheader_filename = "linux/input.h")]
2443        public const int KEY_TITLE;
2444        [CCode (cheader_filename = "linux/input.h")]
2445        public const int KEY_SUBTITLE;
2446        [CCode (cheader_filename = "linux/input.h")]
2447        public const int KEY_ANGLE;
2448        [CCode (cheader_filename = "linux/input.h")]
2449        public const int KEY_ZOOM;
2450        [CCode (cheader_filename = "linux/input.h")]
2451        public const int KEY_MODE;
2452        [CCode (cheader_filename = "linux/input.h")]
2453        public const int KEY_KEYBOARD;
2454        [CCode (cheader_filename = "linux/input.h")]
2455        public const int KEY_SCREEN;
2456        [CCode (cheader_filename = "linux/input.h")]
2457        public const int KEY_PC;
2458        [CCode (cheader_filename = "linux/input.h")]
2459        public const int KEY_TV;
2460        [CCode (cheader_filename = "linux/input.h")]
2461        public const int KEY_TV2;
2462        [CCode (cheader_filename = "linux/input.h")]
2463        public const int KEY_VCR;
2464        [CCode (cheader_filename = "linux/input.h")]
2465        public const int KEY_VCR2;
2466        [CCode (cheader_filename = "linux/input.h")]
2467        public const int KEY_SAT;
2468        [CCode (cheader_filename = "linux/input.h")]
2469        public const int KEY_SAT2;
2470        [CCode (cheader_filename = "linux/input.h")]
2471        public const int KEY_CD;
2472        [CCode (cheader_filename = "linux/input.h")]
2473        public const int KEY_TAPE;
2474        [CCode (cheader_filename = "linux/input.h")]
2475        public const int KEY_RADIO;
2476        [CCode (cheader_filename = "linux/input.h")]
2477        public const int KEY_TUNER;
2478        [CCode (cheader_filename = "linux/input.h")]
2479        public const int KEY_PLAYER;
2480        [CCode (cheader_filename = "linux/input.h")]
2481        public const int KEY_TEXT;
2482        [CCode (cheader_filename = "linux/input.h")]
2483        public const int KEY_DVD;
2484        [CCode (cheader_filename = "linux/input.h")]
2485        public const int KEY_AUX;
2486        [CCode (cheader_filename = "linux/input.h")]
2487        public const int KEY_MP3;
2488        [CCode (cheader_filename = "linux/input.h")]
2489        public const int KEY_AUDIO;
2490        [CCode (cheader_filename = "linux/input.h")]
2491        public const int KEY_VIDEO;
2492        [CCode (cheader_filename = "linux/input.h")]
2493        public const int KEY_DIRECTORY;
2494        [CCode (cheader_filename = "linux/input.h")]
2495        public const int KEY_LIST;
2496        [CCode (cheader_filename = "linux/input.h")]
2497        public const int KEY_MEMO;
2498        [CCode (cheader_filename = "linux/input.h")]
2499        public const int KEY_CALENDAR;
2500        [CCode (cheader_filename = "linux/input.h")]
2501        public const int KEY_RED;
2502        [CCode (cheader_filename = "linux/input.h")]
2503        public const int KEY_GREEN;
2504        [CCode (cheader_filename = "linux/input.h")]
2505        public const int KEY_YELLOW;
2506        [CCode (cheader_filename = "linux/input.h")]
2507        public const int KEY_BLUE;
2508        [CCode (cheader_filename = "linux/input.h")]
2509        public const int KEY_CHANNELUP;
2510        [CCode (cheader_filename = "linux/input.h")]
2511        public const int KEY_CHANNELDOWN;
2512        [CCode (cheader_filename = "linux/input.h")]
2513        public const int KEY_FIRST;
2514        [CCode (cheader_filename = "linux/input.h")]
2515        public const int KEY_LAST;
2516        [CCode (cheader_filename = "linux/input.h")]
2517        public const int KEY_AB;
2518        [CCode (cheader_filename = "linux/input.h")]
2519        public const int KEY_NEXT;
2520        [CCode (cheader_filename = "linux/input.h")]
2521        public const int KEY_RESTART;
2522        [CCode (cheader_filename = "linux/input.h")]
2523        public const int KEY_SLOW;
2524        [CCode (cheader_filename = "linux/input.h")]
2525        public const int KEY_SHUFFLE;
2526        [CCode (cheader_filename = "linux/input.h")]
2527        public const int KEY_BREAK;
2528        [CCode (cheader_filename = "linux/input.h")]
2529        public const int KEY_PREVIOUS;
2530        [CCode (cheader_filename = "linux/input.h")]
2531        public const int KEY_DIGITS;
2532        [CCode (cheader_filename = "linux/input.h")]
2533        public const int KEY_TEEN;
2534        [CCode (cheader_filename = "linux/input.h")]
2535        public const int KEY_TWEN;
2536        [CCode (cheader_filename = "linux/input.h")]
2537        public const int KEY_VIDEOPHONE;
2538        [CCode (cheader_filename = "linux/input.h")]
2539        public const int KEY_GAMES;
2540        [CCode (cheader_filename = "linux/input.h")]
2541        public const int KEY_ZOOMIN;
2542        [CCode (cheader_filename = "linux/input.h")]
2543        public const int KEY_ZOOMOUT;
2544        [CCode (cheader_filename = "linux/input.h")]
2545        public const int KEY_ZOOMRESET;
2546        [CCode (cheader_filename = "linux/input.h")]
2547        public const int KEY_WORDPROCESSOR;
2548        [CCode (cheader_filename = "linux/input.h")]
2549        public const int KEY_EDITOR;
2550        [CCode (cheader_filename = "linux/input.h")]
2551        public const int KEY_SPREADSHEET;
2552        [CCode (cheader_filename = "linux/input.h")]
2553        public const int KEY_GRAPHICSEDITOR;
2554        [CCode (cheader_filename = "linux/input.h")]
2555        public const int KEY_PRESENTATION;
2556        [CCode (cheader_filename = "linux/input.h")]
2557        public const int KEY_DATABASE;
2558        [CCode (cheader_filename = "linux/input.h")]
2559        public const int KEY_NEWS;
2560        [CCode (cheader_filename = "linux/input.h")]
2561        public const int KEY_VOICEMAIL;
2562        [CCode (cheader_filename = "linux/input.h")]
2563        public const int KEY_ADDRESSBOOK;
2564        [CCode (cheader_filename = "linux/input.h")]
2565        public const int KEY_MESSENGER;
2566        [CCode (cheader_filename = "linux/input.h")]
2567        public const int KEY_DISPLAYTOGGLE;
2568        [CCode (cheader_filename = "linux/input.h")]
2569        public const int KEY_BRIGHTNESS_TOGGLE;
2570        [CCode (cheader_filename = "linux/input.h")]
2571        public const int KEY_SPELLCHECK;
2572        [CCode (cheader_filename = "linux/input.h")]
2573        public const int KEY_LOGOFF;
2574
2575        [CCode (cheader_filename = "linux/input.h")]
2576        public const int KEY_DOLLAR;
2577        [CCode (cheader_filename = "linux/input.h")]
2578        public const int KEY_EURO;
2579
2580        [CCode (cheader_filename = "linux/input.h")]
2581        public const int KEY_FRAMEBACK;
2582        [CCode (cheader_filename = "linux/input.h")]
2583        public const int KEY_FRAMEFORWARD;
2584        [CCode (cheader_filename = "linux/input.h")]
2585        public const int KEY_CONTEXT_MENU;
2586        [CCode (cheader_filename = "linux/input.h")]
2587        public const int KEY_MEDIA_REPEAT;
2588        [CCode (cheader_filename = "linux/input.h")]
2589        public const int KEY_10CHANNELSUP;
2590        [CCode (cheader_filename = "linux/input.h")]
2591        public const int KEY_10CHANNELSDOWN;
2592        [CCode (cheader_filename = "linux/input.h")]
2593        public const int KEY_IMAGES;
2594
2595        [CCode (cheader_filename = "linux/input.h")]
2596        public const int KEY_DEL_EOL;
2597        [CCode (cheader_filename = "linux/input.h")]
2598        public const int KEY_DEL_EOS;
2599        [CCode (cheader_filename = "linux/input.h")]
2600        public const int KEY_INS_LINE;
2601        [CCode (cheader_filename = "linux/input.h")]
2602        public const int KEY_DEL_LINE;
2603
2604        [CCode (cheader_filename = "linux/input.h")]
2605        public const int KEY_FN;
2606        [CCode (cheader_filename = "linux/input.h")]
2607        public const int KEY_FN_ESC;
2608        [CCode (cheader_filename = "linux/input.h")]
2609        public const int KEY_FN_F1;
2610        [CCode (cheader_filename = "linux/input.h")]
2611        public const int KEY_FN_F2;
2612        [CCode (cheader_filename = "linux/input.h")]
2613        public const int KEY_FN_F3;
2614        [CCode (cheader_filename = "linux/input.h")]
2615        public const int KEY_FN_F4;
2616        [CCode (cheader_filename = "linux/input.h")]
2617        public const int KEY_FN_F5;
2618        [CCode (cheader_filename = "linux/input.h")]
2619        public const int KEY_FN_F6;
2620        [CCode (cheader_filename = "linux/input.h")]
2621        public const int KEY_FN_F7;
2622        [CCode (cheader_filename = "linux/input.h")]
2623        public const int KEY_FN_F8;
2624        [CCode (cheader_filename = "linux/input.h")]
2625        public const int KEY_FN_F9;
2626        [CCode (cheader_filename = "linux/input.h")]
2627        public const int KEY_FN_F10;
2628        [CCode (cheader_filename = "linux/input.h")]
2629        public const int KEY_FN_F11;
2630        [CCode (cheader_filename = "linux/input.h")]
2631        public const int KEY_FN_F12;
2632        [CCode (cheader_filename = "linux/input.h")]
2633        public const int KEY_FN_1;
2634        [CCode (cheader_filename = "linux/input.h")]
2635        public const int KEY_FN_2;
2636        [CCode (cheader_filename = "linux/input.h")]
2637        public const int KEY_FN_D;
2638        [CCode (cheader_filename = "linux/input.h")]
2639        public const int KEY_FN_E;
2640        [CCode (cheader_filename = "linux/input.h")]
2641        public const int KEY_FN_F;
2642        [CCode (cheader_filename = "linux/input.h")]
2643        public const int KEY_FN_S;
2644        [CCode (cheader_filename = "linux/input.h")]
2645        public const int KEY_FN_B;
2646
2647        [CCode (cheader_filename = "linux/input.h")]
2648        public const int KEY_BRL_DOT1;
2649        [CCode (cheader_filename = "linux/input.h")]
2650        public const int KEY_BRL_DOT2;
2651        [CCode (cheader_filename = "linux/input.h")]
2652        public const int KEY_BRL_DOT3;
2653        [CCode (cheader_filename = "linux/input.h")]
2654        public const int KEY_BRL_DOT4;
2655        [CCode (cheader_filename = "linux/input.h")]
2656        public const int KEY_BRL_DOT5;
2657        [CCode (cheader_filename = "linux/input.h")]
2658        public const int KEY_BRL_DOT6;
2659        [CCode (cheader_filename = "linux/input.h")]
2660        public const int KEY_BRL_DOT7;
2661        [CCode (cheader_filename = "linux/input.h")]
2662        public const int KEY_BRL_DOT8;
2663        [CCode (cheader_filename = "linux/input.h")]
2664        public const int KEY_BRL_DOT9;
2665        [CCode (cheader_filename = "linux/input.h")]
2666        public const int KEY_BRL_DOT10;
2667
2668        [CCode (cheader_filename = "linux/input.h")]
2669        public const int KEY_NUMERIC_0;
2670        [CCode (cheader_filename = "linux/input.h")]
2671        public const int KEY_NUMERIC_1;
2672        [CCode (cheader_filename = "linux/input.h")]
2673        public const int KEY_NUMERIC_2;
2674        [CCode (cheader_filename = "linux/input.h")]
2675        public const int KEY_NUMERIC_3;
2676        [CCode (cheader_filename = "linux/input.h")]
2677        public const int KEY_NUMERIC_4;
2678        [CCode (cheader_filename = "linux/input.h")]
2679        public const int KEY_NUMERIC_5;
2680        [CCode (cheader_filename = "linux/input.h")]
2681        public const int KEY_NUMERIC_6;
2682        [CCode (cheader_filename = "linux/input.h")]
2683        public const int KEY_NUMERIC_7;
2684        [CCode (cheader_filename = "linux/input.h")]
2685        public const int KEY_NUMERIC_8;
2686        [CCode (cheader_filename = "linux/input.h")]
2687        public const int KEY_NUMERIC_9;
2688        [CCode (cheader_filename = "linux/input.h")]
2689        public const int KEY_NUMERIC_STAR;
2690        [CCode (cheader_filename = "linux/input.h")]
2691        public const int KEY_NUMERIC_POUND;
2692        [CCode (cheader_filename = "linux/input.h")]
2693        public const int KEY_NUMERIC_A;
2694        [CCode (cheader_filename = "linux/input.h")]
2695        public const int KEY_NUMERIC_B;
2696        [CCode (cheader_filename = "linux/input.h")]
2697        public const int KEY_NUMERIC_C;
2698        [CCode (cheader_filename = "linux/input.h")]
2699        public const int KEY_NUMERIC_D;
2700
2701        [CCode (cheader_filename = "linux/input.h")]
2702        public const int KEY_CAMERA_FOCUS;
2703        [CCode (cheader_filename = "linux/input.h")]
2704        public const int KEY_WPS_BUTTON;
2705
2706        [CCode (cheader_filename = "linux/input.h")]
2707        public const int KEY_TOUCHPAD_TOGGLE;
2708        [CCode (cheader_filename = "linux/input.h")]
2709        public const int KEY_TOUCHPAD_ON;
2710        [CCode (cheader_filename = "linux/input.h")]
2711        public const int KEY_TOUCHPAD_OFF;
2712
2713        [CCode (cheader_filename = "linux/input.h")]
2714        public const int KEY_CAMERA_ZOOMIN;
2715        [CCode (cheader_filename = "linux/input.h")]
2716        public const int KEY_CAMERA_ZOOMOUT;
2717        [CCode (cheader_filename = "linux/input.h")]
2718        public const int KEY_CAMERA_UP;
2719        [CCode (cheader_filename = "linux/input.h")]
2720        public const int KEY_CAMERA_DOWN;
2721        [CCode (cheader_filename = "linux/input.h")]
2722        public const int KEY_CAMERA_LEFT;
2723        [CCode (cheader_filename = "linux/input.h")]
2724        public const int KEY_CAMERA_RIGHT;
2725
2726        [CCode (cheader_filename = "linux/input.h")]
2727        public const int KEY_ATTENDANT_ON;
2728        [CCode (cheader_filename = "linux/input.h")]
2729        public const int KEY_ATTENDANT_OFF;
2730        [CCode (cheader_filename = "linux/input.h")]
2731        public const int KEY_ATTENDANT_TOGGLE;
2732        [CCode (cheader_filename = "linux/input.h")]
2733        public const int KEY_LIGHTS_TOGGLE;
2734
2735        [CCode (cheader_filename = "linux/input.h")]
2736        public const int BTN_DPAD_UP;
2737        [CCode (cheader_filename = "linux/input.h")]
2738        public const int BTN_DPAD_DOWN;
2739        [CCode (cheader_filename = "linux/input.h")]
2740        public const int BTN_DPAD_LEFT;
2741        [CCode (cheader_filename = "linux/input.h")]
2742        public const int BTN_DPAD_RIGHT;
2743
2744        [CCode (cheader_filename = "linux/input.h")]
2745        public const int KEY_ALS_TOGGLE;
2746
2747        [CCode (cheader_filename = "linux/input.h")]
2748        public const int KEY_BUTTONCONFIG;
2749        [CCode (cheader_filename = "linux/input.h")]
2750        public const int KEY_TASKMANAGER;
2751        [CCode (cheader_filename = "linux/input.h")]
2752        public const int KEY_JOURNAL;
2753        [CCode (cheader_filename = "linux/input.h")]
2754        public const int KEY_CONTROLPANEL;
2755        [CCode (cheader_filename = "linux/input.h")]
2756        public const int KEY_APPSELECT;
2757        [CCode (cheader_filename = "linux/input.h")]
2758        public const int KEY_SCREENSAVER;
2759        [CCode (cheader_filename = "linux/input.h")]
2760        public const int KEY_VOICECOMMAND;
2761
2762        [CCode (cheader_filename = "linux/input.h")]
2763        public const int KEY_BRIGHTNESS_MIN;
2764        [CCode (cheader_filename = "linux/input.h")]
2765        public const int KEY_BRIGHTNESS_MAX;
2766
2767        [CCode (cheader_filename = "linux/input.h")]
2768        public const int KEY_KBDINPUTASSIST_PREV;
2769        [CCode (cheader_filename = "linux/input.h")]
2770        public const int KEY_KBDINPUTASSIST_NEXT;
2771        [CCode (cheader_filename = "linux/input.h")]
2772        public const int KEY_KBDINPUTASSIST_PREVGROUP;
2773        [CCode (cheader_filename = "linux/input.h")]
2774        public const int KEY_KBDINPUTASSIST_NEXTGROUP;
2775        [CCode (cheader_filename = "linux/input.h")]
2776        public const int KEY_KBDINPUTASSIST_ACCEPT;
2777        [CCode (cheader_filename = "linux/input.h")]
2778        public const int KEY_KBDINPUTASSIST_CANCEL;
2779
2780        [CCode (cheader_filename = "linux/input.h")]
2781        public const int KEY_RIGHT_UP;
2782        [CCode (cheader_filename = "linux/input.h")]
2783        public const int KEY_RIGHT_DOWN;
2784        [CCode (cheader_filename = "linux/input.h")]
2785        public const int KEY_LEFT_UP;
2786        [CCode (cheader_filename = "linux/input.h")]
2787        public const int KEY_LEFT_DOWN;
2788
2789        [CCode (cheader_filename = "linux/input.h")]
2790        public const int KEY_ROOT_MENU;
2791        [CCode (cheader_filename = "linux/input.h")]
2792        public const int KEY_MEDIA_TOP_MENU;
2793        [CCode (cheader_filename = "linux/input.h")]
2794        public const int KEY_NUMERIC_11;
2795        [CCode (cheader_filename = "linux/input.h")]
2796        public const int KEY_NUMERIC_12;
2797
2798        [CCode (cheader_filename = "linux/input.h")]
2799        public const int KEY_AUDIO_DESC;
2800        [CCode (cheader_filename = "linux/input.h")]
2801        public const int KEY_3D_MODE;
2802        [CCode (cheader_filename = "linux/input.h")]
2803        public const int KEY_NEXT_FAVORITE;
2804        [CCode (cheader_filename = "linux/input.h")]
2805        public const int KEY_STOP_RECORD;
2806        [CCode (cheader_filename = "linux/input.h")]
2807        public const int KEY_PAUSE_RECORD;
2808        [CCode (cheader_filename = "linux/input.h")]
2809        public const int KEY_VOD;
2810        [CCode (cheader_filename = "linux/input.h")]
2811        public const int KEY_UNMUTE;
2812        [CCode (cheader_filename = "linux/input.h")]
2813        public const int KEY_FASTREVERSE;
2814        [CCode (cheader_filename = "linux/input.h")]
2815        public const int KEY_SLOWREVERSE;
2816
2817        [CCode (cheader_filename = "linux/input.h")]
2818        public const int KEY_DATA;
2819
2820        [CCode (cheader_filename = "linux/input.h")]
2821        public const int BTN_TRIGGER_HAPPY;
2822        [CCode (cheader_filename = "linux/input.h")]
2823        public const int BTN_TRIGGER_HAPPY1;
2824        [CCode (cheader_filename = "linux/input.h")]
2825        public const int BTN_TRIGGER_HAPPY2;
2826        [CCode (cheader_filename = "linux/input.h")]
2827        public const int BTN_TRIGGER_HAPPY3;
2828        [CCode (cheader_filename = "linux/input.h")]
2829        public const int BTN_TRIGGER_HAPPY4;
2830        [CCode (cheader_filename = "linux/input.h")]
2831        public const int BTN_TRIGGER_HAPPY5;
2832        [CCode (cheader_filename = "linux/input.h")]
2833        public const int BTN_TRIGGER_HAPPY6;
2834        [CCode (cheader_filename = "linux/input.h")]
2835        public const int BTN_TRIGGER_HAPPY7;
2836        [CCode (cheader_filename = "linux/input.h")]
2837        public const int BTN_TRIGGER_HAPPY8;
2838        [CCode (cheader_filename = "linux/input.h")]
2839        public const int BTN_TRIGGER_HAPPY9;
2840        [CCode (cheader_filename = "linux/input.h")]
2841        public const int BTN_TRIGGER_HAPPY10;
2842        [CCode (cheader_filename = "linux/input.h")]
2843        public const int BTN_TRIGGER_HAPPY11;
2844        [CCode (cheader_filename = "linux/input.h")]
2845        public const int BTN_TRIGGER_HAPPY12;
2846        [CCode (cheader_filename = "linux/input.h")]
2847        public const int BTN_TRIGGER_HAPPY13;
2848        [CCode (cheader_filename = "linux/input.h")]
2849        public const int BTN_TRIGGER_HAPPY14;
2850        [CCode (cheader_filename = "linux/input.h")]
2851        public const int BTN_TRIGGER_HAPPY15;
2852        [CCode (cheader_filename = "linux/input.h")]
2853        public const int BTN_TRIGGER_HAPPY16;
2854        [CCode (cheader_filename = "linux/input.h")]
2855        public const int BTN_TRIGGER_HAPPY17;
2856        [CCode (cheader_filename = "linux/input.h")]
2857        public const int BTN_TRIGGER_HAPPY18;
2858        [CCode (cheader_filename = "linux/input.h")]
2859        public const int BTN_TRIGGER_HAPPY19;
2860        [CCode (cheader_filename = "linux/input.h")]
2861        public const int BTN_TRIGGER_HAPPY20;
2862        [CCode (cheader_filename = "linux/input.h")]
2863        public const int BTN_TRIGGER_HAPPY21;
2864        [CCode (cheader_filename = "linux/input.h")]
2865        public const int BTN_TRIGGER_HAPPY22;
2866        [CCode (cheader_filename = "linux/input.h")]
2867        public const int BTN_TRIGGER_HAPPY23;
2868        [CCode (cheader_filename = "linux/input.h")]
2869        public const int BTN_TRIGGER_HAPPY24;
2870        [CCode (cheader_filename = "linux/input.h")]
2871        public const int BTN_TRIGGER_HAPPY25;
2872        [CCode (cheader_filename = "linux/input.h")]
2873        public const int BTN_TRIGGER_HAPPY26;
2874        [CCode (cheader_filename = "linux/input.h")]
2875        public const int BTN_TRIGGER_HAPPY27;
2876        [CCode (cheader_filename = "linux/input.h")]
2877        public const int BTN_TRIGGER_HAPPY28;
2878        [CCode (cheader_filename = "linux/input.h")]
2879        public const int BTN_TRIGGER_HAPPY29;
2880        [CCode (cheader_filename = "linux/input.h")]
2881        public const int BTN_TRIGGER_HAPPY30;
2882        [CCode (cheader_filename = "linux/input.h")]
2883        public const int BTN_TRIGGER_HAPPY31;
2884        [CCode (cheader_filename = "linux/input.h")]
2885        public const int BTN_TRIGGER_HAPPY32;
2886        [CCode (cheader_filename = "linux/input.h")]
2887        public const int BTN_TRIGGER_HAPPY33;
2888        [CCode (cheader_filename = "linux/input.h")]
2889        public const int BTN_TRIGGER_HAPPY34;
2890        [CCode (cheader_filename = "linux/input.h")]
2891        public const int BTN_TRIGGER_HAPPY35;
2892        [CCode (cheader_filename = "linux/input.h")]
2893        public const int BTN_TRIGGER_HAPPY36;
2894        [CCode (cheader_filename = "linux/input.h")]
2895        public const int BTN_TRIGGER_HAPPY37;
2896        [CCode (cheader_filename = "linux/input.h")]
2897        public const int BTN_TRIGGER_HAPPY38;
2898        [CCode (cheader_filename = "linux/input.h")]
2899        public const int BTN_TRIGGER_HAPPY39;
2900        [CCode (cheader_filename = "linux/input.h")]
2901        public const int BTN_TRIGGER_HAPPY40;
2902
2903        [CCode (cheader_filename = "linux/input.h")]
2904        public const int KEY_MIN_INTERESTING;
2905        [CCode (cheader_filename = "linux/input.h")]
2906        public const int KEY_MAX;
2907
2908        /*
2909        * Relative axes
2910        */
2911
2912        [CCode (cheader_filename = "linux/input.h")]
2913        public const int REL_X;
2914        [CCode (cheader_filename = "linux/input.h")]
2915        public const int REL_Y;
2916        [CCode (cheader_filename = "linux/input.h")]
2917        public const int REL_Z;
2918        [CCode (cheader_filename = "linux/input.h")]
2919        public const int REL_RX;
2920        [CCode (cheader_filename = "linux/input.h")]
2921        public const int REL_RY;
2922        [CCode (cheader_filename = "linux/input.h")]
2923        public const int REL_RZ;
2924        [CCode (cheader_filename = "linux/input.h")]
2925        public const int REL_HWHEEL;
2926        [CCode (cheader_filename = "linux/input.h")]
2927        public const int REL_DIAL;
2928        [CCode (cheader_filename = "linux/input.h")]
2929        public const int REL_WHEEL;
2930        [CCode (cheader_filename = "linux/input.h")]
2931        public const int REL_MISC;
2932        [CCode (cheader_filename = "linux/input.h")]
2933        public const int REL_MAX;
2934
2935        /*
2936         * Absolute axes
2937         */
2938
2939        [CCode (cheader_filename = "linux/input.h")]
2940        public const int ABS_X;
2941        [CCode (cheader_filename = "linux/input.h")]
2942        public const int ABS_Y;
2943        [CCode (cheader_filename = "linux/input.h")]
2944        public const int ABS_Z;
2945        [CCode (cheader_filename = "linux/input.h")]
2946        public const int ABS_RX;
2947        [CCode (cheader_filename = "linux/input.h")]
2948        public const int ABS_RY;
2949        [CCode (cheader_filename = "linux/input.h")]
2950        public const int ABS_RZ;
2951        [CCode (cheader_filename = "linux/input.h")]
2952        public const int ABS_THROTTLE;
2953        [CCode (cheader_filename = "linux/input.h")]
2954        public const int ABS_RUDDER;
2955        [CCode (cheader_filename = "linux/input.h")]
2956        public const int ABS_WHEEL;
2957        [CCode (cheader_filename = "linux/input.h")]
2958        public const int ABS_GAS;
2959        [CCode (cheader_filename = "linux/input.h")]
2960        public const int ABS_BRAKE;
2961        [CCode (cheader_filename = "linux/input.h")]
2962        public const int ABS_HAT0X;
2963        [CCode (cheader_filename = "linux/input.h")]
2964        public const int ABS_HAT0Y;
2965        [CCode (cheader_filename = "linux/input.h")]
2966        public const int ABS_HAT1X;
2967        [CCode (cheader_filename = "linux/input.h")]
2968        public const int ABS_HAT1Y;
2969        [CCode (cheader_filename = "linux/input.h")]
2970        public const int ABS_HAT2X;
2971        [CCode (cheader_filename = "linux/input.h")]
2972        public const int ABS_HAT2Y;
2973        [CCode (cheader_filename = "linux/input.h")]
2974        public const int ABS_HAT3X;
2975        [CCode (cheader_filename = "linux/input.h")]
2976        public const int ABS_HAT3Y;
2977        [CCode (cheader_filename = "linux/input.h")]
2978        public const int ABS_PRESSURE;
2979        [CCode (cheader_filename = "linux/input.h")]
2980        public const int ABS_DISTANCE;
2981        [CCode (cheader_filename = "linux/input.h")]
2982        public const int ABS_TILT_X;
2983        [CCode (cheader_filename = "linux/input.h")]
2984        public const int ABS_TILT_Y;
2985        [CCode (cheader_filename = "linux/input.h")]
2986        public const int ABS_TOOL_WIDTH;
2987
2988        [CCode (cheader_filename = "linux/input.h")]
2989        public const int ABS_VOLUME;
2990
2991        [CCode (cheader_filename = "linux/input.h")]
2992        public const int ABS_MISC;
2993
2994        [CCode (cheader_filename = "linux/input.h")]
2995        public const int ABS_MT_SLOT;
2996        [CCode (cheader_filename = "linux/input.h")]
2997        public const int ABS_MT_TOUCH_MAJOR;
2998        [CCode (cheader_filename = "linux/input.h")]
2999        public const int ABS_MT_TOUCH_MINOR;
3000        [CCode (cheader_filename = "linux/input.h")]
3001        public const int ABS_MT_WIDTH_MAJOR;
3002        [CCode (cheader_filename = "linux/input.h")]
3003        public const int ABS_MT_WIDTH_MINOR;
3004        [CCode (cheader_filename = "linux/input.h")]
3005        public const int ABS_MT_ORIENTATION;
3006        [CCode (cheader_filename = "linux/input.h")]
3007        public const int ABS_MT_POSITION_X;
3008        [CCode (cheader_filename = "linux/input.h")]
3009        public const int ABS_MT_POSITION_Y;
3010        [CCode (cheader_filename = "linux/input.h")]
3011        public const int ABS_MT_TOOL_TYPE;
3012        [CCode (cheader_filename = "linux/input.h")]
3013        public const int ABS_MT_BLOB_ID;
3014        [CCode (cheader_filename = "linux/input.h")]
3015        public const int ABS_MT_TRACKING_ID;
3016        [CCode (cheader_filename = "linux/input.h")]
3017        public const int ABS_MT_PRESSURE;
3018        [CCode (cheader_filename = "linux/input.h")]
3019        public const int ABS_MT_DISTANCE;
3020        [CCode (cheader_filename = "linux/input.h")]
3021        public const int ABS_MT_TOOL_X;
3022        [CCode (cheader_filename = "linux/input.h")]
3023        public const int ABS_MT_TOOL_Y;
3024
3025        [CCode (cheader_filename = "linux/input.h")]
3026        public const int ABS_MAX;
3027
3028        /*
3029         * Switch events
3030         */
3031
3032        [CCode (cheader_filename = "linux/input.h")]
3033        public const int SW_LID;
3034        [CCode (cheader_filename = "linux/input.h")]
3035        public const int SW_TABLET_MODE;
3036        [CCode (cheader_filename = "linux/input.h")]
3037        public const int SW_HEADPHONE_INSERT;
3038        [CCode (cheader_filename = "linux/input.h")]
3039        public const int SW_RFKILL_ALL;
3040        [CCode (cheader_filename = "linux/input.h")]
3041        public const int SW_RADIO;
3042        [CCode (cheader_filename = "linux/input.h")]
3043        public const int SW_MICROPHONE_INSERT;
3044        [CCode (cheader_filename = "linux/input.h")]
3045        public const int SW_DOCK;
3046        [CCode (cheader_filename = "linux/input.h")]
3047        public const int SW_LINEOUT_INSERT;
3048        [CCode (cheader_filename = "linux/input.h")]
3049        public const int SW_JACK_PHYSICAL_INSERT;
3050        [CCode (cheader_filename = "linux/input.h")]
3051        public const int SW_VIDEOOUT_INSERT;
3052        [CCode (cheader_filename = "linux/input.h")]
3053        public const int SW_CAMERA_LENS_COVER;
3054        [CCode (cheader_filename = "linux/input.h")]
3055        public const int SW_KEYPAD_SLIDE;
3056        [CCode (cheader_filename = "linux/input.h")]
3057        public const int SW_FRONT_PROXIMITY;
3058        [CCode (cheader_filename = "linux/input.h")]
3059        public const int SW_ROTATE_LOCK;
3060        [CCode (cheader_filename = "linux/input.h")]
3061        public const int SW_LINEIN_INSERT;
3062        [CCode (cheader_filename = "linux/input.h")]
3063        public const int SW_MUTE_DEVICE;
3064        [CCode (cheader_filename = "linux/input.h")]
3065        public const int SW_PEN_INSERTED;
3066        [CCode (cheader_filename = "linux/input.h")]
3067        public const int SW_MAX;
3068
3069        /*
3070         * Misc events
3071         */
3072
3073        [CCode (cheader_filename = "linux/input.h")]
3074        public const int MSC_SERIAL;
3075        [CCode (cheader_filename = "linux/input.h")]
3076        public const int MSC_PULSELED;
3077        [CCode (cheader_filename = "linux/input.h")]
3078        public const int MSC_GESTURE;
3079        [CCode (cheader_filename = "linux/input.h")]
3080        public const int MSC_RAW;
3081        [CCode (cheader_filename = "linux/input.h")]
3082        public const int MSC_SCAN;
3083        [CCode (cheader_filename = "linux/input.h")]
3084        public const int MSC_TIMESTAMP;
3085        [CCode (cheader_filename = "linux/input.h")]
3086        public const int MSC_MAX;
3087
3088        /*
3089         * LEDs
3090         */
3091
3092        [CCode (cheader_filename = "linux/input.h")]
3093        public const int LED_NUML;
3094        [CCode (cheader_filename = "linux/input.h")]
3095        public const int LED_CAPSL;
3096        [CCode (cheader_filename = "linux/input.h")]
3097        public const int LED_SCROLLL;
3098        [CCode (cheader_filename = "linux/input.h")]
3099        public const int LED_COMPOSE;
3100        [CCode (cheader_filename = "linux/input.h")]
3101        public const int LED_KANA;
3102        [CCode (cheader_filename = "linux/input.h")]
3103        public const int LED_SLEEP;
3104        [CCode (cheader_filename = "linux/input.h")]
3105        public const int LED_SUSPEND;
3106        [CCode (cheader_filename = "linux/input.h")]
3107        public const int LED_MUTE;
3108        [CCode (cheader_filename = "linux/input.h")]
3109        public const int LED_MISC;
3110        [CCode (cheader_filename = "linux/input.h")]
3111        public const int LED_MAIL;
3112        [CCode (cheader_filename = "linux/input.h")]
3113        public const int LED_CHARGING;
3114        [CCode (cheader_filename = "linux/input.h")]
3115        public const int LED_MAX;
3116
3117        /*
3118         * Autorepeat values
3119         */
3120
3121        [CCode (cheader_filename = "linux/input.h")]
3122        public const int REP_DELAY;
3123        [CCode (cheader_filename = "linux/input.h")]
3124        public const int REP_PERIOD;
3125        [CCode (cheader_filename = "linux/input.h")]
3126        public const int REP_MAX;
3127
3128        /*
3129         * Sounds
3130         */
3131
3132        [CCode (cheader_filename = "linux/input.h")]
3133        public const int SND_CLICK;
3134        [CCode (cheader_filename = "linux/input.h")]
3135        public const int SND_BELL;
3136        [CCode (cheader_filename = "linux/input.h")]
3137        public const int SND_TONE;
3138        [CCode (cheader_filename = "linux/input.h")]
3139        public const int SND_MAX;
3140
3141        /*
3142         * IDs.
3143         */
3144
3145        [CCode (cheader_filename = "linux/input.h")]
3146        public const int ID_BUS;
3147        [CCode (cheader_filename = "linux/input.h")]
3148        public const int ID_VENDOR;
3149        [CCode (cheader_filename = "linux/input.h")]
3150        public const int ID_PRODUCT;
3151        [CCode (cheader_filename = "linux/input.h")]
3152        public const int ID_VERSION;
3153
3154        [CCode (cheader_filename = "linux/input.h")]
3155        public const int BUS_PCI;
3156        [CCode (cheader_filename = "linux/input.h")]
3157        public const int BUS_ISAPNP;
3158        [CCode (cheader_filename = "linux/input.h")]
3159        public const int BUS_USB;
3160        [CCode (cheader_filename = "linux/input.h")]
3161        public const int BUS_HIL;
3162        [CCode (cheader_filename = "linux/input.h")]
3163        public const int BUS_BLUETOOTH;
3164        [CCode (cheader_filename = "linux/input.h")]
3165        public const int BUS_VIRTUAL;
3166
3167        [CCode (cheader_filename = "linux/input.h")]
3168        public const int BUS_ISA;
3169        [CCode (cheader_filename = "linux/input.h")]
3170        public const int BUS_I8042;
3171        [CCode (cheader_filename = "linux/input.h")]
3172        public const int BUS_XTKBD;
3173        [CCode (cheader_filename = "linux/input.h")]
3174        public const int BUS_RS232;
3175        [CCode (cheader_filename = "linux/input.h")]
3176        public const int BUS_GAMEPORT;
3177        [CCode (cheader_filename = "linux/input.h")]
3178        public const int BUS_PARPORT;
3179        [CCode (cheader_filename = "linux/input.h")]
3180        public const int BUS_AMIGA;
3181        [CCode (cheader_filename = "linux/input.h")]
3182        public const int BUS_ADB;
3183        [CCode (cheader_filename = "linux/input.h")]
3184        public const int BUS_I2C;
3185        [CCode (cheader_filename = "linux/input.h")]
3186        public const int BUS_HOST;
3187        [CCode (cheader_filename = "linux/input.h")]
3188        public const int BUS_GSC;
3189        [CCode (cheader_filename = "linux/input.h")]
3190        public const int BUS_ATARI;
3191
3192        /* MT_TOOL types */
3193        [CCode (cheader_filename = "linux/input.h")]
3194        public const int MT_TOOL_FINGER;
3195        [CCode (cheader_filename = "linux/input.h")]
3196        public const int MT_TOOL_PEN;
3197        [CCode (cheader_filename = "linux/input.h")]
3198        public const int MT_TOOL_PALM;
3199        [CCode (cheader_filename = "linux/input.h")]
3200        public const int MT_TOOL_MAX;
3201
3202        /* Values describing the status of a force-feedback effect */
3203        [CCode (cheader_filename = "linux/input.h")]
3204        public const int FF_STATUS_STOPPED;
3205        [CCode (cheader_filename = "linux/input.h")]
3206        public const int FF_STATUS_PLAYING;
3207        [CCode (cheader_filename = "linux/input.h")]
3208        public const int FF_STATUS_MAX;
3209    }
3210
3211    /*
3212     * Netlink subsystem
3213     */
3214    [CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "linux/netlink.h")]
3215    namespace Netlink {
3216
3217        [CCode (cheader_filename = "linux/netlink.h")]
3218        public const int NETLINK_ROUTE;
3219        [CCode (cheader_filename = "linux/netlink.h")]
3220        public const int NETLINK_UNUSED;
3221        [CCode (cheader_filename = "linux/netlink.h")]
3222        public const int NETLINK_USERSOCK;
3223        [CCode (cheader_filename = "linux/netlink.h")]
3224        public const int NETLINK_FIREWALL;
3225        [CCode (cheader_filename = "linux/netlink.h")]
3226        public const int NETLINK_INET_DIAG;
3227        [CCode (cheader_filename = "linux/netlink.h")]
3228        public const int NETLINK_NFLOG;
3229        [CCode (cheader_filename = "linux/netlink.h")]
3230        public const int NETLINK_XFRM;
3231        [CCode (cheader_filename = "linux/netlink.h")]
3232        public const int NETLINK_SELINUX;
3233        [CCode (cheader_filename = "linux/netlink.h")]
3234        public const int NETLINK_ISCSI;
3235        [CCode (cheader_filename = "linux/netlink.h")]
3236        public const int NETLINK_AUDIT;
3237        [CCode (cheader_filename = "linux/netlink.h")]
3238        public const int NETLINK_FIB_LOOKUP;
3239        [CCode (cheader_filename = "linux/netlink.h")]
3240        public const int NETLINK_CONNECTOR;
3241        [CCode (cheader_filename = "linux/netlink.h")]
3242        public const int NETLINK_NETFILTER;
3243        [CCode (cheader_filename = "linux/netlink.h")]
3244        public const int NETLINK_IP6_FW;
3245        [CCode (cheader_filename = "linux/netlink.h")]
3246        public const int NETLINK_DNRTMSG;
3247        [CCode (cheader_filename = "linux/netlink.h")]
3248        public const int NETLINK_KOBJECT_UEVENT;
3249        [CCode (cheader_filename = "linux/netlink.h")]
3250        public const int NETLINK_GENERIC;
3251        [CCode (cheader_filename = "linux/netlink.h")]
3252        public const int NETLINK_SCSITRANSPORT;
3253        [CCode (cheader_filename = "linux/netlink.h")]
3254        public const int NETLINK_ECRYPTFS;
3255
3256        [CCode (cheader_filename = "linux/netlink.h")]
3257        public const int NETLINK_ADD_MEMBERSHIP;
3258        [CCode (cheader_filename = "linux/netlink.h")]
3259        public const int NETLINK_DROP_MEMBERSHIP;
3260        [CCode (cheader_filename = "linux/netlink.h")]
3261        public const int NETLINK_PKTINFO;
3262        [CCode (cheader_filename = "linux/netlink.h")]
3263        public const int NETLINK_BROADCAST_ERROR;
3264        [CCode (cheader_filename = "linux/netlink.h")]
3265        public const int NETLINK_NO_ENOBUFS;
3266
3267        [CCode (cheader_filename = "linux/netlink.h")]
3268        public const int NLM_F_REQUEST;
3269        [CCode (cheader_filename = "linux/netlink.h")]
3270        public const int NLM_F_MULTI;
3271        [CCode (cheader_filename = "linux/netlink.h")]
3272        public const int NLM_F_ACK;
3273        [CCode (cheader_filename = "linux/netlink.h")]
3274        public const int NLM_F_ECHO;
3275
3276        [CCode (cheader_filename = "linux/netlink.h")]
3277        public const int NLM_F_ROOT;
3278        [CCode (cheader_filename = "linux/netlink.h")]
3279        public const int NLM_F_MATCH;
3280        [CCode (cheader_filename = "linux/netlink.h")]
3281        public const int NLM_F_ATOMIC;
3282        [CCode (cheader_filename = "linux/netlink.h")]
3283        public const int NLM_F_DUMP;
3284
3285        [CCode (cheader_filename = "linux/netlink.h")]
3286        public const int NLM_F_REPLACE;
3287        [CCode (cheader_filename = "linux/netlink.h")]
3288        public const int NLM_F_EXCL;
3289        [CCode (cheader_filename = "linux/netlink.h")]
3290        public const int NLM_F_CREATE;
3291        [CCode (cheader_filename = "linux/netlink.h")]
3292        public const int NLM_F_APPEND;
3293
3294        [CCode (cheader_filename = "linux/netlink.h")]
3295        public const int NLMSG_ALIGNTO;
3296        [CCode (cheader_filename = "linux/netlink.h")]
3297        public const int NLMSG_NOOP;
3298        [CCode (cheader_filename = "linux/netlink.h")]
3299        public const int NLMSG_ERROR;
3300        [CCode (cheader_filename = "linux/netlink.h")]
3301        public const int NLMSG_DONE;
3302        [CCode (cheader_filename = "linux/netlink.h")]
3303        public const int NLMSG_OVERRUN;
3304        [CCode (cheader_filename = "linux/netlink.h")]
3305        public const int NLMSG_MIN_TYPE;
3306
3307        /* netlink action macros, we bind them as functions for convenience */
3308        [CCode (cheader_filename = "linux/netlink.h")]
3309        public void NLMSG_ALIGN (int len);
3310        [CCode (cheader_filename = "linux/netlink.h")]
3311        public int NLMSG_HDRLEN ();
3312        [CCode (cheader_filename = "linux/netlink.h")]
3313        public int NLMSG_LENGTH (int len);
3314        [CCode (cheader_filename = "linux/netlink.h")]
3315        public void NLMSG_SPACE (int len);
3316        [CCode (cheader_filename = "linux/netlink.h")]
3317        public void* NLMSG_DATA (NlMsgHdr nlh);
3318        [CCode (cheader_filename = "linux/netlink.h")]
3319        public unowned NlMsgHdr NLMSG_NEXT (NlMsgHdr nlh, int len);
3320        [CCode (cheader_filename = "linux/netlink.h")]
3321        public bool NLMSG_OK (NlMsgHdr nlh, int len);
3322        [CCode (cheader_filename = "linux/netlink.h")]
3323        public int NLMSG_PAYLOAD (NlMsgHdr nlh, int len);
3324
3325        // netlink socket, can be used instead of sockaddr
3326        [CCode (cname = "struct sockaddr_nl", has_type_id = false, cheader_filename = "linux/netlink.h", destroy_function = "")]
3327        public struct SockAddrNl {
3328            public int nl_family;
3329            public ushort nl_pad;
3330            public uint32 nl_pid;
3331            public uint32 nl_groups;
3332        }
3333
3334        // netlink message header
3335        [CCode (cname = "struct nlmsghdr", has_type_id = false, cheader_filename = "linux/netlink.h", destroy_function = "")]
3336        public struct NlMsgHdr {
3337            public uint32 nlmsg_len;
3338            public uint16 nlmsg_type;
3339            public uint16 nlmsg_flags;
3340            public uint32 nlmsg_seq;
3341            public uint32 nlmsg_pid;
3342        }
3343
3344        // netlink error message
3345        [CCode (cname = "struct nlmsgerr", has_type_id = false, cheader_filename = "linux/netlink.h", destroy_function = "")]
3346        public struct NlMsgErr {
3347            public int error;
3348            public NlMsgHdr msg;
3349        }
3350
3351        // rtnetlink multicast groups ( userland compatibility values )
3352        [CCode (cheader_filename = "linux/rtnetlink.h")]
3353        public const int RTMGRP_LINK;
3354        [CCode (cheader_filename = "linux/rtnetlink.h")]
3355        public const int RTMGRP_NOTIFY;
3356        [CCode (cheader_filename = "linux/rtnetlink.h")]
3357        public const int RTMGRP_NEIGH;
3358        [CCode (cheader_filename = "linux/rtnetlink.h")]
3359        public const int RTMGRP_TC;
3360        [CCode (cheader_filename = "linux/rtnetlink.h")]
3361        public const int RTMGRP_IPV4_IFADDR;
3362        [CCode (cheader_filename = "linux/rtnetlink.h")]
3363        public const int RTMGRP_IPV4_MROUTE;
3364        [CCode (cheader_filename = "linux/rtnetlink.h")]
3365        public const int RTMGRP_IPV4_ROUTE;
3366        [CCode (cheader_filename = "linux/rtnetlink.h")]
3367        public const int RTMGRP_IPV4_RULE;
3368        [CCode (cheader_filename = "linux/rtnetlink.h")]
3369        public const int RTMGRP_IPV6_IFADDR;
3370        [CCode (cheader_filename = "linux/rtnetlink.h")]
3371        public const int RTMGRP_IPV6_MROUTE;
3372        [CCode (cheader_filename = "linux/rtnetlink.h")]
3373        public const int RTMGRP_IPV6_ROUTE;
3374        [CCode (cheader_filename = "linux/rtnetlink.h")]
3375        public const int RTMGRP_IPV6_IFINFO;
3376        [CCode (cheader_filename = "linux/rtnetlink.h")]
3377        public const int RTMGRP_DECnet_IFADDR;
3378        [CCode (cheader_filename = "linux/rtnetlink.h")]
3379        public const int RTMGRP_DECnet_ROUTE;
3380        [CCode (cheader_filename = "linux/rtnetlink.h")]
3381        public const int RTMGRP_IPV6_PREFIX;
3382
3383        // rtnetlink multicast groups ( 1 << group )
3384        [CCode (cheader_filename = "linux/rtnetlink.h")]
3385        public const int RTNLGRP_NONE;
3386        [CCode (cheader_filename = "linux/rtnetlink.h")]
3387        public const int RTNLGRP_LINK;
3388        [CCode (cheader_filename = "linux/rtnetlink.h")]
3389        public const int RTNLGRP_NOTIFY;
3390        [CCode (cheader_filename = "linux/rtnetlink.h")]
3391        public const int RTNLGRP_NEIGH;
3392        [CCode (cheader_filename = "linux/rtnetlink.h")]
3393        public const int RTNLGRP_TC;
3394        [CCode (cheader_filename = "linux/rtnetlink.h")]
3395        public const int RTNLGRP_IPV4_IFADDR;
3396        [CCode (cheader_filename = "linux/rtnetlink.h")]
3397        public const int RTNLGRP_IPV4_MROUTE;
3398        [CCode (cheader_filename = "linux/rtnetlink.h")]
3399        public const int RTNLGRP_IPV4_ROUTE;
3400        [CCode (cheader_filename = "linux/rtnetlink.h")]
3401        public const int RTNLGRP_IPV4_RULE;
3402        [CCode (cheader_filename = "linux/rtnetlink.h")]
3403        public const int RTNLGRP_IPV6_IFADDR;
3404        [CCode (cheader_filename = "linux/rtnetlink.h")]
3405        public const int RTNLGRP_IPV6_MROUTE;
3406        [CCode (cheader_filename = "linux/rtnetlink.h")]
3407        public const int RTNLGRP_IPV6_ROUTE;
3408        [CCode (cheader_filename = "linux/rtnetlink.h")]
3409        public const int RTNLGRP_IPV6_IFINFO;
3410        [CCode (cheader_filename = "linux/rtnetlink.h")]
3411        public const int RTNLGRP_DECnet_IFADDR;
3412        [CCode (cheader_filename = "linux/rtnetlink.h")]
3413        public const int RTNLGRP_NOP2;
3414        [CCode (cheader_filename = "linux/rtnetlink.h")]
3415        public const int RTNLGRP_DECnet_ROUTE;
3416        [CCode (cheader_filename = "linux/rtnetlink.h")]
3417        public const int RTNLGRP_DECnet_RULE;
3418        [CCode (cheader_filename = "linux/rtnetlink.h")]
3419        public const int RTNLGRP_NOP4;
3420        [CCode (cheader_filename = "linux/rtnetlink.h")]
3421        public const int RTNLGRP_IPV6_PREFIX;
3422        [CCode (cheader_filename = "linux/rtnetlink.h")]
3423        public const int RTNLGRP_IPV6_RULE;
3424        [CCode (cheader_filename = "linux/rtnetlink.h")]
3425        public const int RTNLGRP_ND_USEROPT;
3426        [CCode (cheader_filename = "linux/rtnetlink.h")]
3427        public const int RTNLGRP_PHONET_IFADDR;
3428        [CCode (cheader_filename = "linux/rtnetlink.h")]
3429        public const int RTNLGRP_PHONET_ROUTE;
3430
3431        /* rtnetlink action macros, we bind them as functions for convenience */
3432        [CCode (cheader_filename = "linux/rtnetlink.h")]
3433        public void RTA_ALIGN (int len);
3434        [CCode (cheader_filename = "linux/rtnetlink.h")]
3435        public int RTA_HDRLEN ();
3436        [CCode (cheader_filename = "linux/rtnetlink.h")]
3437        public int RTA_LENGTH (int len);
3438        [CCode (cheader_filename = "linux/rtnetlink.h")]
3439        public void RTA_SPACE (int len);
3440        [CCode (cheader_filename = "linux/rtnetlink.h")]
3441        public void* RTA_DATA (RtAttr* rta);
3442        [CCode (cheader_filename = "linux/rtnetlink.h")]
3443        public RtAttr* RTA_NEXT (RtAttr* rta, int len);
3444        [CCode (cheader_filename = "linux/rtnetlink.h")]
3445        public bool RTA_OK (RtAttr* rta, int len);
3446        [CCode (cheader_filename = "linux/rtnetlink.h")]
3447        public void* RTA_PAYLOAD (RtAttr* rta, int len);
3448
3449        /*
3450        [CCode (cheader_filename = "sys/socket.h", sentinel = "")]
3451        public int bind (int sockfd, SockAddrNl addr, ulong length);
3452        */
3453
3454        // rtnetlink info message
3455        [CCode (cname = "struct ifinfomsg", has_type_id = false, cheader_filename = "linux/rtnetlink.h", destroy_function = "")]
3456        public struct IfInfoMsg {
3457            public uchar ifi_family;
3458            public uchar __ifi_pad;
3459            public ushort ifi_type;
3460            public int ifi_index;
3461            public uint32 ifi_flags;
3462            public uint32 ifi_change;
3463        }
3464
3465        // rtnetlink attribute
3466        [CCode (cname = "struct rtattr", has_type_id = false, cheader_filename = "linux/rtnetlink.h", destroy_function = "")]
3467        public struct RtAttr {
3468            public ushort rta_len;
3469            public ushort rta_type;
3470        }
3471
3472        // rtnetlink routing / discovery messages
3473        [CCode (cprefix = "RTM_", has_type_id = false, cheader_filename = "linux/rtnetlink.h")]
3474        public enum RtMessageType {
3475            NEWLINK,
3476            DELLINK,
3477            GETLINK,
3478            SETLINK,
3479            NEWADDR,
3480            DELADDR,
3481            GETADDR,
3482            NEWROUTE,
3483            DELROUTE,
3484            GETROUTE,
3485            NEWNEIGH,
3486            DELNEIGH,
3487            GETNEIGH,
3488            NEWRULE,
3489            DELRULE,
3490            GETRULE,
3491            NEWQDISC,
3492            DELQDISC,
3493            GETQDISC,
3494            NEWTCLASS,
3495            DELTCLASS,
3496            GETTCLASS,
3497            NEWTFILTER,
3498            DELTFILTER,
3499            GETTFILTER,
3500            NEWACTION,
3501            DELACTION,
3502            GETACTION,
3503            NEWPREFIX,
3504            GETMULTICAST,
3505            GETANYCAST,
3506            NEWNEIGHTBL,
3507            GETNEIGHTBL,
3508            SETNEIGHTBL,
3509        }
3510    }
3511
3512    /*
3513     * Real time clock subsystem
3514     */
3515
3516    [CCode (cprefix = "", lower_case_cprefix = "")]
3517    namespace Rtc {
3518
3519        [CCode (cname = "struct rtc_time", cheader_filename = "linux/rtc.h", has_type_id = false)]
3520        public struct Time {
3521            public int tm_sec;
3522            public int tm_min;
3523            public int tm_hour;
3524            public int tm_mday;
3525            public int tm_mon;
3526            public int tm_year;
3527            public int tm_wday;
3528            public int tm_yday;
3529            public int tm_isdst;
3530        }
3531
3532        [CCode (cname = "struct rtc_wkalrm", has_type_id = false, cheader_filename = "linux/rtc.h")]
3533        public struct WakeAlarm {
3534            public char enabled;
3535            public char pending;
3536            public Linux.Rtc.Time time;
3537        }
3538
3539        [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3540        public const int RTC_RD_TIME;
3541        [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3542        public const int RTC_SET_TIME;
3543        [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3544        public const int RTC_WKALM_RD;
3545        [CCode (cheader_filename = "linux/rtc.h,sys/ioctl.h")]
3546        public const int RTC_WKALM_SET;
3547    }
3548
3549    /*
3550     * Socket extensions (non-posix)
3551     */
3552    [CCode (cprefix = "", lower_case_cprefix = "")]
3553    namespace Socket {
3554        [CCode (cheader_filename = "sys/socket.h")]
3555        public const int AF_NETLINK;
3556        [CCode (cheader_filename = "sys/socket.h")]
3557        public const int AF_PHONET;
3558        [CCode (cheader_filename = "sys/socket.h")]
3559        public const int AF_UNSPEC;
3560        [CCode (cheader_filename = "sys/socket.h")]
3561        public const int SOCK_NONBLOCK;
3562        [CCode (cheader_filename = "sys/socket.h")]
3563        public const int SOCK_CLOEXEC;
3564
3565        [CCode (cname = "struct ucred", has_type_id = false, cheader_filename = "linux/socket.h", destroy_function = "")]
3566        public struct ucred {
3567            public uint32 pid;
3568            public uint32 uid;
3569            public uint32 gid;
3570        }
3571
3572        /* setsockopt(2) level constants */
3573        [CCode (cheader_filename = "linux/socket.h")]
3574        public const int SOL_IP;
3575        [CCode (cheader_filename = "linux/socket.h")]
3576        public const int SOL_TCP;
3577        [CCode (cheader_filename = "linux/socket.h")]
3578        public const int SOL_UDP;
3579        [CCode (cheader_filename = "linux/socket.h")]
3580        public const int SOL_IPV6;
3581        [CCode (cheader_filename = "linux/socket.h")]
3582        public const int SOL_ICMPV6;
3583        [CCode (cheader_filename = "linux/socket.h")]
3584        public const int SOL_SCTP;
3585        [CCode (cheader_filename = "linux/socket.h")]
3586        public const int SOL_UDPLITE;
3587        [CCode (cheader_filename = "linux/socket.h")]
3588        public const int SOL_RAW;
3589        [CCode (cheader_filename = "linux/socket.h")]
3590        public const int SOL_IPX;
3591        [CCode (cheader_filename = "linux/socket.h")]
3592        public const int SOL_AX25;
3593        [CCode (cheader_filename = "linux/socket.h")]
3594        public const int SOL_ATALK;
3595        [CCode (cheader_filename = "linux/socket.h")]
3596        public const int SOL_NETROM;
3597        [CCode (cheader_filename = "linux/socket.h")]
3598        public const int SOL_ROSE;
3599        [CCode (cheader_filename = "linux/socket.h")]
3600        public const int SOL_DECNET;
3601        [CCode (cheader_filename = "linux/socket.h")]
3602        public const int SOL_X25;
3603        [CCode (cheader_filename = "linux/socket.h")]
3604        public const int SOL_PACKET;
3605        [CCode (cheader_filename = "linux/socket.h")]
3606        public const int SOL_ATM;
3607        [CCode (cheader_filename = "linux/socket.h")]
3608        public const int SOL_AAL;
3609        [CCode (cheader_filename = "linux/socket.h")]
3610        public const int SOL_IRDA;
3611        [CCode (cheader_filename = "linux/socket.h")]
3612        public const int SOL_NETBEUI;
3613        [CCode (cheader_filename = "linux/socket.h")]
3614        public const int SOL_LLC;
3615        [CCode (cheader_filename = "linux/socket.h")]
3616        public const int SOL_DCCP;
3617        [CCode (cheader_filename = "linux/socket.h")]
3618        public const int SOL_NETLINK;
3619        [CCode (cheader_filename = "linux/socket.h")]
3620        public const int SOL_TIPC;
3621        [CCode (cheader_filename = "linux/socket.h")]
3622        public const int SOL_RXRPC;
3623        [CCode (cheader_filename = "linux/socket.h")]
3624        public const int SOL_PPPOL2TP;
3625        [CCode (cheader_filename = "linux/socket.h")]
3626        public const int SOL_BLUETOOTH;
3627        [CCode (cheader_filename = "linux/socket.h")]
3628        public const int SOL_PNPIPE;
3629        [CCode (cheader_filename = "linux/socket.h")]
3630        public const int SOL_RDS;
3631        [CCode (cheader_filename = "linux/socket.h")]
3632        public const int SOL_IUCV;
3633        [CCode (cheader_filename = "sys/socket.h")]
3634        public const int SOL_SOCKET;
3635        [CCode (cheader_filename = "sys/socket.h")]
3636        public const int SO_DEBUG;
3637        [CCode (cheader_filename = "sys/socket.h")]
3638        public const int SO_REUSEADDR;
3639        [CCode (cheader_filename = "sys/socket.h")]
3640        public const int SO_TYPE;
3641        [CCode (cheader_filename = "sys/socket.h")]
3642        public const int SO_ERROR;
3643        [CCode (cheader_filename = "sys/socket.h")]
3644        public const int SO_DONTROUTE;
3645        [CCode (cheader_filename = "sys/socket.h")]
3646        public const int SO_BROADCAST;
3647        [CCode (cheader_filename = "sys/socket.h")]
3648        public const int SO_SNDBUF;
3649        [CCode (cheader_filename = "sys/socket.h")]
3650        public const int SO_RCVBUF;
3651        [CCode (cheader_filename = "sys/socket.h")]
3652        public const int SO_SNDBUFFORCE;
3653        [CCode (cheader_filename = "sys/socket.h")]
3654        public const int SO_RCVBUFFORCE;
3655        [CCode (cheader_filename = "sys/socket.h")]
3656        public const int SO_KEEPALIVE;
3657        [CCode (cheader_filename = "sys/socket.h")]
3658        public const int SO_OOBINLINE;
3659        [CCode (cheader_filename = "sys/socket.h")]
3660        public const int SO_NO_CHECK;
3661        [CCode (cheader_filename = "sys/socket.h")]
3662        public const int SO_PRIORITY;
3663        [CCode (cheader_filename = "sys/socket.h")]
3664        public const int SO_LINGER;
3665        [CCode (cheader_filename = "sys/socket.h")]
3666        public const int SO_BSDCOMPAT;
3667        [CCode (cheader_filename = "sys/socket.h")]
3668        public const int SO_REUSEPORT;
3669        [CCode (cheader_filename = "sys/socket.h")]
3670        public const int SO_PASSCRED;
3671        [CCode (cheader_filename = "sys/socket.h")]
3672        public const int SO_PEERCRED;
3673        [CCode (cheader_filename = "sys/socket.h")]
3674        public const int SO_RCVLOWAT;
3675        [CCode (cheader_filename = "sys/socket.h")]
3676        public const int SO_SNDLOWAT;
3677        [CCode (cheader_filename = "sys/socket.h")]
3678        public const int SO_RCVTIMEO;
3679        [CCode (cheader_filename = "sys/socket.h")]
3680        public const int SO_SNDTIMEO;
3681        [CCode (cheader_filename = "sys/socket.h")]
3682        public const int SO_SECURITY_AUTHENTICATION;
3683        [CCode (cheader_filename = "sys/socket.h")]
3684        public const int SO_SECURITY_ENCRYPTION_TRANSPORT;
3685        [CCode (cheader_filename = "sys/socket.h")]
3686        public const int SO_SECURITY_ENCRYPTION_NETWORK;
3687        [CCode (cheader_filename = "sys/socket.h")]
3688        public const int SO_BINDTODEVICE;
3689        [CCode (cheader_filename = "sys/socket.h")]
3690        public const int SO_ATTACH_FILTER;
3691        [CCode (cheader_filename = "sys/socket.h")]
3692        public const int SO_DETACH_FILTER;
3693        [CCode (cheader_filename = "sys/socket.h")]
3694        public const int SO_GET_FILTER;
3695        [CCode (cheader_filename = "sys/socket.h")]
3696        public const int SO_PEERNAME;
3697        [CCode (cheader_filename = "sys/socket.h")]
3698        public const int SO_TIMESTAMP;
3699        [CCode (cheader_filename = "sys/socket.h")]
3700        public const int SCM_TIMESTAMP;
3701        [CCode (cheader_filename = "sys/socket.h")]
3702        public const int SO_ACCEPTCONN;
3703        [CCode (cheader_filename = "sys/socket.h")]
3704        public const int SO_PEERSEC;
3705        [CCode (cheader_filename = "sys/socket.h")]
3706        public const int SO_PASSSEC;
3707        [CCode (cheader_filename = "sys/socket.h")]
3708        public const int SO_TIMESTAMPNS;
3709        [CCode (cheader_filename = "sys/socket.h")]
3710        public const int SCM_TIMESTAMPNS;
3711        [CCode (cheader_filename = "sys/socket.h")]
3712        public const int SO_MARK;
3713        [CCode (cheader_filename = "sys/socket.h")]
3714        public const int SO_TIMESTAMPING;
3715        [CCode (cheader_filename = "sys/socket.h")]
3716        public const int SCM_TIMESTAMPING;
3717        [CCode (cheader_filename = "sys/socket.h")]
3718        public const int SO_PROTOCOL;
3719        [CCode (cheader_filename = "sys/socket.h")]
3720        public const int SO_DOMAIN;
3721        [CCode (cheader_filename = "sys/socket.h")]
3722        public const int SO_RXQ_OVFL;
3723        [CCode (cheader_filename = "sys/socket.h")]
3724        public const int SO_WIFI_STATUS;
3725        [CCode (cheader_filename = "sys/socket.h")]
3726        public const int SCM_WIFI_STATUS;
3727        [CCode (cheader_filename = "sys/socket.h")]
3728        public const int SO_PEEK_OFF;
3729        [CCode (cheader_filename = "sys/socket.h")]
3730        public const int SO_NOFCS;
3731        [CCode (cheader_filename = "sys/socket.h")]
3732        public const int SO_LOCK_FILTER;
3733        [CCode (cheader_filename = "sys/socket.h")]
3734        public const int SO_SELECT_ERR_QUEUE;
3735        [CCode (cheader_filename = "sys/socket.h")]
3736        public const int SO_BUSY_POLL;
3737        [CCode (cheader_filename = "sys/socket.h")]
3738        public const int SO_MAX_PACING_RATE;
3739        [CCode (cheader_filename = "sys/socket.h")]
3740        public const int SO_BPF_EXTENSIONS;
3741        [CCode (cheader_filename = "sys/socket.h")]
3742        public const int SO_INCOMING_CPU;
3743        [CCode (cheader_filename = "sys/socket.h")]
3744        public const int SO_ATTACH_BPF;
3745        [CCode (cheader_filename = "sys/socket.h")]
3746        public const int SO_DETACH_BPF;
3747        [CCode (cheader_filename = "sys/socket.h")]
3748        public const int SO_ATTACH_REUSEPORT_CBPF;
3749        [CCode (cheader_filename = "sys/socket.h")]
3750        public const int SO_ATTACH_REUSEPORT_EBPF;
3751        [CCode (cheader_filename = "sys/socket.h")]
3752        public const int SO_CNX_ADVICE;
3753    }
3754
3755    /*
3756     * SPI (Serial Peripheral Interface)
3757     */
3758
3759    [CCode (cprefix = "", lower_case_cprefix = "")]
3760    namespace Spi {
3761
3762        [CCode (cname = "spi_ioc_transfer", has_type_id = false, cheader_filename = "linux/spi/spidev.h")]
3763        public struct IocTransfer {
3764            public uint64  tx_buf;
3765            public uint64  rx_buf;
3766
3767            public uint32  len;
3768            public uint32  speed_hz;
3769
3770            public uint16  delay_usecs;
3771            public uint8   bits_per_word;
3772            public uint8   cs_change;
3773            public uint32  pad;
3774        }
3775
3776        /* mode constants */
3777        [CCode (cheader_filename = "linux/spi/spidev.h")]
3778        public const int SPI_CPHA;
3779        [CCode (cheader_filename = "linux/spi/spidev.h")]
3780        public const int SPI_CPOL;
3781
3782        [CCode (cheader_filename = "linux/spi/spidev.h")]
3783        public const int SPI_MODE_0;
3784        [CCode (cheader_filename = "linux/spi/spidev.h")]
3785        public const int SPI_MODE_1;
3786        [CCode (cheader_filename = "linux/spi/spidev.h")]
3787        public const int SPI_MODE_2;
3788        [CCode (cheader_filename = "linux/spi/spidev.h")]
3789        public const int SPI_MODE_3;
3790
3791        [CCode (cheader_filename = "linux/spi/spidev.h")]
3792        public const int SPI_CS_HIGH;
3793        [CCode (cheader_filename = "linux/spi/spidev.h")]
3794        public const int SPI_LSB_FIRST;
3795        [CCode (cheader_filename = "linux/spi/spidev.h")]
3796        public const int SPI_3WIRE;
3797        [CCode (cheader_filename = "linux/spi/spidev.h")]
3798        public const int SPI_LOOP;
3799        [CCode (cheader_filename = "linux/spi/spidev.h")]
3800        public const int SPI_NO_CS;
3801        [CCode (cheader_filename = "linux/spi/spidev.h")]
3802        public const int SPI_READY;
3803
3804        /* size */
3805        public int SPI_MSGSIZE(int N);
3806        public int SPI_IOC_MESSAGE(int N);
3807
3808        /* ioctls */
3809        [CCode (cheader_filename = "linux/spi/spidev.h")]
3810        public const int SPI_IOC_RD_MODE;
3811        [CCode (cheader_filename = "linux/spi/spidev.h")]
3812        public const int SPI_IOC_WR_MODE;
3813
3814        [CCode (cheader_filename = "linux/spi/spidev.h")]
3815        public const int SPI_IOC_RD_LSB_FIRST;
3816        [CCode (cheader_filename = "linux/spi/spidev.h")]
3817        public const int SPI_IOC_WR_LSB_FIRST;
3818
3819        [CCode (cheader_filename = "linux/spi/spidev.h")]
3820        public const int SPI_IOC_RD_BITS_PER_WORD;
3821        [CCode (cheader_filename = "linux/spi/spidev.h")]
3822        public const int SPI_IOC_WR_BITS_PER_WORD;
3823        [CCode (cheader_filename = "linux/spi/spidev.h")]
3824        public const int SPI_IOC_RD_MAX_SPEED_HZ;
3825        [CCode (cheader_filename = "linux/spi/spidev.h")]
3826        public const int SPI_IOC_WR_MAX_SPEED_HZ;
3827    }
3828
3829    /*
3830     * Terminal input/output
3831     */
3832    [CCode (cprefix = "", lower_case_cprefix = "")]
3833    namespace Termios {
3834
3835        /*
3836         * non-posix functions
3837         */
3838        [CCode (cheader_filename = "stdlib.h")]
3839        public int ptsname_r (int fd, char[] buf);
3840
3841        /*
3842         * non-posix flags
3843         */
3844        [CCode (cheader_filename = "termios.h")]
3845        public const int OLCUC;
3846
3847        /*
3848         * non-posix constants
3849         */
3850
3851        // flow control
3852        [CCode (cheader_filename = "termios.h")]
3853        public const int CRTSCTS;
3854        // v24 modem lines
3855        [CCode (cheader_filename = "termios.h")]
3856        public const int TIOCM_LE;
3857        [CCode (cheader_filename = "termios.h")]
3858        public const int TIOCM_DTR;
3859        [CCode (cheader_filename = "termios.h")]
3860        public const int TIOCM_RTS;
3861        [CCode (cheader_filename = "termios.h")]
3862        public const int TIOCM_ST;
3863        [CCode (cheader_filename = "termios.h")]
3864        public const int TIOCM_SR;
3865        [CCode (cheader_filename = "termios.h")]
3866        public const int TIOCM_CTS;
3867        [CCode (cheader_filename = "termios.h")]
3868        public const int TIOCM_CARM;
3869        [CCode (cheader_filename = "termios.h")]
3870        public const int TIOCM_RNG;
3871        [CCode (cheader_filename = "termios.h")]
3872        public const int TIOCM_DSR;
3873        [CCode (cheader_filename = "termios.h")]
3874        public const int TIOCM_OUT1;
3875        [CCode (cheader_filename = "termios.h")]
3876        public const int TIOCM_OUT2;
3877        [CCode (cheader_filename = "termios.h")]
3878        public const int TIOCM_LOOP;
3879        // baud rates
3880        [CCode (cheader_filename = "termios.h")]
3881        public const int B460800;
3882        [CCode (cheader_filename = "termios.h")]
3883        public const int B500000;
3884        [CCode (cheader_filename = "termios.h")]
3885        public const int B576000;
3886        [CCode (cheader_filename = "termios.h")]
3887        public const int B921600;
3888        [CCode (cheader_filename = "termios.h")]
3889        public const int B1000000;
3890        [CCode (cheader_filename = "termios.h")]
3891        public const int B1152000;
3892        [CCode (cheader_filename = "termios.h")]
3893        public const int B1500000;
3894        [CCode (cheader_filename = "termios.h")]
3895        public const int B2000000;
3896        [CCode (cheader_filename = "termios.h")]
3897        public const int B2500000;
3898        [CCode (cheader_filename = "termios.h")]
3899        public const int B3000000;
3900        [CCode (cheader_filename = "termios.h")]
3901        public const int B3500000;
3902        [CCode (cheader_filename = "termios.h")]
3903        public const int B4000000;
3904        // misc
3905        [CCode (cheader_filename = "termios.h")]
3906        public const Posix.tcflag_t CBAUD;
3907        [CCode (cheader_filename = "termios.h")]
3908        public const Posix.tcflag_t CBAUDEX;
3909        [CCode (cheader_filename = "termios.h")]
3910        public const Posix.tcflag_t ECHOCTL;
3911        [CCode (cheader_filename = "termios.h")]
3912        public const Posix.tcflag_t ECHOPRT;
3913        [CCode (cheader_filename = "termios.h")]
3914        public const Posix.tcflag_t ECHOKE;
3915
3916        /*
3917         * ioctls
3918         */
3919        [CCode (cheader_filename = "sys/ioctl.h")]
3920        public const int TCGETS;
3921        [CCode (cheader_filename = "sys/ioctl.h")]
3922        public const int TCSETS;
3923        [CCode (cheader_filename = "sys/ioctl.h")]
3924        public const int TCSETSW;
3925        [CCode (cheader_filename = "sys/ioctl.h")]
3926        public const int TCSETSF;
3927        [CCode (cheader_filename = "sys/ioctl.h")]
3928        public const int TCGETA;
3929        [CCode (cheader_filename = "sys/ioctl.h")]
3930        public const int TCSETA;
3931        [CCode (cheader_filename = "sys/ioctl.h")]
3932        public const int TCSETAW;
3933        [CCode (cheader_filename = "sys/ioctl.h")]
3934        public const int TCSETAF;
3935        [CCode (cheader_filename = "sys/ioctl.h")]
3936        public const int TCSBRK;
3937        [CCode (cheader_filename = "sys/ioctl.h")]
3938        public const int TCXONC;
3939        [CCode (cheader_filename = "sys/ioctl.h")]
3940        public const int TCFLSH;
3941        [CCode (cheader_filename = "sys/ioctl.h")]
3942        public const int TIOCEXCL;
3943        [CCode (cheader_filename = "sys/ioctl.h")]
3944        public const int TIOCNXCL;
3945        [CCode (cheader_filename = "sys/ioctl.h")]
3946        public const int TIOCSCTTY;
3947        [CCode (cheader_filename = "sys/ioctl.h")]
3948        public const int TIOCGPGRP;
3949        [CCode (cheader_filename = "sys/ioctl.h")]
3950        public const int TIOCSPGRP;
3951        [CCode (cheader_filename = "sys/ioctl.h")]
3952        public const int TIOCOUTQ;
3953        [CCode (cheader_filename = "sys/ioctl.h")]
3954        public const int TIOCSTI;
3955        [CCode (cheader_filename = "sys/ioctl.h")]
3956        public const int TIOCGWINSZ;
3957        [CCode (cheader_filename = "sys/ioctl.h")]
3958        public const int TIOCSWINSZ;
3959        [CCode (cheader_filename = "sys/ioctl.h")]
3960        public const int TIOCMGET;
3961        [CCode (cheader_filename = "sys/ioctl.h")]
3962        public const int TIOCMBIS;
3963        [CCode (cheader_filename = "sys/ioctl.h")]
3964        public const int TIOCMBIC;
3965        [CCode (cheader_filename = "sys/ioctl.h")]
3966        public const int TIOCMSET;
3967        [CCode (cheader_filename = "sys/ioctl.h")]
3968        public const int TIOCGSOFTCAR;
3969        [CCode (cheader_filename = "sys/ioctl.h")]
3970        public const int TIOCSSOFTCAR;
3971        [CCode (cheader_filename = "sys/ioctl.h")]
3972        public const int FIONREAD;
3973        [CCode (cheader_filename = "sys/ioctl.h")]
3974        public const int TIOCINQ;
3975        [CCode (cheader_filename = "sys/ioctl.h")]
3976        public const int TIOCLINUX;
3977        [CCode (cheader_filename = "sys/ioctl.h")]
3978        public const int TIOCCONS;
3979        [CCode (cheader_filename = "sys/ioctl.h")]
3980        public const int TIOCGSERIAL;
3981        [CCode (cheader_filename = "sys/ioctl.h")]
3982        public const int TIOCSSERIAL;
3983        [CCode (cheader_filename = "sys/ioctl.h")]
3984        public const int TIOCPKT;
3985        [CCode (cheader_filename = "sys/ioctl.h")]
3986        public const int FIONBIO;
3987        [CCode (cheader_filename = "sys/ioctl.h")]
3988        public const int TIOCNOTTY;
3989        [CCode (cheader_filename = "sys/ioctl.h")]
3990        public const int TIOCSETD;
3991        [CCode (cheader_filename = "sys/ioctl.h")]
3992        public const int TIOCGETD;
3993        [CCode (cheader_filename = "sys/ioctl.h")]
3994        public const int TCSBRKP;
3995        [CCode (cheader_filename = "sys/ioctl.h")]
3996        public const int TIOCSBRK;
3997        [CCode (cheader_filename = "sys/ioctl.h")]
3998        public const int TIOCCBRK;
3999        [CCode (cheader_filename = "sys/ioctl.h")]
4000        public const int TIOCGSID;
4001        [CCode (cheader_filename = "sys/ioctl.h")]
4002        public const int TCGETS2;
4003        [CCode (cheader_filename = "sys/ioctl.h")]
4004        public const int TCSETS2;
4005        [CCode (cheader_filename = "sys/ioctl.h")]
4006        public const int TCSETSW2;
4007        [CCode (cheader_filename = "sys/ioctl.h")]
4008        public const int TCSETSF2;
4009        [CCode (cheader_filename = "sys/ioctl.h")]
4010        public const int TIOCGRS485;
4011        [CCode (cheader_filename = "sys/ioctl.h")]
4012        public const int TIOCSRS485;
4013        [CCode (cheader_filename = "sys/ioctl.h")]
4014        public const int TIOCGPTN;
4015        [CCode (cheader_filename = "sys/ioctl.h")]
4016        public const int TIOCSPTLCK;
4017        [CCode (cheader_filename = "sys/ioctl.h")]
4018        public const int TCGETX;
4019        [CCode (cheader_filename = "sys/ioctl.h")]
4020        public const int TCSETX;
4021        [CCode (cheader_filename = "sys/ioctl.h")]
4022        public const int TCSETXF;
4023        [CCode (cheader_filename = "sys/ioctl.h")]
4024        public const int TCSETXW;
4025
4026        [CCode (cheader_filename = "sys/ioctl.h")]
4027        public const int FIONCLEX;
4028        [CCode (cheader_filename = "sys/ioctl.h")]
4029        public const int FIOCLEX;
4030        [CCode (cheader_filename = "sys/ioctl.h")]
4031        public const int FIOASYNC;
4032        [CCode (cheader_filename = "sys/ioctl.h")]
4033        public const int TIOCSERCONFIG;
4034        [CCode (cheader_filename = "sys/ioctl.h")]
4035        public const int TIOCSERGWILD;
4036        [CCode (cheader_filename = "sys/ioctl.h")]
4037        public const int TIOCSERSWILD;
4038        [CCode (cheader_filename = "sys/ioctl.h")]
4039        public const int TIOCGLCKTRMIOS;
4040        [CCode (cheader_filename = "sys/ioctl.h")]
4041        public const int TIOCSLCKTRMIOS;
4042        [CCode (cheader_filename = "sys/ioctl.h")]
4043        public const int TIOCSERGSTRUCT;
4044        [CCode (cheader_filename = "sys/ioctl.h")]
4045        public const int TIOCSERGETLSR;
4046        [CCode (cheader_filename = "sys/ioctl.h")]
4047        public const int TIOCSERGETMULTI;
4048        [CCode (cheader_filename = "sys/ioctl.h")]
4049        public const int TIOCSERSETMULTI;
4050
4051        [CCode (cheader_filename = "sys/ioctl.h")]
4052        public const int TIOCMIWAIT;
4053        [CCode (cheader_filename = "sys/ioctl.h")]
4054        public const int TIOCGICOUNT;
4055        [CCode (cheader_filename = "sys/ioctl.h")]
4056        public const int TIOCGHAYESESP;
4057        [CCode (cheader_filename = "sys/ioctl.h")]
4058        public const int TIOCSHAYESESP;
4059        [CCode (cheader_filename = "sys/ioctl.h")]
4060        public const int FIOQSIZE;
4061
4062        [CCode (cheader_filename = "sys/ioctl.h")]
4063        public const int TIOCPKT_DATA;
4064        [CCode (cheader_filename = "sys/ioctl.h")]
4065        public const int TIOCPKT_FLUSHREAD;
4066        [CCode (cheader_filename = "sys/ioctl.h")]
4067        public const int TIOCPKT_FLUSHWRITE;
4068        [CCode (cheader_filename = "sys/ioctl.h")]
4069        public const int TIOCPKT_STOP;
4070        [CCode (cheader_filename = "sys/ioctl.h")]
4071        public const int TIOCPKT_START;
4072        [CCode (cheader_filename = "sys/ioctl.h")]
4073        public const int TIOCPKT_NOSTOP;
4074        [CCode (cheader_filename = "sys/ioctl.h")]
4075        public const int TIOCPKT_DOSTOP;
4076
4077        [CCode (cheader_filename = "sys/ioctl.h")]
4078        public const int TIOCSER_TEMT;
4079    }
4080
4081    /*
4082     * Userspace Input
4083     */
4084    [CCode (cprefix = "", lower_case_cprefix = "")]
4085    namespace UserspaceInput {
4086        [CCode (cheader_filename = "linux/uinput.h")]
4087        public const int VERSION;
4088
4089        [CCode (cheader_filename = "linux/uinput.h")]
4090        public const int EV_UINPUT;
4091        [CCode (cheader_filename = "linux/uinput.h")]
4092        public const int UI_FF_UPLOAD;
4093        [CCode (cheader_filename = "linux/uinput.h")]
4094        public const int UI_FF_ERASE;
4095
4096        [CCode (cheader_filename = "linux/uinput.h")]
4097        public const int UI_DEV_CREATE;
4098        [CCode (cheader_filename = "linux/uinput.h")]
4099        public const int UI_DEV_DESTROY;
4100        [CCode (cheader_filename = "linux/uinput.h")]
4101        public const int UI_SET_EVBIT;
4102        [CCode (cheader_filename = "linux/uinput.h")]
4103        public const int UI_SET_KEYBIT;
4104        [CCode (cheader_filename = "linux/uinput.h")]
4105        public const int UI_SET_RELBIT;
4106        [CCode (cheader_filename = "linux/uinput.h")]
4107        public const int UI_SET_ABSBIT;
4108        [CCode (cheader_filename = "linux/uinput.h")]
4109        public const int UI_SET_MSCBIT;
4110        [CCode (cheader_filename = "linux/uinput.h")]
4111        public const int UI_SET_LEDBIT;
4112        [CCode (cheader_filename = "linux/uinput.h")]
4113        public const int UI_SET_SNDBIT;
4114        [CCode (cheader_filename = "linux/uinput.h")]
4115        public const int UI_SET_FFBIT;
4116        [CCode (cheader_filename = "linux/uinput.h")]
4117        public const int UI_SET_PHYS;
4118        [CCode (cheader_filename = "linux/uinput.h")]
4119        public const int UI_SET_SWBIT;
4120
4121        [CCode (cname = "struct uinput_user_dev", cheader_filename = "linux/uinput.h")]
4122        struct UserDevice
4123        {
4124            char name[80];
4125            Input.Id id;
4126            int ff_effects_max;
4127            int absmax[64];
4128            int absmin[64];
4129            int absfuzz[64];
4130            int absflat[64];
4131        }
4132    }
4133
4134    /*
4135     * Virtual Terminal
4136     */
4137    [CCode (cprefix = "", lower_case_cprefix = "")]
4138    namespace VirtualTerminal {
4139
4140        /* constants */
4141
4142        [CCode (cheader_filename = "linux/vt.h")]
4143        public const int MIN_NR_CONSOLES;
4144        [CCode (cheader_filename = "linux/vt.h")]
4145        public const int MAX_NR_CONSOLES;
4146        [CCode (cheader_filename = "linux/vt.h")]
4147        public const int MAX_NR_USER_CONSOLES;
4148        [CCode (cheader_filename = "linux/vt.h")]
4149        public const int VT_OPENQRY;
4150        [CCode (cheader_filename = "linux/vt.h")]
4151        public const int VT_GETMODE;
4152        [CCode (cheader_filename = "linux/vt.h")]
4153        public const int VT_SETMODE;
4154        [CCode (cheader_filename = "linux/vt.h")]
4155        public const int VT_AUTO;
4156        [CCode (cheader_filename = "linux/vt.h")]
4157        public const int VT_PROCESS;
4158        [CCode (cheader_filename = "linux/vt.h")]
4159        public const int VT_ACKACQ;
4160        [CCode (cheader_filename = "linux/vt.h")]
4161        public const int VT_GETSTATE;
4162        [CCode (cheader_filename = "linux/vt.h")]
4163        public const int VT_SENDSIG;
4164        [CCode (cheader_filename = "linux/vt.h")]
4165        public const int VT_RELDISP;
4166        [CCode (cheader_filename = "linux/vt.h")]
4167        public const int VT_ACTIVATE;
4168        [CCode (cheader_filename = "linux/vt.h")]
4169        public const int VT_WAITACTIVE;
4170        [CCode (cheader_filename = "linux/vt.h")]
4171        public const int VT_DISALLOCATE;
4172        [CCode (cheader_filename = "linux/vt.h")]
4173        public const int VT_RESIZE;
4174        [CCode (cheader_filename = "linux/vt.h")]
4175        public const int VT_RESIZEX;
4176        [CCode (cheader_filename = "linux/vt.h")]
4177        public const int VT_LOCKSWITCH;
4178        [CCode (cheader_filename = "linux/vt.h")]
4179        public const int VT_UNLOCKSWITCH;
4180        [CCode (cheader_filename = "linux/vt.h")]
4181        public const int VT_GETHIFONTMASK;
4182
4183        /* structs */
4184
4185        [CCode (cname = "struct vt_mode", has_type_id = false, cheader_filename = "linux/vt.h")]
4186        public struct Mode {
4187            public char mode;
4188            public char waitv;
4189            public int16 relsig;
4190            public int16 acqsig;
4191            public int16 frsig;
4192        }
4193
4194        [CCode (cname = "struct vt_stat", has_type_id = false, cheader_filename = "linux/vt.h")]
4195        public struct Stat {
4196            public uint16 v_active;
4197            public uint16 v_signal;
4198            public uint16 v_state;
4199        }
4200
4201        [CCode (cname = "struct vt_sizes", has_type_id = false, cheader_filename = "linux/vt.h")]
4202        public struct Sizes {
4203            public uint16 v_rows;
4204            public uint16 v_cols;
4205            public uint16 v_scrollsize;
4206        }
4207
4208        [CCode (cname = "struct vt_consize", has_type_id = false, cheader_filename = "linux/vt.h")]
4209        public struct Consize {
4210            public uint16 v_rows;
4211            public uint16 v_cols;
4212            public uint16 v_vlin;
4213            public uint16 v_clin;
4214            public uint16 v_vcol;
4215            public uint16 v_ccol;
4216        }
4217    }
4218
4219    /*
4220     * Wireless Extensions (WEXT) Infrastructure
4221     */
4222    [CCode (cprefix = "", lower_case_cprefix = "")]
4223    namespace WirelessExtensions {
4224
4225        [CCode (cname = "struct iw_point", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
4226        public struct IwPoint
4227        {
4228            public void *pointer;
4229            public uint16 length;
4230            public uint16 flags;
4231        }
4232
4233        [CCode (cname = "struct iw_param", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
4234        public struct IwParam
4235        {
4236            public int32 value;
4237            public uint8 fixed;
4238            public uint8 disabled;
4239            public uint16 flags;
4240        }
4241
4242        [CCode (cname = "struct iw_freq", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
4243        public struct IwFreq
4244        {
4245            public int32 m;
4246            public int16 e;
4247            public uint8 i;
4248            public uint8 flags;
4249        }
4250
4251        [CCode (cname = "struct iw_quality", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
4252        public struct IwQuality
4253        {
4254            public uint8 qual;
4255            public uint8 level;
4256            public uint8 noise;
4257            public uint8 updated;
4258        }
4259
4260        [CCode (cname = "struct iwreq_data", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
4261        public struct IwReqData
4262        {
4263            [CCode (array_length = false)]
4264            public string name;
4265            public IwPoint essid;
4266            public IwParam nwid;
4267            public IwFreq freq;
4268            public IwParam sens;
4269            public IwParam bitrate;
4270            public IwParam txpower;
4271            public IwParam rts;
4272            public IwParam frag;
4273            public uint32 mode;
4274            public IwParam retry;
4275            public IwPoint encoding;
4276            public IwParam power;
4277            public IwQuality qual;
4278            public Posix.SockAddr ap_addr;
4279            public Posix.SockAddr addr;
4280            public IwParam param;
4281            public IwPoint data;
4282        }
4283
4284        [CCode (cname = "struct iwreq", has_type_id = false, cheader_filename = "linux/wireless.h", destroy_function = "")]
4285        public struct IwReq
4286        {
4287            [CCode (array_length = false)]
4288            public char[] ifr_name;
4289            public IwReqData u;
4290        }
4291
4292        /* constants */
4293        // TBD
4294
4295        /* ioctls */
4296        [CCode (cheader_filename = "linux/wireless.h")]
4297        public const int SIOCSIWCOMMIT;
4298        [CCode (cheader_filename = "linux/wireless.h")]
4299        public const int SIOCGIWNAME;
4300        [CCode (cheader_filename = "linux/wireless.h")]
4301        public const int SIOCSIWNWID;
4302        [CCode (cheader_filename = "linux/wireless.h")]
4303        public const int SIOCGIWNWID;
4304        [CCode (cheader_filename = "linux/wireless.h")]
4305        public const int SIOCSIWFREQ;
4306        [CCode (cheader_filename = "linux/wireless.h")]
4307        public const int SIOCGIWFREQ;
4308        [CCode (cheader_filename = "linux/wireless.h")]
4309        public const int SIOCSIWMODE;
4310        [CCode (cheader_filename = "linux/wireless.h")]
4311        public const int SIOCGIWMODE;
4312        [CCode (cheader_filename = "linux/wireless.h")]
4313        public const int SIOCSIWSENS;
4314        [CCode (cheader_filename = "linux/wireless.h")]
4315        public const int SIOCGIWSENS;
4316        [CCode (cheader_filename = "linux/wireless.h")]
4317        public const int SIOCSIWRANGE;
4318        [CCode (cheader_filename = "linux/wireless.h")]
4319        public const int SIOCGIWRANGE;
4320        [CCode (cheader_filename = "linux/wireless.h")]
4321        public const int SIOCSIWPRIV;
4322        [CCode (cheader_filename = "linux/wireless.h")]
4323        public const int SIOCGIWPRIV;
4324        [CCode (cheader_filename = "linux/wireless.h")]
4325        public const int SIOCSIWSTATS;
4326        [CCode (cheader_filename = "linux/wireless.h")]
4327        public const int SIOCGIWSTATS;
4328        [CCode (cheader_filename = "linux/wireless.h")]
4329        public const int SIOCSIWSPY;
4330        [CCode (cheader_filename = "linux/wireless.h")]
4331        public const int SIOCGIWSPY;
4332        [CCode (cheader_filename = "linux/wireless.h")]
4333        public const int SIOCSIWTHRSPY;
4334        [CCode (cheader_filename = "linux/wireless.h")]
4335        public const int SIOCGIWTHRSPY;
4336        [CCode (cheader_filename = "linux/wireless.h")]
4337        public const int SIOCSIWAP;
4338        [CCode (cheader_filename = "linux/wireless.h")]
4339        public const int SIOCGIWAP;
4340        [CCode (cheader_filename = "linux/wireless.h")]
4341        public const int SIOCGIWAPLIST;
4342        [CCode (cheader_filename = "linux/wireless.h")]
4343        public const int SIOCSIWSCAN;
4344        [CCode (cheader_filename = "linux/wireless.h")]
4345        public const int SIOCGIWSCAN;
4346        [CCode (cheader_filename = "linux/wireless.h")]
4347        public const int SIOCSIWESSID;
4348        [CCode (cheader_filename = "linux/wireless.h")]
4349        public const int SIOCGIWESSID;
4350        [CCode (cheader_filename = "linux/wireless.h")]
4351        public const int SIOCSIWNICKN;
4352        [CCode (cheader_filename = "linux/wireless.h")]
4353        public const int SIOCGIWNICKN;
4354        [CCode (cheader_filename = "linux/wireless.h")]
4355        public const int SIOCSIWRATE;
4356        [CCode (cheader_filename = "linux/wireless.h")]
4357        public const int SIOCGIWRATE;
4358        [CCode (cheader_filename = "linux/wireless.h")]
4359        public const int SIOCSIWRTS;
4360        [CCode (cheader_filename = "linux/wireless.h")]
4361        public const int SIOCGIWRTS;
4362        [CCode (cheader_filename = "linux/wireless.h")]
4363        public const int SIOCSIWFRAG;
4364        [CCode (cheader_filename = "linux/wireless.h")]
4365        public const int SIOCGIWFRAG;
4366        [CCode (cheader_filename = "linux/wireless.h")]
4367        public const int SIOCSIWTXPOW;
4368        [CCode (cheader_filename = "linux/wireless.h")]
4369        public const int SIOCGIWTXPOW;
4370        [CCode (cheader_filename = "linux/wireless.h")]
4371        public const int SIOCSIWRETRY;
4372        [CCode (cheader_filename = "linux/wireless.h")]
4373        public const int SIOCGIWRETRY;
4374        [CCode (cheader_filename = "linux/wireless.h")]
4375        public const int SIOCSIWENCODE;
4376        [CCode (cheader_filename = "linux/wireless.h")]
4377        public const int SIOCGIWENCODE;
4378        [CCode (cheader_filename = "linux/wireless.h")]
4379        public const int SIOCSIWPOWER;
4380        [CCode (cheader_filename = "linux/wireless.h")]
4381        public const int SIOCGIWPOWER;
4382        [CCode (cheader_filename = "linux/wireless.h")]
4383        public const int SIOCSIWGENIE;
4384        [CCode (cheader_filename = "linux/wireless.h")]
4385        public const int SIOCGIWGENIE;
4386        [CCode (cheader_filename = "linux/wireless.h")]
4387        public const int SIOCSIWMLME;
4388        [CCode (cheader_filename = "linux/wireless.h")]
4389        public const int SIOCSIWAUTH;
4390        [CCode (cheader_filename = "linux/wireless.h")]
4391        public const int SIOCGIWAUTH;
4392        [CCode (cheader_filename = "linux/wireless.h")]
4393        public const int SIOCSIWENCODEEXT;
4394        [CCode (cheader_filename = "linux/wireless.h")]
4395        public const int SIOCGIWENCODEEXT;
4396        [CCode (cheader_filename = "linux/wireless.h")]
4397        public const int SIOCSIWPMKSA;
4398        [CCode (cheader_filename = "linux/wireless.h")]
4399        public const int SIOCIWFIRSTPRIV;
4400        [CCode (cheader_filename = "linux/wireless.h")]
4401        public const int SIOCIWLASTPRIV;
4402    }
4403
4404}
4405