示例#1
0
void gpio_event_suspend(struct early_suspend *h)
{
	struct gpio_event *ip;
	MF_DEBUG("00190000");
	ip = container_of(h, struct gpio_event, early_suspend);
	MF_DEBUG("00190001");
	gpio_event_call_all_func(ip, GPIO_EVENT_FUNC_SUSPEND);
	MF_DEBUG("00190002");
	ip->info->power(ip->info, 0);
	MF_DEBUG("00190003");
}
int metafile::flush()
{
	int r = 0;
	MF_DEBUG("%d", is_dirty);
	if(is_dirty)
	{
		uint8_t type = MF_TX_WRITE;
		uint16_t path_len = path.length();
		uint32_t data_len = data.size();
		journal::ovec ov[5] = {{&type, sizeof(type)},
		                       {&path_len, sizeof(path_len)},
		                       {&data_len, sizeof(data_len)},
		                       {&path[0], path_len},
		                       {data_len ? &data[0] : NULL, data_len}};
		assert(current_journal);
		r = current_journal->appendv(ov, data_len ? 5 : 4);
		if(r >= 0)
			is_dirty = false;
	}
	return r;
}