Changeset 8e9b2534 in mainline for uspace/lib/c/generic/io/logctl.c


Ignore:
Timestamp:
2017-03-26T10:28:44Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f644472
Parents:
58898d1d
Message:

Set logger's VFS root

As an init task, logger starts with no VFS root, which effectively
disables logging to /log/*. In this commit we add a way to set logger's
root after the root is mounted in init to fix this. Note that some log
entries might be still missing as file-based logging kicks in quite
late.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/io/logctl.c

    r58898d1d r8e9b2534  
    3939#include <ns.h>
    4040#include <str.h>
     41#include <vfs/vfs.h>
    4142
    4243/** IPC session with the logger service. */
     
    122123}
    123124
     125/** Set logger's VFS root.
     126 *
     127 * @return Error code or EOK on success.
     128 */
     129int logctl_set_root(void)
     130{
     131        async_exch_t *exchange = NULL;
     132        int rc = start_logger_exchange(&exchange);
     133        if (rc != EOK)
     134                return rc;
     135
     136        aid_t reg_msg = async_send_0(exchange, LOGGER_CONTROL_SET_ROOT, NULL);
     137        async_exch_t *vfs_exch = vfs_exchange_begin();
     138        rc = vfs_pass_handle(vfs_exch, vfs_root(), exchange);
     139        vfs_exchange_end(vfs_exch);
     140        sysarg_t reg_msg_rc;
     141        async_wait_for(reg_msg, &reg_msg_rc);
     142
     143        async_exchange_end(exchange);
     144
     145        if (rc != EOK)
     146                return rc;
     147
     148        return (int) reg_msg_rc;
     149}
     150
    124151/** @}
    125152 */
Note: See TracChangeset for help on using the changeset viewer.