cregit-Linux how code gets into the kernel

Release 4.14 arch/um/drivers/slip_common.c

Directory: arch/um/drivers
// SPDX-License-Identifier: GPL-2.0
#include <string.h>
#include "slip_common.h"
#include <net_user.h>


int slip_proto_read(int fd, void *buf, int len, struct slip_proto *slip) { int i, n, size, start; if(slip->more > 0){ i = 0; while(i < slip->more){ size = slip_unesc(slip->ibuf[i++], slip->ibuf, &slip->pos, &slip->esc); if(size){ memcpy(buf, slip->ibuf, size); memmove(slip->ibuf, &slip->ibuf[i], slip->more - i); slip->more = slip->more - i; return size; } } slip->more = 0; } n = net_read(fd, &slip->ibuf[slip->pos], sizeof(slip->ibuf) - slip->pos); if(n <= 0) return n; start = slip->pos; for(i = 0; i < n; i++){ size = slip_unesc(slip->ibuf[start + i], slip->ibuf,&slip->pos, &slip->esc); if(size){ memcpy(buf, slip->ibuf, size); memmove(slip->ibuf, &slip->ibuf[start+i+1], n - (i + 1)); slip->more = n - (i + 1); return size; } } return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Jeff Dike285100.00%1100.00%
Total285100.00%1100.00%


int slip_proto_write(int fd, void *buf, int len, struct slip_proto *slip) { int actual, n; actual = slip_esc(buf, slip->obuf, len); n = net_write(fd, slip->obuf, actual); if(n < 0) return n; else return len; }

Contributors

PersonTokensPropCommitsCommitProp
Jeff Dike64100.00%1100.00%
Total64100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Jeff Dike35799.44%133.33%
Greg Kroah-Hartman10.28%133.33%
Al Viro10.28%133.33%
Total359100.00%3100.00%
Directory: arch/um/drivers
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.