Changeset cba45af in mainline for uspace/srv/logger/ctl.c
- Timestamp:
- 2012-08-16T21:01:55Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2bf781a
- Parents:
- e005f92
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/logger/ctl.c
re005f92 rcba45af 43 43 #include "logger.h" 44 44 45 static int handle_ namespace_level_change(sysarg_t new_level)45 static int handle_toplog_level_change(sysarg_t new_level) 46 46 { 47 void * namespace_name;48 int rc = async_data_write_accept(& namespace_name, true, 0, 0, 0, NULL);47 void *top_name; 48 int rc = async_data_write_accept(&top_name, true, 0, 0, 0, NULL); 49 49 if (rc != EOK) { 50 50 return rc; 51 51 } 52 52 53 logg ing_namespace_t *namespace = namespace_writer_attach((const char *) namespace_name);54 free( namespace_name);55 if ( namespace== NULL)53 logger_toplevel_log_t *toplog = find_or_create_toplevel_log(top_name); 54 free(top_name); 55 if (toplog == NULL) 56 56 return ENOENT; 57 57 58 rc = namespace_change_level(namespace, (log_level_t) new_level); 59 namespace_writer_detach(namespace); 58 toplog->logged_level = new_level; 60 59 61 return rc;60 return EOK; 62 61 } 63 62 64 static int handle_ context_level_change(sysarg_t new_level)63 static int handle_log_level_change(sysarg_t new_level) 65 64 { 66 void * namespace_name;67 int rc = async_data_write_accept(& namespace_name, true, 0, 0, 0, NULL);65 void *top_name; 66 int rc = async_data_write_accept(&top_name, true, 0, 0, 0, NULL); 68 67 if (rc != EOK) { 69 68 return rc; 70 69 } 71 70 72 logg ing_namespace_t *namespace = namespace_writer_attach((const char *) namespace_name);73 free( namespace_name);74 if ( namespace== NULL)71 logger_toplevel_log_t *toplog = find_or_create_toplevel_log(top_name); 72 free(top_name); 73 if (toplog == NULL) 75 74 return ENOENT; 76 75 77 void *context_name; 78 rc = async_data_write_accept(&context_name, true, 0, 0, 0, NULL);79 if (rc != EOK) {80 namespace_writer_detach(namespace);76 77 void *log_name; 78 rc = async_data_write_accept(&log_name, true, 0, 0, 0, NULL); 79 if (rc != EOK) 81 80 return rc; 81 82 rc = ENOENT; 83 for (size_t i = 0; i < toplog->sublog_count; i++) { 84 if (str_cmp(toplog->sublogs[i].name, (const char *) log_name) == 0) { 85 toplog->sublogs[i].logged_level = new_level; 86 rc = EOK; 87 break; 88 } 82 89 } 83 90 84 rc = namespace_change_context_level(namespace, context_name, new_level); 85 free(context_name); 86 namespace_writer_detach(namespace); 91 free(log_name); 87 92 88 93 return rc; … … 101 106 break; 102 107 103 int rc;104 105 108 switch (IPC_GET_IMETHOD(call)) { 106 case LOGGER_CTL_GET_DEFAULT_LEVEL: 107 async_answer_1(callid, EOK, get_default_logging_level()); 108 break; 109 case LOGGER_CTL_SET_DEFAULT_LEVEL: 110 rc = set_default_logging_level(IPC_GET_ARG1(call)); 109 case LOGGER_CTL_SET_DEFAULT_LEVEL: { 110 int rc = set_default_logging_level(IPC_GET_ARG1(call)); 111 111 async_answer_0(callid, rc); 112 112 break; 113 case LOGGER_CTL_SET_NAMESPACE_LEVEL: 114 rc = handle_namespace_level_change(IPC_GET_ARG1(call)); 113 } 114 case LOGGER_CTL_SET_TOP_LOG_LEVEL: { 115 int rc = handle_toplog_level_change(IPC_GET_ARG1(call)); 115 116 async_answer_0(callid, rc); 116 117 break; 117 case LOGGER_CTL_SET_CONTEXT_LEVEL: 118 rc = handle_context_level_change(IPC_GET_ARG1(call)); 118 } 119 case LOGGER_CTL_SET_LOG_LEVEL: { 120 int rc = handle_log_level_change(IPC_GET_ARG1(call)); 119 121 async_answer_0(callid, rc); 120 122 break; 123 } 121 124 default: 122 125 async_answer_0(callid, EINVAL);
Note:
See TracChangeset
for help on using the changeset viewer.