OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [stable_0_2_0_rc2/] [or1ksim/] [peripheral/] [ps2kbd.c] - Diff between revs 1446 and 1461

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 1446 Rev 1461
Line 94... Line 94...
 
 
  /* Keyboard slowdown factor */
  /* Keyboard slowdown factor */
  long slowdown;
  long slowdown;
 
 
  /* Cofiguration */
  /* Cofiguration */
 
  int enabled;
  int irq;
  int irq;
  oraddr_t baseaddr;
  oraddr_t baseaddr;
  char *rxfile;
  char *rxfile;
};
};
 
 
Line 314... Line 315...
    fprintf(stderr, "Peripheral KBD: Run out of memory\n");
    fprintf(stderr, "Peripheral KBD: Run out of memory\n");
    exit(-1);
    exit(-1);
  }
  }
}
}
 
 
 
void kbd_enabled(union param_val val, void *dat)
 
{
 
  struct kbd_state *kbd = dat;
 
  kbd->enabled = val.int_val;
 
}
 
 
void *kbd_sec_start(void)
void *kbd_sec_start(void)
{
{
  struct kbd_state *new = malloc(sizeof(struct kbd_state));
  struct kbd_state *new = malloc(sizeof(struct kbd_state));
 
 
  if(!new) {
  if(!new) {
Line 327... Line 334...
 
 
  new->buf_count = 0;
  new->buf_count = 0;
  new->buf_head = 0;
  new->buf_head = 0;
  new->buf_tail = 0;
  new->buf_tail = 0;
  new->rxfs = NULL;
  new->rxfs = NULL;
 
  new->enabled = 1;
 
 
  return new;
  return new;
}
}
 
 
void kbd_sec_end(void *dat)
void kbd_sec_end(void *dat)
{
{
  struct kbd_state *kbd = dat;
  struct kbd_state *kbd = dat;
 
 
 
  if(!kbd->enabled) {
 
    free(dat);
 
    return;
 
  }
 
 
  register_memoryarea(kbd->baseaddr, KBD_SPACE, 1, 0, kbd_read8, kbd_write8, dat);
  register_memoryarea(kbd->baseaddr, KBD_SPACE, 1, 0, kbd_read8, kbd_write8, dat);
  reg_sim_reset(kbd_reset, dat);
  reg_sim_reset(kbd_reset, dat);
  reg_sim_stat(kbd_info, dat);
  reg_sim_stat(kbd_info, dat);
}
}
 
 
void reg_kbd_sec(void)
void reg_kbd_sec(void)
{
{
  struct config_section *sec = reg_config_sec("kbd", kbd_sec_start, kbd_sec_end);
  struct config_section *sec = reg_config_sec("kbd", kbd_sec_start, kbd_sec_end);
 
 
  reg_config_param(sec, "baseaddr", paramt_int, kbd_baseaddr);
  reg_config_param(sec, "baseaddr", paramt_addr, kbd_baseaddr);
 
  reg_config_param(sec, "enabled", paramt_int, kbd_enabled);
  reg_config_param(sec, "irq", paramt_int, kbd_irq);
  reg_config_param(sec, "irq", paramt_int, kbd_irq);
  reg_config_param(sec, "rxfile", paramt_str, kbd_rxfile);
  reg_config_param(sec, "rxfile", paramt_str, kbd_rxfile);
}
}
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.