Beispiel #1
0
static void
load_mregs( void )
{
	mac_regs_t old = *mregs;
	if( read_session_data("REGS", 0, (char*)mregs, sizeof(mac_regs_t)) )
		session_failure("Could not read registers\n");
	
	/* there are some fields we should not touch... */
	mregs->timer_stamp = old.timer_stamp;
	mregs->flag_bits = old.flag_bits;
	mregs->interrupt = 1;
}
Beispiel #2
0
int user_create_session( int db, db_session_data* data, uint32_t uid )
{
    unsigned char buffer[ sizeof(db_msg) + sizeof(uint32_t) ];
    db_msg* msg = (db_msg*)buffer;
    uint32_t* msg_id = (uint32_t*)msg->payload;

    msg->type = DB_SESSION_CREATE;
    msg->length = sizeof(uid);
    *msg_id = uid;

    if( write( db, buffer, sizeof(buffer) ) != sizeof(buffer) )
        return -1;

    return read_session_data( db, data );
}
Beispiel #3
0
static void
load_enet_state( void )
{
	mac_enet_t lis, *is = enetif;
	int i;

	for( i=0; i<MAX_ENET_IFS; i++, is++ ){
		if( read_session_data( "enet", i, (char*)&lis, sizeof(lis) ) )
			break;
		if( PD.load_save_state && PD.load_save_state(&is->iface, &lis.iface, i, 1) )
			session_failure("Unexpected error in load_save_state hook\n");

		is->started = lis.started;
	}
}
Beispiel #4
0
int user_get_session_data( int db, db_session_data* data, uint32_t sid )
{
    unsigned char buffer[ sizeof(db_msg) + sizeof(uint32_t) ];
    db_msg* msg = (db_msg*)buffer;
    uint32_t* msg_id = (uint32_t*)msg->payload;

    if( !sid )
        return 0;

    msg->type = DB_SESSION_GET_DATA;
    msg->length = sizeof(sid);
    *msg_id = sid;

    if( write( db, buffer, sizeof(buffer) ) != sizeof(buffer) )
        return -1;

    return read_session_data( db, data );
}