#include <stdarg.h> #include <sys/ioctl.h> /* Derived from development/ndk/platforms/android-3/arch-arm/include/asm/ioctls.h */ #define TCGETS_PORTABLE 0x5401 #define TCSETS_PORTABLE 0x5402 #define TCSETSW_PORTABLE 0x5403 #define TCSETSF_PORTABLE 0x5404 #define TCGETA_PORTABLE 0x5405 #define TCSETA_PORTABLE 0x5406 #define TCSETAW_PORTABLE 0x5407 #define TCSETAF_PORTABLE 0x5408 #define TCSBRK_PORTABLE 0x5409 #define TCXONC_PORTABLE 0x540A #define TCFLSH_PORTABLE 0x540B #define TIOCEXCL_PORTABLE 0x540C #define TIOCNXCL_PORTABLE 0x540D #define TIOCSCTTY_PORTABLE 0x540E #define TIOCGPGRP_PORTABLE 0x540F #define TIOCSPGRP_PORTABLE 0x5410 #define TIOCOUTQ_PORTABLE 0x5411 #define TIOCSTI_PORTABLE 0x5412 #define TIOCGWINSZ_PORTABLE 0x5413 #define TIOCSWINSZ_PORTABLE 0x5414 #define TIOCMGET_PORTABLE 0x5415 #define TIOCMBIS_PORTABLE 0x5416 #define TIOCMBIC_PORTABLE 0x5417 #define TIOCMSET_PORTABLE 0x5418 #define TIOCGSOFTCAR_PORTABLE 0x5419 #define TIOCSSOFTCAR_PORTABLE 0x541A #define FIONREAD_PORTABLE 0x541B #define TIOCINQ_PORTABLE FIONREAD_PORTABLE #define TIOCLINUX_PORTABLE 0x541C #define TIOCCONS_PORTABLE 0x541D #define TIOCGSERIAL_PORTABLE 0x541E #define TIOCSSERIAL_PORTABLE 0x541F #define TIOCPKT_PORTABLE 0x5420 #define FIONBIO_PORTABLE 0x5421 #define TIOCNOTTY_PORTABLE 0x5422 #define TIOCSETD_PORTABLE 0x5423 #define TIOCGETD_PORTABLE 0x5424 #define TCSBRKP_PORTABLE 0x5425 #define TIOCSBRK_PORTABLE 0x5427 #define TIOCCBRK_PORTABLE 0x5428 #define TIOCGSID_PORTABLE 0x5429 //#define TIOCGPTN _IOR('T',0x30, unsigned int) //#define TIOCSPTLCK _IOW('T',0x31, int) #define FIONCLEX_PORTABLE 0x5450 #define FIOCLEX_PORTABLE 0x5451 #define FIOASYNC_PORTABLE 0x5452 #define TIOCSERCONFIG_PORTABLE 0x5453 #define TIOCSERGWILD_PORTABLE 0x5454 #define TIOCSERSWILD_PORTABLE 0x5455 #define TIOCGLCKTRMIOS_PORTABLE 0x5456 #define TIOCSLCKTRMIOS_PORTABLE 0x5457 #define TIOCSERGSTRUCT_PORTABLE 0x5458 #define TIOCSERGETLSR_PORTABLE 0x5459 #define TIOCSERGETMULTI_PORTABLE 0x545A #define TIOCSERSETMULTI_PORTABLE 0x545B #define TIOCMIWAIT_PORTABLE 0x545C #define TIOCGICOUNT_PORTABLE 0x545D #define FIOQSIZE_PORTABLE 0x545E /* x86 differs here */ #define TIOCPKT_DATA_PORTABLE 0 #define TIOCPKT_FLUSHREAD_PORTABLE 1 #define TIOCPKT_FLUSHWRITE_PORTABLE 2 #define TIOCPKT_STOP_PORTABLE 4 #define TIOCPKT_START_PORTABLE 8 #define TIOCPKT_NOSTOP_PORTABLE 16 #define TIOCPKT_DOSTOP_PORTABLE 32 #define TIOCSER_TEMT_PORTABLE 0x01 #if FIONREAD_PORTABLE==FIONREAD #error Build environment #endif static inline int mips_change_request(int request) { /* Only handles FIO* for now */ switch(request) { case FIONREAD_PORTABLE: return FIONREAD; case FIONBIO_PORTABLE: return FIONBIO; case FIONCLEX_PORTABLE: return FIONCLEX; case FIOCLEX_PORTABLE: return FIOCLEX; case FIOASYNC_PORTABLE: return FIOASYNC; case FIOQSIZE_PORTABLE: return FIOQSIZE; } return request; } extern int __ioctl(int, int, void *); int ioctl(int fd, int request, ...) { va_list ap; void * arg; va_start(ap, request); arg = va_arg(ap, void *); va_end(ap); return __ioctl(fd, mips_change_request(request), arg); }