Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/log/log.c

    r1b20da0 ra35b458  
    121121                len = LOG_LENGTH - log_current_len;
    122122        }
    123        
     123
    124124        if (len == 0)
    125125                return;
    126        
     126
    127127        size_t log_free = LOG_LENGTH - log_used - log_current_len;
    128        
     128
    129129        /* Discard older entries to make space, if necessary */
    130130        while (len > log_free) {
     
    136136                next_for_uspace -= entry_len;
    137137        }
    138        
     138
    139139        size_t pos = (log_current_start + log_current_len) % LOG_LENGTH;
    140140        log_copy_to(data, pos, len);
     
    151151        spinlock_lock(&log_lock);
    152152        spinlock_lock(&kio_lock);
    153        
     153
    154154        log_current_start = (log_start + log_used) % LOG_LENGTH;
    155155        log_current_len = 0;
    156        
     156
    157157        /* Write header of the log entry, the length will be written in log_end() */
    158158        log_append((uint8_t *) &log_current_len, sizeof(size_t));
     
    162162        log_append((uint8_t *) &fac32, sizeof(uint32_t));
    163163        log_append((uint8_t *) &lvl32, sizeof(uint32_t));
    164        
     164
    165165        log_counter++;
    166166}
     
    174174        log_copy_to((uint8_t *) &log_current_len, log_current_start, sizeof(size_t));
    175175        log_used += log_current_len;
    176        
     176
    177177        kio_push_char('\n');
    178178        spinlock_unlock(&kio_lock);
    179179        spinlock_unlock(&log_lock);
    180        
     180
    181181        /* This has to be called after we released the locks above */
    182182        kio_flush();
     
    189189        if (!atomic_get(&log_inited))
    190190                return;
    191        
     191
    192192        spinlock_lock(&log_lock);
    193193        if (next_for_uspace < log_used)
     
    200200        size_t offset = 0;
    201201        size_t chars = 0;
    202        
     202
    203203        while (offset < size) {
    204204                kio_push_char(str_decode(str, &offset, size));
    205205                chars++;
    206206        }
    207        
     207
    208208        log_append((const uint8_t *)str, size);
    209        
     209
    210210        return chars;
    211211}
     
    216216        size_t offset = 0;
    217217        size_t chars = 0;
    218        
     218
    219219        for (offset = 0; offset < size; offset += sizeof(wchar_t), chars++) {
    220220                kio_push_char(wstr[chars]);
    221                
     221
    222222                size_t buffer_offset = 0;
    223223                errno_t rc = chr_encode(wstr[chars], buffer, &buffer_offset, 16);
     
    225225                        return EOF;
    226226                }
    227                
     227
    228228                log_append((const uint8_t *)buffer, buffer_offset);
    229229        }
    230        
     230
    231231        return chars;
    232232}
     
    239239{
    240240        int ret;
    241        
     241
    242242        printf_spec_t ps = {
    243243                log_printf_str_write,
     
    245245                NULL
    246246        };
    247        
    248        
     247
     248
    249249        ret = printf_core(fmt, &ps, args);
    250        
     250
    251251        return ret;
    252252}
     
    260260        int ret;
    261261        va_list args;
    262        
     262
    263263        va_start(args, fmt);
    264264        ret = log_vprintf(fmt, args);
    265265        va_end(args);
    266        
     266
    267267        return ret;
    268268}
     
    278278        int ret;
    279279        va_list args;
    280        
     280
    281281        log_begin(fac, level);
    282        
     282
    283283        va_start(args, fmt);
    284284        ret = log_vprintf(fmt, args);
    285285        va_end(args);
    286        
     286
    287287        log_end();
    288        
     288
    289289        return ret;
    290290}
     
    298298        char *data;
    299299        errno_t rc;
    300        
     300
    301301        if (size > PAGE_SIZE)
    302302                return (sys_errno_t) ELIMIT;
    303        
     303
    304304        switch (operation) {
    305305                case KLOG_WRITE:
     
    307307                        if (!data)
    308308                                return (sys_errno_t) ENOMEM;
    309                        
     309
    310310                        rc = copy_from_uspace(data, buf, size);
    311311                        if (rc) {
     
    314314                        }
    315315                        data[size] = 0;
    316                        
     316
    317317                        if (level >= LVL_LIMIT)
    318318                                level = LVL_NOTE;
    319                        
     319
    320320                        log(LF_USPACE, level, "%s", data);
    321                        
     321
    322322                        free(data);
    323323                        return EOK;
     
    326326                        if (!data)
    327327                                return (sys_errno_t) ENOMEM;
    328                        
     328
    329329                        size_t entry_len = 0;
    330330                        size_t copied = 0;
    331                        
     331
    332332                        rc = EOK;
    333        
     333
    334334                        spinlock_lock(&log_lock);
    335                        
     335
    336336                        while (next_for_uspace < log_used) {
    337337                                size_t pos = (log_start + next_for_uspace) % LOG_LENGTH;
    338338                                log_copy_from((uint8_t *) &entry_len, pos, sizeof(size_t));
    339                                
     339
    340340                                if (entry_len > PAGE_SIZE) {
    341341                                        /*
     
    350350                                        continue;
    351351                                }
    352                                
     352
    353353                                if (size < copied + entry_len) {
    354354                                        if (copied == 0)
     
    356356                                        break;
    357357                                }
    358                                
     358
    359359                                log_copy_from((uint8_t *) (data + copied), pos, entry_len);
    360360                                copied += entry_len;
    361361                                next_for_uspace += entry_len;
    362362                        }
    363                        
     363
    364364                        spinlock_unlock(&log_lock);
    365                        
     365
    366366                        if (rc != EOK) {
    367367                                free(data);
    368368                                return (sys_errno_t) rc;
    369369                        }
    370                        
     370
    371371                        rc = copy_to_uspace(buf, data, size);
    372                        
     372
    373373                        free(data);
    374                        
     374
    375375                        if (rc != EOK)
    376376                                return (sys_errno_t) rc;
    377                        
     377
    378378                        return copy_to_uspace(uspace_nread, &copied, sizeof(copied));
    379379                        return EOK;
Note: See TracChangeset for help on using the changeset viewer.