/[gxemul]/trunk/src/devices/dev_sgi_mardigras.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/devices/dev_sgi_mardigras.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4 by dpavlin, Mon Oct 8 16:18:00 2007 UTC revision 22 by dpavlin, Mon Oct 8 16:19:37 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2003-2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2003-2006  Anders Gavare.  All rights reserved.
3   *   *
4   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
5   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: dev_sgi_mardigras.c,v 1.17 2005/02/26 11:56:42 debug Exp $   *  $Id: dev_sgi_mardigras.c,v 1.22 2006/02/09 20:02:59 debug Exp $
29   *     *  
30   *  "MardiGras" graphics controller on SGI IP30 (Octane).   *  "MardiGras" graphics controller on SGI IP30 (Octane).
31   *   *
# Line 212  void mardigras_20400(struct cpu *cpu, st Line 212  void mardigras_20400(struct cpu *cpu, st
212  /*  /*
213   *  dev_sgi_mardigras_access():   *  dev_sgi_mardigras_access():
214   */   */
215  int dev_sgi_mardigras_access(struct cpu *cpu, struct memory *mem,  DEVICE_ACCESS(sgi_mardigras)
         uint64_t relative_addr, unsigned char *data, size_t len,  
         int writeflag, void *extra)  
216  {  {
217          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
218          struct sgi_mardigras_data *d = extra;          struct sgi_mardigras_data *d = extra;
219          int i;          int i;
220    
221          idata = memory_readmax64(cpu, data, len);          if (writeflag == MEM_WRITE)
222                    idata = memory_readmax64(cpu, data, len);
223    
224          /*  Accessing the microcode_ram works like ordinary ram:  */          /*  Accessing the microcode_ram works like ordinary ram:  */
225          if (relative_addr >= MICROCODE_START &&          if (relative_addr >= MICROCODE_START &&
# Line 294  int dev_sgi_mardigras_access(struct cpu Line 293  int dev_sgi_mardigras_access(struct cpu
293  }  }
294    
295    
296  /*  DEVINIT(sgi_mardigras)
  *  devinit_sgi_mardigras():  
  */  
 int devinit_sgi_mardigras(struct devinit *devinit)  
297  {  {
298          struct sgi_mardigras_data *d;          struct sgi_mardigras_data *d;
299    
# Line 311  int devinit_sgi_mardigras(struct devinit Line 307  int devinit_sgi_mardigras(struct devinit
307          d->fb = dev_fb_init(devinit->machine, devinit->machine->memory,          d->fb = dev_fb_init(devinit->machine, devinit->machine->memory,
308              MARDIGRAS_FAKE_OFFSET, VFB_GENERIC,              MARDIGRAS_FAKE_OFFSET, VFB_GENERIC,
309              mardigras_xsize, mardigras_ysize,              mardigras_xsize, mardigras_ysize,
310              mardigras_xsize, mardigras_ysize, 24, "SGI MardiGras", 1);              mardigras_xsize, mardigras_ysize, 24, "SGI MardiGras");
311          if (d->fb == NULL) {          if (d->fb == NULL) {
312                  fprintf(stderr, "dev_sgi_mardigras_init(): out of memory\n");                  fprintf(stderr, "dev_sgi_mardigras_init(): out of memory\n");
313                  exit(1);                  exit(1);
# Line 319  int devinit_sgi_mardigras(struct devinit Line 315  int devinit_sgi_mardigras(struct devinit
315    
316          memory_device_register(devinit->machine->memory, devinit->name,          memory_device_register(devinit->machine->memory, devinit->name,
317              devinit->addr, DEV_SGI_MARDIGRAS_LENGTH, dev_sgi_mardigras_access,              devinit->addr, DEV_SGI_MARDIGRAS_LENGTH, dev_sgi_mardigras_access,
318              d, MEM_DEFAULT, NULL);              d, DM_DEFAULT, NULL);
319    
320          return 1;          return 1;
321  }  }

Legend:
Removed from v.4  
changed lines
  Added in v.22

  ViewVC Help
Powered by ViewVC 1.1.26