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