/usr/include/pixrect/memreg.h is in xviewg-dev 3.2p1.4-28.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | /* @(#)memreg.h 1.16 88/02/08 SMI */
/*
* Copyright 1983, 1987 by Sun Microsystems, Inc.
*/
#ifndef memreg_DEFINED
#define memreg_DEFINED
/*
* Rasterop hardware registers. To do a rasterop set the
* rasterop function in mrc_op. Clear mrc_pattern unless
* a special pattern is desired.
*
* Set mrc_shift to cause the source to be properly
* aligned with the destination: if words are being processed
* left-to-right, then mrc_shift should be a positive number
* between 0 and 15 inclusive; if words are being processed
* right-to-left, then mrc_shift should be a negative number
* between -16 and -1 inclusive. If the first source word
* does not supply enough data to satisfy the first destination
* words requirements then load mrc_source1 (in the left-to-right
* case) or mcr_source2 (in the right-to-left case) with the
* first source word.
*
* Load mrc_mask1 with a mask of the bits not contributed by
* the first source word (if the width were large), i.e. a
* mask of high-order bits. Load mrc_mask2 with a mask of the
* bits not contributed by the last source word, i.e. a mask
* of low-order bits. Set mrc_width to the number of words
* in the destination line.
*
* Then enable the chip and stuff the data through it and
* finally disable the chip.
*/
struct memropc {
u_short mrc_dest; /* destination register */
u_short mrc_source1; /* source1 register (right) */
u_short mrc_source2; /* source2 register (left) */
u_short mrc_pattern; /* pattern register */
u_short mrc_mask1; /* mask1 register */
u_short mrc_mask2; /* mask2 register */
short mrc_shift; /* bit 0..3 shift count for source */
/* bit 8 sourceload bit */
short mrc_op; /* function */
short mrc_width; /* word width */
short mrc_opcount; /* counts down the width */
short mrc_decoderout; /* decoder output */
short mrc_x11; /* manual load destination (diag)*/
short mrc_x12; /* manual load source (diag) */
short mrc_x13;
short mrc_x14;
short mrc_x15; /* flags register for applications */
};
/* note: these are not relevant to color boards */
#define mrc_enable(mrc) ((mrc)->mrc_shift |= 0x100)
#define mrc_disable(mrc) ((mrc)->mrc_shift &= ~0x100)
/* macros for generating left (mask1) and right (mask2) masks */
#define mrc_lmask(x) (0xffff0000 >> (x))
#define mrc_rmask(x) (0x7fff >> (x))
#endif /* memreg_DEFINED */
|