version 1.199, 2017/11/08 00:42:12 |
version 1.200, 2017/11/08 00:51:47 |
Line 782 procfs_getattr(void *v) |
|
Line 782 procfs_getattr(void *v) |
|
case PFSself: |
case PFSself: |
case PFScurproc: |
case PFScurproc: |
vap->va_bytes = vap->va_size = |
vap->va_bytes = vap->va_size = |
/*###785 [cc] error: 'bf' undeclared (first use in this function)%%%*/ |
|
/*###785 [cc] note: each undeclared identifier is reported only once for each function it appears in%%%*/ |
|
snprintf(bf, sizeof(bf), "%ld", (long)curproc->p_pid); |
snprintf(bf, sizeof(bf), "%ld", (long)curproc->p_pid); |
break; |
break; |
case PFStask: |
case PFStask: |
Line 843 procfs_getattr(void *v) |
|
Line 841 procfs_getattr(void *v) |
|
vap->va_bytes = vap->va_size = procp->p_execsw->es_arglen; |
vap->va_bytes = vap->va_size = procp->p_execsw->es_arglen; |
break; |
break; |
|
|
|
|
#if defined(PT_GETREGS) || defined(PT_SETREGS) |
#if defined(PT_GETREGS) || defined(PT_SETREGS) |
case PFSregs: |
case PFSregs: |
vap->va_bytes = vap->va_size = sizeof(struct reg); |
vap->va_bytes = vap->va_size = sizeof(struct reg); |
Line 884 procfs_getattr(void *v) |
|
Line 881 procfs_getattr(void *v) |
|
|
|
case PFScwd: |
case PFScwd: |
case PFSchroot: |
case PFSchroot: |
/*###885 [cc] error: 'bp' undeclared (first use in this function)%%%*/ |
|
bp = path + MAXPATHLEN; |
bp = path + MAXPATHLEN; |
*--bp = '\0'; |
*--bp = '\0'; |
procfs_dir(pfs->pfs_type, curlwp, procp, &bp, path, |
procfs_dir(pfs->pfs_type, curlwp, procp, &bp, path, |
Line 1601 procfs_readlink(void *v) |
|
Line 1597 procfs_readlink(void *v) |
|
int len = 0; |
int len = 0; |
int error = 0; |
int error = 0; |
struct pfsnode *pfs = VTOPFS(ap->a_vp); |
struct pfsnode *pfs = VTOPFS(ap->a_vp); |
struct proc *pown; |
struct proc *pown = NULL; |
|
|
if (pfs->pfs_fileno == PROCFS_FILENO(0, PFScurproc, -1)) |
if (pfs->pfs_fileno == PROCFS_FILENO(0, PFScurproc, -1)) |
len = snprintf(bf, sizeof(bf), "%ld", (long)curproc->p_pid); |
len = snprintf(bf, sizeof(bf), "%ld", (long)curproc->p_pid); |
Line 1614 procfs_readlink(void *v) |
|
Line 1610 procfs_readlink(void *v) |
|
return error; |
return error; |
bp = pown->p_path; |
bp = pown->p_path; |
len = strlen(bp); |
len = strlen(bp); |
procfs_proc_unlock(pown); |
|
} else if (pfs->pfs_fileno == PROCFS_FILENO(pfs->pfs_pid, PFScwd, -1) || |
} else if (pfs->pfs_fileno == PROCFS_FILENO(pfs->pfs_pid, PFScwd, -1) || |
pfs->pfs_fileno == PROCFS_FILENO(pfs->pfs_pid, PFSchroot, -1)) { |
pfs->pfs_fileno == PROCFS_FILENO(pfs->pfs_pid, PFSchroot, -1)) { |
if ((error = procfs_proc_lock(pfs->pfs_pid, &pown, ESRCH)) != 0) |
if ((error = procfs_proc_lock(pfs->pfs_pid, &pown, ESRCH)) != 0) |
Line 1628 procfs_readlink(void *v) |
|
Line 1623 procfs_readlink(void *v) |
|
*--bp = '\0'; |
*--bp = '\0'; |
procfs_dir(PROCFS_TYPE(pfs->pfs_fileno), curlwp, pown, |
procfs_dir(PROCFS_TYPE(pfs->pfs_fileno), curlwp, pown, |
&bp, path, MAXPATHLEN); |
&bp, path, MAXPATHLEN); |
procfs_proc_unlock(pown); |
|
len = strlen(bp); |
len = strlen(bp); |
} else { |
} else { |
file_t *fp; |
file_t *fp; |
Line 1696 procfs_readlink(void *v) |
|
Line 1690 procfs_readlink(void *v) |
|
break; |
break; |
} |
} |
closef(fp); |
closef(fp); |
procfs_proc_unlock(pown); |
|
} |
} |
|
|
if (error == 0) |
if (error == 0) |
error = uiomove(bp, len, ap->a_uio); |
error = uiomove(bp, len, ap->a_uio); |
|
if (pown) |
|
procfs_proc_unlock(pown); |
if (path) |
if (path) |
free(path, M_TEMP); |
free(path, M_TEMP); |
return error; |
return error; |