/** * 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 ); }
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]); } }
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" ); }