EXPORT ID _tk_wai_dev_u( ID dd, ID reqid, W *asize, ER *ioer, TMO_U tmout ) { ER ercd; ercd = ChkSpaceRW(asize, sizeof(W)); if ( ercd < E_OK ) { goto err_ret; } ercd = ChkSpaceRW(ioer, sizeof(ER)); if ( ercd < E_OK ) { goto err_ret; } ercd = waitcomplete(dd, reqid, asize, ioer, tmout, AsyncReq); if ( ercd < E_OK ) { goto err_ret; } return ercd; err_ret: DEBUG_PRINT(("_tk_wai_dev_u ercd = %d\n", ercd)); return ercd; }
EXPORT ER _tk_swri_dev_d( ID dd, D start, CONST void *buf, W size, W *asize ) { ER ercd, ioercd; ercd = ChkSpaceRW(asize, sizeof(W)); if ( ercd < E_OK ) { goto err_ret; } ercd = request(dd, start, (void*)buf, size, TMO_FEVR, TDC_WRITE, SyncReq); if ( ercd < E_OK ) { goto err_ret; } ercd = waitcomplete(dd, ercd, asize, &ioercd, TMO_FEVR, SyncReq); if ( ercd < E_OK ) { goto err_ret; } return ioercd; err_ret: DEBUG_PRINT(("_tk_swri_dev ercd = %d\n", ercd)); return ercd; }
int sys_rtlist(struct lwp *l, const struct sys_rtlist_args *uap, register_t *retval) { int error; size_t len; (void)l; if ( SCARG(uap, buf) != NULL ) { error = ChkSpaceRW(SCARG(uap, buf), SCARG(uap, bufsz)); if ( error < E_OK ) { return EFAULT; } } len = SCARG(uap, bufsz); error = sysctl_rtable(SCARG(uap,af), SCARG(uap,cmd), SCARG(uap,flags), SCARG(uap,buf), &len ); if (error == 0) { *retval = len; } return error; }
/* * Get system timezone */ EXPORT ER _dt_getsystz(struct tzinfo* tz) { ER er; er = ChkSpaceRW(tz, sizeof(*tz)); if (er < E_OK) { return er; } *tz = systemTimeZone; return E_OK; }
int sys_gethostname(struct lwp *l, const struct sys_gethostname_args *uap, register_t *retval) { ER ercd; (void)l; ercd = ChkSpaceRW(SCARG(uap, name), SCARG(uap, len)); if ( ercd < E_OK ) { return EFAULT; } strlcpy(SCARG(uap, name), sys_hostname, SCARG(uap, len)); *retval = 0; return 0; }
int sys_getifaddrs(struct lwp *l, const struct sys_getifaddrs_args *uap, register_t *retval) { int error; size_t asize; (void)l; if ( SCARG(uap, buf) != NULL ) { error = ChkSpaceRW(SCARG(uap, buf), SCARG(uap, bufsz)); if ( error < E_OK ) { return EFAULT; } } error = getifaddrs(SCARG(uap,ifap), SCARG(uap,buf), SCARG(uap,bufsz), &asize); if (error == 0) { *retval = asize; } return error; }
EXPORT ER CheckSpaceRW( VP address, W len ) { return ChkSpaceRW(address, len); }