/* termios.h: generic termios/termio user copying/translation */ #ifndef _ASM_GENERIC_TERMIOS_BASE_H #define _ASM_GENERIC_TERMIOS_BASE_H #include #ifndef __ARCH_TERMIO_GETPUT /* * Translate a "termio" structure into a "termios". Ugh. */ static inline int user_termio_to_kernel_termios(struct ktermios *termios, struct termio __user *termio) { unsigned short tmp; if (get_user(tmp, &termio->c_iflag) < 0) goto fault; termios->c_iflag = (0xffff0000 & termios->c_iflag) | tmp; if (get_user(tmp, &termio->c_oflag) < 0) goto fault; termios->c_oflag = (0xffff0000 & termios->c_oflag) | tmp; if (get_user(tmp, &termio->c_cflag) < 0) goto fault; termios->c_cflag = (0xffff0000 & termios->c_cflag) | tmp; if (get_user(tmp, &termio->c_lflag) < 0) goto fault; termios->c_lflag = (0xffff0000 & termios->c_lflag) | tmp; if (get_user(termios->c_line, &termio->c_line) < 0) goto fault; if (copy_from_user(termios->c_cc, termio->c_cc, NCC) != 0) goto fault; return 0; fault: return -EFAULT; } /* * Translate a "termios" structure into a "termio". Ugh. */ static inline int kernel_termios_to_user_termio(struct termio __user *termio, struct ktermios *termios) { if (put_user(termios->c_iflag, &termio->c_iflag) < 0 || put_user(termios->c_oflag, &termio->c_oflag) < 0 || put_user(termios->c_cflag, &termio->c_cflag) < 0 || put_user(termios->c_lflag, &termio->c_lflag) < 0 || put_user(termios->c_line, &termio->c_line) < 0 || copy_to_user(termio->c_cc, termios->c_cc, NCC) != 0) return -EFAULT; return 0; } #ifndef user_termios_to_kernel_termios #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios)) #endif #ifndef kernel_termios_to_user_termios #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios)) #endif #define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) #define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) #endif /* __ARCH_TERMIO_GETPUT */ #endif /* _ASM_GENERIC_TERMIOS_BASE_H */ ='hidden' name='id' value='853a14ba4682f820266469979c9297debc05f60c'/>
path: root/include/net
AgeCommit message (Expand)AuthorFilesLines
2017-02-10net/act_pedit: Introduce 'add' operationAmir Vadai1-0/+1
2017-02-10net/act_pedit: Support using offset relative to the conventional network headersAmir Vadai1-0/+5
2017-02-10switchdev: bridge: Offload mc router portsNogah Frankel1-0/+2
2017-02-10switchdev: bridge: Offload multicast disabledNogah Frankel1-0/+2
2017-02-10sched: move tcf_proto_destroy and tcf_destroy_chain helpers into cls_apiJiri Pirko2-2/+2
2017-02-10sched: rename tcf_destroy to tcf_destroy_protoJiri Pirko1-1/+1
2017-02-10ipv4: fib: Add events for FIB replace and appendIdo Schimmel1-1/+2
2017-02-09sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Requ...Xin Long1-0/+2
2017-02-09sctp: add support for generating stream reconf add incoming/outgoing streams ...Xin Long1-0/+3
2017-02-09sctp: implement sender-side procedures for SSN/TSN Reset Request ParameterXin Long1-0/+1
2017-02-09sctp: add support for generating stream reconf ssn/tsn reset request chunkXin Long1-0/+2
2017-02-08ipv4: fib: Notify about nexthop status changesIdo Schimmel1-0/+7
2017-02-08gro_cells: move to net/core/gro_cells.cEric Dumazet1-82/+4
2017-02-07Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller