/[gxemul]/upstream/0.4.4.1/src/devices/dev_colorplanemask.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

Annotation of /upstream/0.4.4.1/src/devices/dev_colorplanemask.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 37 - (hide annotations)
Mon Oct 8 16:21:43 2007 UTC (16 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 3218 byte(s)
0.4.4.1
1 dpavlin 4 /*
2 dpavlin 34 * Copyright (C) 2003-2007 Anders Gavare. All rights reserved.
3 dpavlin 4 *
4     * Redistribution and use in source and binary forms, with or without
5     * modification, are permitted provided that the following conditions are met:
6     *
7     * 1. Redistributions of source code must retain the above copyright
8     * notice, this list of conditions and the following disclaimer.
9     * 2. Redistributions in binary form must reproduce the above copyright
10     * notice, this list of conditions and the following disclaimer in the
11     * documentation and/or other materials provided with the distribution.
12     * 3. The name of the author may not be used to endorse or promote products
13     * derived from this software without specific prior written permission.
14     *
15     * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16     * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18     * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19     * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21     * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25     * SUCH DAMAGE.
26     *
27     *
28 dpavlin 34 * $Id: dev_colorplanemask.c,v 1.13 2006/12/30 13:30:57 debug Exp $
29 dpavlin 4 *
30     * Color plane mask used by DECstation 3100.
31     *
32     * Just a one-byte thingy, but the way things work now this has to
33     * be a separate device. :-/
34     */
35    
36     #include <stdio.h>
37     #include <stdlib.h>
38     #include <string.h>
39    
40     #include "devices.h"
41     #include "memory.h"
42     #include "misc.h"
43    
44    
45     struct colorplanemask_data {
46     unsigned char *color_plane_mask;
47     };
48    
49    
50     /*
51     * dev_colorplanemask_access():
52     */
53 dpavlin 22 DEVICE_ACCESS(colorplanemask)
54 dpavlin 4 {
55     struct colorplanemask_data *d = (struct colorplanemask_data *) extra;
56    
57     switch (relative_addr) {
58     case 0x00:
59     if (writeflag == MEM_WRITE) {
60     *d->color_plane_mask = data[0];
61     } else {
62     debug("[ colorplanemask: read isn't actually "
63     "supported ]\n");
64     data[0] = *d->color_plane_mask;
65     }
66     break;
67     default:
68     if (writeflag == MEM_WRITE) {
69     debug("[ colorplanemask: unimplemented write "
70     "to address 0x%x, data=0x%02x ]\n",
71     (int)relative_addr, data[0]);
72     } else {
73     debug("[ colorplanemask: unimplemented read "
74     "from address 0x%x ]\n", (int)relative_addr);
75     }
76     }
77    
78     /* Pretend it was ok: */
79     return 1;
80     }
81    
82    
83     /*
84     * dev_colorplanemask_init():
85     */
86     void dev_colorplanemask_init(struct memory *mem, uint64_t baseaddr,
87     unsigned char *color_plane_mask)
88     {
89     struct colorplanemask_data *d =
90     malloc(sizeof(struct colorplanemask_data));
91     if (d == NULL) {
92     fprintf(stderr, "out of memory\n");
93     exit(1);
94     }
95     memset(d, 0, sizeof(struct colorplanemask_data));
96     d->color_plane_mask = color_plane_mask;
97    
98     memory_device_register(mem, "colorplanemask", baseaddr,
99     DEV_COLORPLANEMASK_LENGTH, dev_colorplanemask_access,
100 dpavlin 20 (void *)d, DM_DEFAULT, NULL);
101 dpavlin 4 }
102    

  ViewVC Help
Powered by ViewVC 1.1.26