コード例 #1
0
ファイル: keyboard.c プロジェクト: benrr101/sp2_derpos
/**
 * Just prepares the isr-callback and IO-request array.
 */
void _ps2_keyboard_init( void ){

	// temp vars
	Status status;

	// For simplicity, null-out the io-requests
	ps2_io_req *req;
	int i;
	for( i = 0; i < TOTAL_IO_REQS; i++){
		req = requests[i];
		req->pid = 0;
		req->buf = 0;
		req->size = -1;
		req->index = -1;
	}

	// Create the Buffered-Blocking Process Queue
	status = _q_alloc( &_buf_block, NULL );
	if( status != SUCCESS ) {
		prt_status( "keyboard, init: Unable to create buf_block queue for IO"
					" requests, keyboard input disabled!\n Error: %s\n", 
					status);
	}


	// install our ISR
	__install_isr( PS2_K_VEC, _ps2_keyboard_isr );
}
コード例 #2
0
ファイル: ioreq.c プロジェクト: rit-sos/SOS
void _ioreq_init(void){
	int i;
	Status status;

	status = _q_alloc( &data_q, &_comp_ascend_uint );
	if( status != SUCCESS ) {
		_kpanic( "_ioreq_init", "IO read queue alloc status %s", status );
	}
	status = _q_alloc( &idle_q, &_comp_ascend_uint );
	if( status != SUCCESS ) {
		_kpanic( "_ioreq_init", "IO write queue alloc status %s", status );
	}
	status = _q_alloc( &free_req_q, NULL);
	if( status != SUCCESS ) {
		_kpanic( "_ioreq_init", "IO free queue alloc status %s", status );
	}

	for (i =0 ; i < ATA_MAX_REQUESTS; i++){
		_ioreq_dealloc(&iorequest_pool[i]);
	}

}
コード例 #3
0
ファイル: scheduler.c プロジェクト: rit-sos/SOS
void _sched_init( void ) {
	int i;
	Status status;

	for( i = 0; i < N_READYQ; ++i ) {
		status = _q_alloc( &_ready[i], NULL );
		if( status != SUCCESS ) {
			_kpanic( "_sched_init",
				 "readyq alloc status %s",
				 status );
		}
	}

	_current = NULL;

	c_puts( " scheduler" );
}