コード例 #1
0
ファイル: dirread.c プロジェクト: Harvey-OS/apex
int32_t
_dirreadall(int fd, Dir **d)
{
    char *buf, *nbuf;
    int32_t n, ts;

    buf = nil;
    ts = 0;
    for(;;) {
        nbuf = realloc(buf, ts+DIRMAX);
        if(nbuf == nil) {
            free(buf);
            return -1;
        }
        buf = nbuf;
        n = __sys_read(fd, buf+ts, DIRMAX);
        if(n <= 0)
            break;
        ts += n;
    }
    if(ts >= 0)
        ts = _dirpackage(buf, ts, d);
    free(buf);
    return ts;
}
コード例 #2
0
ファイル: Retarget.c プロジェクト: Luke-91/SoftwareSec_ass3
int _sys_read (FILEHANDLE fh, U8 *buf, U32 len, int mode) 
{
#ifdef STDIO
    if (fh == STDIN) {
    /* Standard Input device. */
        int sz ;
        while((buf[0] = getkey()) == 0) ;
           ;
        for (sz = 0 ; sz <= len ; sz ++ ) {
            if(buf[sz] == 0) break ;
            else sz++ ;
            buf[sz] = getkey ();
        }
        return (sz);
    }
#endif
    if (fh > 0x8000) {
        return (-1);
    }
    #ifndef NO_FILESYSTEM
    return (__sys_read (fh, buf, len));
    #else
    return(0) ;
    #endif
}
コード例 #3
0
ファイル: thr_read.c プロジェクト: ele7enxxh/dtrace-pf
ssize_t
__read(int fd, void *buf, size_t nbytes)
{
	struct pthread *curthread = _get_curthread();
	ssize_t	ret;

	_thr_cancel_enter(curthread);
	ret = __sys_read(fd, buf, nbytes);
	_thr_cancel_leave(curthread, 1);

	return ret;
}
コード例 #4
0
ファイル: Retarget.c プロジェクト: samuelsilvaalves/Painel
int _sys_read (FILEHANDLE fh, U8 *buf, U32 len, int mode) {
#ifdef STDIO
  if (fh == STDIN) {
    /* Standard Input device. */
    for (  ; len; len--) {
      *buf++ = getkey ();
    }
    return (0);
  }
#endif
  if (fh > 0x8000) {
    return (-1);
  }
  return (__sys_read (fh, buf, len));
}
コード例 #5
0
ファイル: dirread.c プロジェクト: Harvey-OS/apex
int32_t
_dirread(int fd, Dir **d)
{
    char *buf;
    int32_t ts;

    buf = malloc(DIRMAX);
    if(buf == nil)
        return -1;
    ts = __sys_read(fd, buf, DIRMAX);
    if(ts >= 0)
        ts = _dirpackage(buf, ts, d);
    free(buf);
    return ts;
}
コード例 #6
0
ファイル: getpid.c プロジェクト: Harvey-OS/apex
pid_t
getpid(void)
{
	int n, f;
	char pidbuf[15];

	f = __sys_open("#c/pid", 0);
	n = __sys_read(f, pidbuf, sizeof pidbuf);
	if(n < 0)
		_syserrno();
	else
		n = atoi(pidbuf);
	__sys_close(f);
	return n;
}
コード例 #7
0
ファイル: tcgetattr.c プロジェクト: Harvey-OS/apex
int
tcgetattr(int fd, struct termios *t)
{
	int n;
	char buf[60];

	if(!isptty(fd)) {
		if(isatty(fd)) {
			/* If there is no emulation return sensible defaults */
			t->c_iflag = ISTRIP|ICRNL|IXON|IXOFF;
			t->c_oflag = OPOST|TAB3|ONLCR;
			t->c_cflag = B9600;
			t->c_lflag = ISIG|ICANON|ECHO|ECHOE|ECHOK;
			t->c_cc[VINTR] = CINTR;
			t->c_cc[VQUIT] = CQUIT;
			t->c_cc[VERASE] = CERASE;
			t->c_cc[VKILL] = CKILL;
			t->c_cc[VEOF] = CEOF;
			t->c_cc[VEOL] = CEOL;
			t->c_cc[VSTART] = CSTART;
			t->c_cc[VSTOP] = CSTOP;
			return 0;
		} else {
			errno = ENOTTY;
			return -1;
		}
	}
	if(seek(fd, -2, 0) != -2) {
		_syserrno();
		return -1;
	}

	n = __sys_read(fd, buf, 57);
	if(n < 0) {
		_syserrno();
		return -1;
	}

	t->c_iflag = strtoul(buf+4, 0, 16);
	t->c_oflag = strtoul(buf+9, 0, 16);
	t->c_cflag = strtoul(buf+14, 0, 16);
	t->c_lflag = strtoul(buf+19, 0, 16);

	for(n = 0; n < NCCS; n++)
		t->c_cc[n] = strtoul(buf+24+(n*3), 0, 16);

	return 0;
}
コード例 #8
0
ファイル: tcgetattr.c プロジェクト: Harvey-OS/apex
pid_t
tcgetpgrp(int fd)
{
	int n;
	pid_t pgrp;
	char buf[100];

	if(!isptty(fd)) {
		errno = ENOTTY;
		return -1;
	}
	if(seek(fd, -2, 0) != -2) {
		_syserrno();
		return -1;
	}
	n = __sys_read(fd, buf, sizeof(buf));
	if(n < 0) {
		_syserrno();
		return -1;
	}
	pgrp = atoi(buf+24+(NCCS*3));
	return pgrp;
}
コード例 #9
0
ファイル: debug_printf.c プロジェクト: Cheng-SG/BubbleCode
char *_debug_getstr(int *len)
{
    volatile int n = 0;;

#if CONFIG_DRIVER_PRINTF_REDLIBV2!=1
    _debug_printf_flush();
#endif

    for(n=0;n<DEBUG_INPUT_BUFFER_SIZE;n++)
        debug_read_buf[n] = 0;

    if(ISDEBUGACTIVE())
    {
#if CONFIG_DRIVER_PRINTF_REDLIBV2!=1
    	__read(0, debug_read_buf, DEBUG_INPUT_BUFFER_SIZE-1);
#else
    	__sys_read(0, debug_read_buf, DEBUG_INPUT_BUFFER_SIZE-1);
#endif
    }

    if(len)
        *len = small_strlen(debug_read_buf);
    return debug_read_buf;
}