Deleted Added
full compact
scvtb.c (66834) scvtb.c (78956)
1/*-
2 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
1/*-
2 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * $FreeBSD: head/sys/dev/syscons/scvtb.c 66834 2000-10-08 21:34:00Z phk $
26 * $FreeBSD: head/sys/dev/syscons/scvtb.c 78956 2001-06-29 08:24:56Z yokota $
27 */
28
29#include "opt_syscons.h"
30
31#include <sys/param.h>
32#include <sys/systm.h>
33#include <sys/malloc.h>
34#include <sys/fbio.h>

--- 22 unchanged lines hidden (view full) ---

57 switch (type) {
58 case VTB_MEMORY:
59 case VTB_RINGBUFFER:
60 if ((buf == NULL) && (cols*rows != 0)) {
61 vtb->vtb_buffer =
62 (vm_offset_t)malloc(cols*rows*sizeof(u_int16_t),
63 M_DEVBUF,
64 (wait) ? M_WAITOK : M_NOWAIT);
27 */
28
29#include "opt_syscons.h"
30
31#include <sys/param.h>
32#include <sys/systm.h>
33#include <sys/malloc.h>
34#include <sys/fbio.h>

--- 22 unchanged lines hidden (view full) ---

57 switch (type) {
58 case VTB_MEMORY:
59 case VTB_RINGBUFFER:
60 if ((buf == NULL) && (cols*rows != 0)) {
61 vtb->vtb_buffer =
62 (vm_offset_t)malloc(cols*rows*sizeof(u_int16_t),
63 M_DEVBUF,
64 (wait) ? M_WAITOK : M_NOWAIT);
65 if (vtb->vtb_buffer != NULL)
65 if (vtb->vtb_buffer != NULL) {
66 bzero((void *)sc_vtb_pointer(vtb, 0),
67 cols*rows*sizeof(u_int16_t));
66 bzero((void *)sc_vtb_pointer(vtb, 0),
67 cols*rows*sizeof(u_int16_t));
68 vtb->vtb_flags |= VTB_ALLOCED;
69 }
68 } else {
69 vtb->vtb_buffer = (vm_offset_t)buf;
70 }
71 vtb->vtb_flags |= VTB_VALID;
72 break;
73 case VTB_FRAMEBUFFER:
74 vtb->vtb_buffer = (vm_offset_t)buf;
75 vtb->vtb_flags |= VTB_VALID;
76 break;
77 default:
78 break;
79 }
80}
81
82void
83sc_vtb_destroy(sc_vtb_t *vtb)
84{
85 vm_offset_t p;
86
70 } else {
71 vtb->vtb_buffer = (vm_offset_t)buf;
72 }
73 vtb->vtb_flags |= VTB_VALID;
74 break;
75 case VTB_FRAMEBUFFER:
76 vtb->vtb_buffer = (vm_offset_t)buf;
77 vtb->vtb_flags |= VTB_VALID;
78 break;
79 default:
80 break;
81 }
82}
83
84void
85sc_vtb_destroy(sc_vtb_t *vtb)
86{
87 vm_offset_t p;
88
87 vtb->vtb_flags = 0;
88 vtb->vtb_cols = 0;
89 vtb->vtb_rows = 0;
90 vtb->vtb_size = 0;
91 vtb->vtb_tail = 0;
92
93 p = vtb->vtb_buffer;
94 vtb->vtb_buffer = NULL;
95 switch (vtb->vtb_type) {
96 case VTB_MEMORY:
97 case VTB_RINGBUFFER:
89 vtb->vtb_cols = 0;
90 vtb->vtb_rows = 0;
91 vtb->vtb_size = 0;
92 vtb->vtb_tail = 0;
93
94 p = vtb->vtb_buffer;
95 vtb->vtb_buffer = NULL;
96 switch (vtb->vtb_type) {
97 case VTB_MEMORY:
98 case VTB_RINGBUFFER:
98 if (p != NULL)
99 if ((vtb->vtb_flags & VTB_ALLOCED) && (p != NULL))
99 free((void *)p, M_DEVBUF);
100 break;
101 default:
102 break;
103 }
100 free((void *)p, M_DEVBUF);
101 break;
102 default:
103 break;
104 }
105 vtb->vtb_flags = 0;
104 vtb->vtb_type = VTB_INVALID;
105}
106
107size_t
108sc_vtb_size(int cols, int rows)
109{
110 return (size_t)(cols*rows*sizeof(u_int16_t));
111}

--- 186 unchanged lines hidden ---
106 vtb->vtb_type = VTB_INVALID;
107}
108
109size_t
110sc_vtb_size(int cols, int rows)
111{
112 return (size_t)(cols*rows*sizeof(u_int16_t));
113}

--- 186 unchanged lines hidden ---