示例#1
0
void LogRing::internalLog(int prio,
                          const char* tag,
                          const char* fmt,
                          va_list argp) {
    if (NULL != mRingBuffer) {
        Mutex::Autolock lock(&mLock);
        String8 s(String8::formatV(fmt, argp));
        Entry* last = NULL;

        if (mIsFull || mWr)
            last = &(mRingBuffer[(mWr + mSize - 1) % mSize]);


        if ((NULL != last) && !last->s.compare(s)) {
            gettimeofday(&(last->last_ts), NULL);
            ++last->count;
        } else {
            gettimeofday(&mRingBuffer[mWr].first_ts, NULL);
            mRingBuffer[mWr].last_ts = mRingBuffer[mWr].first_ts;
            mRingBuffer[mWr].count = 1;
            mRingBuffer[mWr].s.setTo(s);

            mWr = (mWr + 1) % mSize;
            if (!mWr)
                mIsFull = true;
        }
    }

    if (NULL != tag)
        LOG_PRI_VA(prio, tag, fmt, argp);
}
 static int log_callback(int type, const char *fmt, ...) {
   va_list ap;
   va_start(ap, fmt);
   LOG_PRI_VA(ANDROID_LOG_ERROR, "SELinux", fmt, ap);
   va_end(ap);
   return 0;
 }
void OS::VPrintError(const char* format, va_list args) {
#if defined(ANDROID)
  LOG_PRI_VA(ANDROID_LOG_ERROR, LOG_TAG, format, args);
#else
  vfprintf(stderr, format, args);
#endif
}
void OS::VPrint(const char* format, va_list args) {
#if defined(ANDROID)
  LOG_PRI_VA(ANDROID_LOG_INFO, LOG_TAG, format, args);
#else
  vprintf(format, args);
#endif
}
示例#5
0
/* See helper.h for docs. */
char *failure(const char *format, ...) {
    va_list args;
    char *result;

    va_start(args, format);
    LOG_PRI_VA(ANDROID_LOG_ERROR, LOG_TAG, format, args);
    va_end(args);

    va_start(args, format);
    int count = vasprintf(&result, format, args);
    va_end(args);

    if (count < 0) {
        return NULL;
    }

    return result;
}
static int log_callback(int type, const char *fmt, ...) {
    va_list ap;
    int priority;

    switch (type) {
    case SELINUX_WARNING:
        priority = ANDROID_LOG_WARN;
        break;
    case SELINUX_INFO:
        priority = ANDROID_LOG_INFO;
        break;
    default:
        priority = ANDROID_LOG_ERROR;
        break;
    }
    va_start(ap, fmt);
    LOG_PRI_VA(priority, "SELinux", fmt, ap);
    va_end(ap);
    return 0;
}
示例#7
0
/*
 * Output a code verifier warning message.  For the pre-verifier it's not
 * a big deal if something fails (and it may even be expected), but if
 * we're doing just-in-time verification it's significant.
 */
void dvmLogVerifyFailure(const Method *meth, const char *format, ...) {
    va_list ap;
    int logLevel;

    if (gDvm.optimizing) {
        return;
        //logLevel = ANDROID_LOG_DEBUG;
    } else {
        logLevel = ANDROID_LOG_WARN;
    }

    va_start(ap, format);
    LOG_PRI_VA(logLevel, LOG_TAG, format, ap);
    if (meth != NULL) {
        char *desc = dexProtoCopyMethodDescriptor(&meth->prototype);
        LOG_PRI(logLevel, LOG_TAG, "VFY:  rejected %s.%s %s",
                meth->clazz->descriptor, meth->name, desc);
        free(desc);
    }
}
示例#8
0
	scrolly = 0;
	for (i = 0; i < 256; i++)
		m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8);
//  m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
	m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
//  m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);

	screen.priority().fill(0, cliprect);

	m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
	m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1);

	/* we use the priority buffer so sprites are drawn front to back */
	m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1);
	m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0);

	m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1);
	m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0);
	return 0;
}
示例#9
0
/*
 * Print a debug message, to either a file or the log.
 */
void dvmPrintDebugMessage(const DebugOutputTarget* target, const char* format,
    ...)
{
    va_list args;

    va_start(args, format);

    switch (target->which) {
    case kDebugTargetLog:
        LOG_PRI_VA(target->data.log.priority, target->data.log.tag,
            format, args);
        break;
    case kDebugTargetFile:
        vfprintf(target->data.file.fp, format, args);
        break;
    default:
        ALOGE("unexpected 'which' %d", target->which);
        break;
    }

    va_end(args);
}
/*
 * The VM calls this through the "vfprintf" hook.
 *
 * We ignore "fp" and just write the results to the log file.
 */
static void runtime_vfprintf(FILE* fp, const char* format, va_list ap)
{
    LOG_PRI_VA(ANDROID_LOG_INFO, "vm-printf", format, ap);
}
示例#11
0
static void vinfo(const char *fmt, va_list ap)
{
    LOG_PRI_VA(ANDROID_LOG_INFO, LOG_TAG, fmt, ap);
}
示例#12
0
static void verror(const char *fmt, va_list ap)
{
    LOG_PRI_VA(ANDROID_LOG_ERROR, LOG_TAG, fmt, ap);
}
示例#13
0
static void vdebug(const char *fmt, va_list ap)
{
    LOG_PRI_VA(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ap);
}
void anp_logPlugin(const char format[], ...) {
    va_list args;
    va_start(args, format);
    LOG_PRI_VA(ANDROID_LOG_DEBUG, "webkit_plugin", format, args);
    va_end(args);
}