Ejemplo n.º 1
0
static Eterm
do_info(Process* c_p, TrapData* trap_data)
{
    HashTable* hash_table;
    Uint remaining;
    Uint idx;
    Uint max_iter;

    hash_table = trap_data->table;
    idx = trap_data->idx;
#if defined(DEBUG) || defined(VALGRIND)
    max_iter = 50;
#else
    max_iter = ERTS_BIF_REDS_LEFT(c_p);
#endif
    remaining = trap_data->remaining < max_iter ? trap_data->remaining : max_iter;
    trap_data->remaining -= remaining;
    while (remaining != 0) {
        if (is_boxed(hash_table->term[idx])) {
            ErtsLiteralArea* area;
            area = term_to_area(hash_table->term[idx]);
            trap_data->memory += sizeof(ErtsLiteralArea) +
                sizeof(Eterm) * (area->end - area->start - 1);
            remaining--;
        }
        idx++;
    }
    trap_data->idx = idx;
    if (trap_data->remaining > 0) {
        return am_ok;           /* Dummy return value */
    } else {
        Eterm* hp;
        Eterm count_term;
        Eterm memory_term;
        Eterm res;
        Uint memory;
        Uint hsz = MAP_SZ(2);

        memory = sizeof(HashTable) + (trap_data->table->allocated-1) *
            sizeof(Eterm) + trap_data->memory;
        (void) erts_bld_uint(NULL, &hsz, hash_table->num_entries);
        (void) erts_bld_uint(NULL, &hsz, memory);
        hp = HAlloc(c_p, hsz);
	count_term = erts_bld_uint(&hp, NULL, hash_table->num_entries);
	memory_term = erts_bld_uint(&hp, NULL, memory);
        res = MAP2(hp, am_count, count_term, am_memory, memory_term);
        return res;
    }
}
Ejemplo n.º 2
0
/* DMA request sources of M2M-DMAC */
#define S3C_DMA_SEC_TX		0
#define S3C_DMA_SEC_RX		1
#define S3C_DMA_M2M		2


static struct s3c_dma_map __initdata s5pc100_dma_mappings[] = {

	[DMACH_UART0] = {
		.name       	= "s5p-uart-dma",
		.channels   	= MAP1(S3C_PDMA0_UART0CH0),
		.hw_addr.to	= S3C_PDMA0_UART0CH0,
	},
	[DMACH_UART0_SRC2] = {
		.name       	= "s5p-uart-dma-rx",
		.channels   	= MAP2(S3C_PDMA1_UART0CH1),
		.hw_addr.from 	= S3C_PDMA1_UART0CH1,
	},
	[DMACH_UART1] = {
               .name       	= "uart-dma-tx",
               .channels   	= MAP1(S3C_PDMA0_UART1CH0),
               .hw_addr.to 	= S3C_PDMA0_UART1CH0,
	},
	[DMACH_UART1_SRC2] = {
               .name       	= "uart-dma-rx",
               .channels   	= MAP2(S3C_PDMA1_UART1CH1),
               .hw_addr.from 	= S3C_PDMA1_UART1CH1,
	},
	[DMACH_I2S0_IN] = {
		.name           = "i2s0-in",
		.channels       = MAP1(S3C_PDMA1_I2S0_RX),
Ejemplo n.º 3
0
		static key_id_t sdl_key_to_quake_key(SDLKey in)
		{
			key_id_t out;

			// Some characters map directly.
			if ((in < KEY_COUNT) && isprint(in))
			{
				out = static_cast<key_id_t>(in);
			}
			else
			{
				// Handle the rest.
				switch (in)
				{

#define MAP2(sdl, quake)	case sdl: out = quake; break
#define MAP1(key)			MAP2(SDLK_##key, K_##key)

					MAP1(BACKSPACE);
					MAP1(TAB);
					MAP2(SDLK_RETURN, K_ENTER);
					MAP1(PAUSE);
					MAP1(ESCAPE);
					MAP2(SDLK_DELETE, K_DEL);
					MAP2(SDLK_KP0, static_cast<key_id_t>('0'));
					MAP2(SDLK_KP1, static_cast<key_id_t>('1'));
					MAP2(SDLK_KP2, static_cast<key_id_t>('2'));
					MAP2(SDLK_KP3, static_cast<key_id_t>('3'));
					MAP2(SDLK_KP4, static_cast<key_id_t>('4'));
					MAP2(SDLK_KP5, static_cast<key_id_t>('5'));
					MAP2(SDLK_KP6, static_cast<key_id_t>('6'));
					MAP2(SDLK_KP7, static_cast<key_id_t>('7'));
					MAP2(SDLK_KP8, static_cast<key_id_t>('8'));
					MAP2(SDLK_KP9, static_cast<key_id_t>('9'));
					MAP2(SDLK_KP_PERIOD, static_cast<key_id_t>('.'));
					MAP2(SDLK_KP_DIVIDE, static_cast<key_id_t>('/'));
					MAP2(SDLK_KP_MULTIPLY, static_cast<key_id_t>('*'));
					MAP2(SDLK_KP_MINUS, static_cast<key_id_t>('0'));
					MAP2(SDLK_KP_PLUS, static_cast<key_id_t>('+'));
					MAP2(SDLK_KP_ENTER, K_ENTER);
					MAP2(SDLK_KP_EQUALS, static_cast<key_id_t>('-'));
					MAP2(SDLK_UP, K_UPARROW);
					MAP2(SDLK_DOWN, K_DOWNARROW);
					MAP2(SDLK_RIGHT, K_RIGHTARROW);
					MAP2(SDLK_LEFT, K_LEFTARROW);
					MAP2(SDLK_INSERT, K_INS);
					MAP1(HOME);
					MAP1(END);
					MAP2(SDLK_PAGEUP, K_PGUP);
					MAP2(SDLK_PAGEDOWN, K_PGDN);
					MAP1(F1);
					MAP1(F2);
					MAP1(F3);
					MAP1(F4);
					MAP1(F5);
					MAP1(F6);
					MAP1(F7);
					MAP1(F8);
					MAP1(F9);
					MAP1(F10);
					MAP1(F11);
					MAP1(F12);
					MAP2(SDLK_RSHIFT, K_SHIFT);
					MAP2(SDLK_LSHIFT, K_SHIFT);
					MAP2(SDLK_RCTRL, K_CTRL);
					MAP2(SDLK_LCTRL, K_CTRL);
					MAP2(SDLK_RALT, K_ALT);
					MAP2(SDLK_LALT, K_ALT);

#undef MAP1
#undef MAP2

				default:
					out = static_cast<key_id_t>(0);
				}
			}

			assert(out >= 0);
			assert(out < KEY_COUNT);
			return out;
		}