Date: Mon, 15 Oct 2018 16:05:34 +0000 From: co...@sdf.org Message-ID: <20181015160534.ga15...@sdf.org>
| attached is the generated output of a filedesc(9) rewrite. Did I miss something sometime, is there a real need for this? | FUNCTIONS | The following functions are high-level interface routines to access the | file descriptor table for a process and its file entries. | | fd_alloc(p, want, *result) | Create a new open file entry and allocate a file descriptor for | the process p. This operation is performed by invoking | fd_alloc() to allocate the new file descriptor. fd_alloc() uses fd_alloc() ? In the existing version, falloc() used fdalloc() - have two functions been merged into one? If so, that sentence should be deleted. Otherwise something needs a new name. | The caller to | the fd_alloc() function is responsible for expanding the file | descriptor table when necessary. That's ugly. Why? Cannot it be passed a pointer to the tabe, and realloc for itself when needed? | The index of the file entry is returned in *result. The | fd_alloc() function returns zero on success, otherwise an | appropriate error is returned. And what is "want" ? | fd_alloc(p, want, *result) | Allocate a file descriptor want for process p. The resultant | file descriptor is returned in *result. The fd_alloc() function | returns zero on success, otherwise an appropriate error is | returned. fd_alloc() again, same params, but now want is explained. | fd_closeexec(void) | Close any files for the current process that are marked close | on exec. This operation is performed by invoking fd_close() on | the appropriate file descriptor. descriptors | fd_tryexpand(p) | Expand the file descriptor table for process p by allocating | memory for additional file descriptors. Why "try" ? | fd_free(void) | Decrement the reference count on the file descriptor table for | the current lwp and release the file descriptor table if the | reference count drops to zero. Impact upon any open files in the table ? | fd_init(fdp) | Create a file descriptor table using the same current and root | directories of the current process. The returned file | descriptor table is guaranteed to have a reference count of one. What is fdp? And I think something needs to explain why directories are there. kre