Changeset 8e9b2534 in mainline
- Timestamp:
- 2017-03-26T10:28:44Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f644472
- Parents:
- 58898d1d
- Location:
- uspace
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/init/init.c
r58898d1d r8e9b2534 50 50 #include <str_error.h> 51 51 #include <config.h> 52 #include <io/logctl.h> 52 53 #include "init.h" 53 54 … … 129 130 int rc = mount(fstype, ROOT_MOUNT_POINT, ROOT_DEVICE, opts, 130 131 IPC_FLAG_BLOCKING, 0); 132 if (rc == EOK) 133 logctl_set_root(); 131 134 return mount_report("Root filesystem", ROOT_MOUNT_POINT, fstype, 132 135 ROOT_DEVICE, rc); -
uspace/lib/c/generic/io/logctl.c
r58898d1d r8e9b2534 39 39 #include <ns.h> 40 40 #include <str.h> 41 #include <vfs/vfs.h> 41 42 42 43 /** IPC session with the logger service. */ … … 122 123 } 123 124 125 /** Set logger's VFS root. 126 * 127 * @return Error code or EOK on success. 128 */ 129 int 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, ®_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 124 151 /** @} 125 152 */ -
uspace/lib/c/include/io/logctl.h
r58898d1d r8e9b2534 38 38 extern int logctl_set_default_level(log_level_t); 39 39 extern int logctl_set_log_level(const char *, log_level_t); 40 extern int logctl_set_root(void); 40 41 41 42 #endif -
uspace/lib/c/include/ipc/logger.h
r58898d1d r8e9b2534 49 49 * Followed by: string with full log name. 50 50 */ 51 LOGGER_CONTROL_SET_LOG_LEVEL 51 LOGGER_CONTROL_SET_LOG_LEVEL, 52 /** Set VFS root. 53 * 54 * Returns: error code 55 * Followed by: vfs_pass_handle() request. 56 */ 57 LOGGER_CONTROL_SET_ROOT 52 58 } logger_control_request_t; 53 59 -
uspace/srv/logger/ctl.c
r58898d1d r8e9b2534 41 41 #include <io/logctl.h> 42 42 #include <ipc/logger.h> 43 #include <vfs/vfs.h> 43 44 #include "logger.h" 44 45 … … 86 87 break; 87 88 } 89 case LOGGER_CONTROL_SET_ROOT: { 90 int fd = vfs_receive_handle(true); 91 vfs_root_set(fd); 92 async_answer_0(callid, fd >= 0 ? EOK : fd); 93 break; 94 } 88 95 default: 89 96 async_answer_0(callid, EINVAL);
Note:
See TracChangeset
for help on using the changeset viewer.