Date: Thu, 19 Jul 2001 12:39:13 -0500 From: "Eric J Christeson" <christes@finch.koehntop.net> To: "Kevin Oberman" <oberman@es.net>, "KT Sin" <ktsin@acm.org> Cc: "Gabriel Rocha" <grocha@geeksimplex.org>, <freebsd-stable@FreeBSD.ORG> Subject: RE: Watching DVD's in -stable Message-ID: <MDEPIGHBKHAKBGINHHJPOEILECAA.christes@finch.koehntop.net> In-Reply-To: <200107191727.f6JHR7A03994@ptavv.es.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. ------=_NextPart_000_0042_01C1104F.D09549B0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Just looked these up on a Redhat 6.2 system I have here. /usr/include/linux/fb.h /usr/include/linux/kd.h /usr/include/linux/vt.h Let me know if I can be of further help. eric Eric J Christeson <echriste@ssesco.com> Software Development Engineer SSESCO <http://www.ssesco.com> > -----Original Message----- > From: owner-freebsd-stable@FreeBSD.ORG > [mailto:owner-freebsd-stable@FreeBSD.ORG]On Behalf Of Kevin Oberman > Sent: Thursday, July 19, 2001 12:27 PM > To: KT Sin > Cc: Gabriel Rocha; freebsd-stable@FreeBSD.ORG > Subject: Re: Watching DVD's in -stable > > > > Date: Wed, 18 Jul 2001 10:48:14 +0800 > > From: KT Sin <ktsin@acm.org> > > Sender: owner-freebsd-stable@FreeBSD.ORG > > > > See http://www.videolan.org/. I think it's not in the ports > > collection yet and you have to build it yourself. > > This looks great! Of course, importing it into the US probably is a > violation of the DMCA. > > It will take some work to port it to FreeBSD as it has significant > Linuxisms. It requires GNUmake (minor issue) but then tries > to include > many header files from /linux. Someone (maybe me) will have > to figure > out where to get these files or what the FreeBSD replacements and > attendant massaging of the source might be. > > For anyone who is familiar with the issues: > regenerating dependencies for vout_fb.c > gcc -I../../include -I../../extras -DSYS_FREEBSD4_3 > -Iinclude -Iextras -I/usr/local/include -Wall -Winline > -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-loops > -fomit-frame-pointer -march=pentium -mcpu=pentium -DPLUGIN > -fPIC -c -o vout_fb.o vout_fb.c > vout_fb.c:43: linux/fb.h: No such file or directory > vout_fb.c:44: linux/vt.h: No such file or directory > vout_fb.c:45: linux/kd.h: No such file or directory > gmake[1]: *** [vout_fb.o] Error 1 > gmake[1]: Leaving directory > `/usr/home/oberman/utils/vlc-0.2.80/plugins/fb' > gmake: *** [lib/fb.so] Error 2 > > It's quite possible that the fb module is not even relevant to > FreeBSD. Clues to what fb is in Linux appreciated. > > R. Kevin Oberman, Network Engineer > E-mail: oberman@home.com Phone: +1 510 486-8634 > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-stable" in the body of the message ------=_NextPart_000_0042_01C1104F.D09549B0 Content-Type: application/octet-stream; name="fb.h" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="fb.h" #ifndef _LINUX_FB_H=0A= #define _LINUX_FB_H=0A= =0A= #include <asm/types.h>=0A= =0A= /* Definitions of frame buffers */=0A= =0A= #define FB_MAJOR 29=0A= =0A= #define FB_MODES_SHIFT 5 /* 32 modes per framebuffer */=0A= #define FB_NUM_MINORS 256 /* 256 Minors */=0A= #define FB_MAX (FB_NUM_MINORS / (1 << FB_MODES_SHIFT))=0A= #define GET_FB_IDX(node) (MINOR(node) >> FB_MODES_SHIFT)=0A= =0A= /* ioctls=0A= 0x46 is 'F' */=0A= #define FBIOGET_VSCREENINFO 0x4600=0A= #define FBIOPUT_VSCREENINFO 0x4601=0A= #define FBIOGET_FSCREENINFO 0x4602=0A= #define FBIOGETCMAP 0x4604=0A= #define FBIOPUTCMAP 0x4605=0A= #define FBIOPAN_DISPLAY 0x4606=0A= /* 0x4607-0x460B are defined below */=0A= /* #define FBIOGET_MONITORSPEC 0x460C */=0A= /* #define FBIOPUT_MONITORSPEC 0x460D */=0A= /* #define FBIOSWITCH_MONIBIT 0x460E */=0A= #define FBIOGET_CON2FBMAP 0x460F=0A= #define FBIOPUT_CON2FBMAP 0x4610=0A= #define FBIOBLANK 0x4611 /* arg: 0 or vesa level + 1 */=0A= =0A= #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */=0A= #define FB_TYPE_PLANES 1 /* Non interleaved planes */=0A= #define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */=0A= #define FB_TYPE_TEXT 3 /* Text/attributes */=0A= #define FB_TYPE_VGA_PLANES 4 /* EGA/VGA planes */=0A= =0A= #define FB_AUX_TEXT_MDA 0 /* Monochrome text */=0A= #define FB_AUX_TEXT_CGA 1 /* CGA/EGA/VGA Color text */=0A= #define FB_AUX_TEXT_S3_MMIO 2 /* S3 MMIO fasttext */=0A= #define FB_AUX_TEXT_MGA_STEP16 3 /* MGA Millenium I: text, attr, 14 = reserved bytes */=0A= #define FB_AUX_TEXT_MGA_STEP8 4 /* other MGAs: text, attr, 6 = reserved bytes */=0A= =0A= #define FB_VISUAL_MONO01 0 /* Monochr. 1=3DBlack 0=3DWhite */=0A= #define FB_VISUAL_MONO10 1 /* Monochr. 1=3DWhite 0=3DBlack */=0A= #define FB_VISUAL_TRUECOLOR 2 /* True color */=0A= #define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */=0A= #define FB_VISUAL_DIRECTCOLOR 4 /* Direct color */=0A= #define FB_VISUAL_STATIC_PSEUDOCOLOR 5 /* Pseudo color readonly */=0A= =0A= #define FB_ACCEL_NONE 0 /* no hardware accelerator */=0A= #define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */=0A= #define FB_ACCEL_AMIGABLITT 2 /* Amiga Blitter */=0A= #define FB_ACCEL_S3_TRIO64 3 /* Cybervision64 (S3 Trio64) */=0A= #define FB_ACCEL_NCR_77C32BLT 4 /* RetinaZ3 (NCR 77C32BLT) */=0A= #define FB_ACCEL_S3_VIRGE 5 /* Cybervision64/3D (S3 ViRGE) */=0A= #define FB_ACCEL_ATI_MACH64GX 6 /* ATI Mach 64GX family */=0A= #define FB_ACCEL_DEC_TGA 7 /* DEC 21030 TGA */=0A= #define FB_ACCEL_ATI_MACH64CT 8 /* ATI Mach 64CT family */=0A= #define FB_ACCEL_ATI_MACH64VT 9 /* ATI Mach 64CT family VT class */=0A= #define FB_ACCEL_ATI_MACH64GT 10 /* ATI Mach 64CT family GT class */=0A= #define FB_ACCEL_SUN_CREATOR 11 /* Sun Creator/Creator3D */=0A= #define FB_ACCEL_SUN_CGSIX 12 /* Sun cg6 */=0A= #define FB_ACCEL_SUN_LEO 13 /* Sun leo/zx */=0A= #define FB_ACCEL_IMS_TWINTURBO 14 /* IMS Twin Turbo */=0A= #define FB_ACCEL_3DLABS_PERMEDIA2 15 /* 3Dlabs Permedia 2 */=0A= #define FB_ACCEL_MATROX_MGA2064W 16 /* Matrox MGA2064W (Millenium) */=0A= #define FB_ACCEL_MATROX_MGA1064SG 17 /* Matrox MGA1064SG (Mystique) */=0A= #define FB_ACCEL_MATROX_MGA2164W 18 /* Matrox MGA2164W (Millenium II) */=0A= #define FB_ACCEL_MATROX_MGA2164W_AGP 19 /* Matrox MGA2164W (Millenium = II) */=0A= #define FB_ACCEL_MATROX_MGAG100 20 /* Matrox G100 (Productiva G100) */=0A= #define FB_ACCEL_MATROX_MGAG200 21 /* Matrox G200 (Myst, Mill, ...) */=0A= #define FB_ACCEL_SUN_CG14 22 /* Sun cgfourteen */=0A= #define FB_ACCEL_SUN_BWTWO 23 /* Sun bwtwo */=0A= #define FB_ACCEL_SUN_CGTHREE 24 /* Sun cgthree */=0A= #define FB_ACCEL_SUN_TCX 25 /* Sun tcx */=0A= #define FB_ACCEL_MATROX_MGAG400 26 /* Matrox G400 */=0A= #define FB_ACCEL_ATI_RAGE128 32 /* ATI Rage 128 */=0A= =0A= struct fb_fix_screeninfo {=0A= char id[16]; /* identification string eg "TT Builtin" */=0A= char *smem_start; /* Start of frame buffer mem */=0A= /* (physical address) */=0A= __u32 smem_len; /* Length of frame buffer mem */=0A= __u32 type; /* see FB_TYPE_* */=0A= __u32 type_aux; /* Interleave for interleaved Planes */=0A= __u32 visual; /* see FB_VISUAL_* */ =0A= __u16 xpanstep; /* zero if no hardware panning */=0A= __u16 ypanstep; /* zero if no hardware panning */=0A= __u16 ywrapstep; /* zero if no hardware ywrap */=0A= __u32 line_length; /* length of a line in bytes */=0A= char *mmio_start; /* Start of Memory Mapped I/O */=0A= /* (physical address) */=0A= __u32 mmio_len; /* Length of Memory Mapped I/O */=0A= __u32 accel; /* Type of acceleration available */=0A= __u16 reserved[3]; /* Reserved for future compatibility */=0A= };=0A= =0A= /* Interpretation of offset for color fields: All offsets are from the = right,=0A= * inside a "pixel" value, which is exactly 'bits_per_pixel' wide = (means: you=0A= * can use the offset as right argument to <<). A pixel afterwards is a = bit=0A= * stream and is written to video memory as that unmodified. This implies=0A= * big-endian byte order if bits_per_pixel is greater than 8.=0A= */=0A= struct fb_bitfield {=0A= __u32 offset; /* beginning of bitfield */=0A= __u32 length; /* length of bitfield */=0A= __u32 msb_right; /* !=3D 0 : Most significant bit is */ =0A= /* right */ =0A= };=0A= =0A= #define FB_NONSTD_HAM 1 /* Hold-And-Modify (HAM) */=0A= =0A= #define FB_ACTIVATE_NOW 0 /* set values immediately (or vbl)*/=0A= #define FB_ACTIVATE_NXTOPEN 1 /* activate on next open */=0A= #define FB_ACTIVATE_TEST 2 /* don't set, round up impossible */=0A= #define FB_ACTIVATE_MASK 15=0A= /* values */=0A= #define FB_ACTIVATE_VBL 16 /* activate values on next vbl */=0A= #define FB_CHANGE_CMAP_VBL 32 /* change colormap on vbl */=0A= #define FB_ACTIVATE_ALL 64 /* change all VCs on this fb */=0A= =0A= #define FB_ACCELF_TEXT 1 /* text mode acceleration */=0A= =0A= #define FB_SYNC_HOR_HIGH_ACT 1 /* horizontal sync high active */=0A= #define FB_SYNC_VERT_HIGH_ACT 2 /* vertical sync high active */=0A= #define FB_SYNC_EXT 4 /* external sync */=0A= #define FB_SYNC_COMP_HIGH_ACT 8 /* composite sync high active */=0A= #define FB_SYNC_BROADCAST 16 /* broadcast video timings */=0A= /* vtotal =3D 144d/288n/576i =3D> PAL */=0A= /* vtotal =3D 121d/242n/484i =3D> NTSC */=0A= #define FB_SYNC_ON_GREEN 32 /* sync on green */=0A= =0A= #define FB_VMODE_NONINTERLACED 0 /* non interlaced */=0A= #define FB_VMODE_INTERLACED 1 /* interlaced */=0A= #define FB_VMODE_DOUBLE 2 /* double scan */=0A= #define FB_VMODE_MASK 255=0A= =0A= #define FB_VMODE_YWRAP 256 /* ywrap instead of panning */=0A= #define FB_VMODE_SMOOTH_XPAN 512 /* smooth xpan possible (internally = used) */=0A= #define FB_VMODE_CONUPDATE 512 /* don't update x/yoffset */=0A= =0A= struct fb_var_screeninfo {=0A= __u32 xres; /* visible resolution */=0A= __u32 yres;=0A= __u32 xres_virtual; /* virtual resolution */=0A= __u32 yres_virtual;=0A= __u32 xoffset; /* offset from virtual to visible */=0A= __u32 yoffset; /* resolution */=0A= =0A= __u32 bits_per_pixel; /* guess what */=0A= __u32 grayscale; /* !=3D 0 Graylevels instead of colors */=0A= =0A= struct fb_bitfield red; /* bitfield in fb mem if true color, */=0A= struct fb_bitfield green; /* else only length is significant */=0A= struct fb_bitfield blue;=0A= struct fb_bitfield transp; /* transparency */ =0A= =0A= __u32 nonstd; /* !=3D 0 Non standard pixel format */=0A= =0A= __u32 activate; /* see FB_ACTIVATE_* */=0A= =0A= __u32 height; /* height of picture in mm */=0A= __u32 width; /* width of picture in mm */=0A= =0A= __u32 accel_flags; /* acceleration flags (hints) */=0A= =0A= /* Timing: All values in pixclocks, except pixclock (of course) */=0A= __u32 pixclock; /* pixel clock in ps (pico seconds) */=0A= __u32 left_margin; /* time from sync to picture */=0A= __u32 right_margin; /* time from picture to sync */=0A= __u32 upper_margin; /* time from sync to picture */=0A= __u32 lower_margin;=0A= __u32 hsync_len; /* length of horizontal sync */=0A= __u32 vsync_len; /* length of vertical sync */=0A= __u32 sync; /* see FB_SYNC_* */=0A= __u32 vmode; /* see FB_VMODE_* */=0A= __u32 reserved[6]; /* Reserved for future compatibility */=0A= };=0A= =0A= struct fb_cmap {=0A= __u32 start; /* First entry */=0A= __u32 len; /* Number of entries */=0A= __u16 *red; /* Red values */=0A= __u16 *green;=0A= __u16 *blue;=0A= __u16 *transp; /* transparency, can be NULL */=0A= };=0A= =0A= struct fb_con2fbmap {=0A= __u32 console;=0A= __u32 framebuffer;=0A= };=0A= =0A= struct fb_monspecs {=0A= __u32 hfmin; /* hfreq lower limit (Hz) */=0A= __u32 hfmax; /* hfreq upper limit (Hz) */=0A= __u16 vfmin; /* vfreq lower limit (Hz) */=0A= __u16 vfmax; /* vfreq upper limit (Hz) */=0A= unsigned dpms : 1; /* supports DPMS */=0A= };=0A= =0A= #ifdef __KERNEL__=0A= =0A= #include <linux/fs.h>=0A= =0A= =0A= struct fb_info;=0A= struct fb_info_gen;=0A= struct vm_area_struct;=0A= struct file;=0A= =0A= /*=0A= * Frame buffer operations=0A= */=0A= =0A= struct fb_ops {=0A= /* open/release and usage marking */=0A= int (*fb_open)(struct fb_info *info, int user);=0A= int (*fb_release)(struct fb_info *info, int user);=0A= /* get non settable parameters */=0A= int (*fb_get_fix)(struct fb_fix_screeninfo *fix, int con,=0A= struct fb_info *info); =0A= /* get settable parameters */=0A= int (*fb_get_var)(struct fb_var_screeninfo *var, int con,=0A= struct fb_info *info); =0A= /* set settable parameters */=0A= int (*fb_set_var)(struct fb_var_screeninfo *var, int con,=0A= struct fb_info *info); =0A= /* get colormap */=0A= int (*fb_get_cmap)(struct fb_cmap *cmap, int kspc, int con,=0A= struct fb_info *info);=0A= /* set colormap */=0A= int (*fb_set_cmap)(struct fb_cmap *cmap, int kspc, int con,=0A= struct fb_info *info);=0A= /* pan display */=0A= int (*fb_pan_display)(struct fb_var_screeninfo *var, int con,=0A= struct fb_info *info);=0A= /* perform fb specific ioctl */=0A= int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int = cmd,=0A= unsigned long arg, int con, struct fb_info *info);=0A= /* perform fb specific mmap */=0A= int (*fb_mmap)(struct fb_info *info, struct file *file, struct = vm_area_struct *vma);=0A= /* switch to/from raster image mode */=0A= int (*fb_rasterimg)(struct fb_info *info, int start);=0A= };=0A= =0A= =0A= /*=0A= * This is the interface between the low-level console driver and = the=0A= * low-level frame buffer device=0A= */=0A= =0A= struct display {=0A= /* Filled in by the frame buffer device */=0A= =0A= struct fb_var_screeninfo var; /* variable infos. yoffset and vmode = */=0A= /* are updated by fbcon.c */=0A= struct fb_cmap cmap; /* colormap */=0A= char *screen_base; /* pointer to top of virtual screen = */ =0A= /* (virtual address) */=0A= int visual;=0A= int type; /* see FB_TYPE_* */=0A= int type_aux; /* Interleave for interleaved Planes = */=0A= u_short ypanstep; /* zero if no hardware ypan */=0A= u_short ywrapstep; /* zero if no hardware ywrap */=0A= u_long line_length; /* length of a line in bytes */=0A= u_short can_soft_blank; /* zero if no hardware blanking */=0A= u_short inverse; /* !=3D 0 text black on white as = default */=0A= struct display_switch *dispsw; /* low level operations */=0A= void *dispsw_data; /* optional dispsw helper data */=0A= =0A= #if 0=0A= struct fb_fix_cursorinfo fcrsr;=0A= struct fb_var_cursorinfo *vcrsr;=0A= struct fb_cursorstate crsrstate;=0A= #endif=0A= =0A= /* Filled in by the low-level console driver */=0A= =0A= struct vc_data *conp; /* pointer to console data */=0A= struct fb_info *fb_info; /* frame buffer for this console */=0A= int vrows; /* number of virtual rows */=0A= unsigned short cursor_x; /* current cursor position */=0A= unsigned short cursor_y;=0A= int fgcol; /* text colors */=0A= int bgcol;=0A= u_long next_line; /* offset to one line below */=0A= u_long next_plane; /* offset to next plane */=0A= u_char *fontdata; /* Font associated to this display */=0A= unsigned short _fontheightlog;=0A= unsigned short _fontwidthlog;=0A= unsigned short _fontheight;=0A= unsigned short _fontwidth;=0A= int userfont; /* !=3D 0 if fontdata kmalloc()ed */=0A= u_short scrollmode; /* Scroll Method */=0A= short yscroll; /* Hardware scrolling */=0A= unsigned char fgshift, bgshift;=0A= unsigned short charmask; /* 0xff or 0x1ff */=0A= };=0A= =0A= =0A= struct fb_info {=0A= char modename[40]; /* default video mode */=0A= kdev_t node;=0A= int flags;=0A= #define FBINFO_FLAG_MODULE 1 /* Low-level driver is a module */=0A= struct fb_ops *fbops;=0A= struct fb_monspecs monspecs;=0A= struct display *disp; /* initial display variable */=0A= struct vc_data *display_fg; /* Console visible on this display */=0A= char fontname[40]; /* default font name */=0A= int (*changevar)(int); /* tell console var has changed */=0A= int (*switch_con)(int, struct fb_info*);=0A= /* tell fb to switch consoles */=0A= int (*updatevar)(int, struct fb_info*);=0A= /* tell fb to update the vars */=0A= void (*blank)(int, struct fb_info*); /* tell fb to (un)blank the = screen */=0A= /* arg =3D 0: unblank */=0A= /* arg > 0: VESA level (arg-1) */=0A= =0A= /* From here on everything is device dependent */=0A= };=0A= =0A= #ifdef MODULE=0A= #define FBINFO_FLAG_DEFAULT FBINFO_FLAG_MODULE=0A= #else=0A= #define FBINFO_FLAG_DEFAULT 0=0A= #endif=0A= =0A= /*=0A= * This structure abstracts from the underlying hardware. It is not=0A= * mandatory but used by the `generic' frame buffer operations.=0A= * Read drivers/video/skeletonfb.c for more information.=0A= */=0A= =0A= struct fbgen_hwswitch {=0A= void (*detect)(void);=0A= int (*encode_fix)(struct fb_fix_screeninfo *fix, const void *par,=0A= struct fb_info_gen *info);=0A= int (*decode_var)(const struct fb_var_screeninfo *var, void *par,=0A= struct fb_info_gen *info);=0A= int (*encode_var)(struct fb_var_screeninfo *var, const void *par,=0A= struct fb_info_gen *info);=0A= void (*get_par)(void *par, struct fb_info_gen *info);=0A= void (*set_par)(const void *par, struct fb_info_gen *info);=0A= int (*getcolreg)(unsigned regno, unsigned *red, unsigned *green,=0A= unsigned *blue, unsigned *transp, struct fb_info *info);=0A= int (*setcolreg)(unsigned regno, unsigned red, unsigned green,=0A= unsigned blue, unsigned transp, struct fb_info *info);=0A= int (*pan_display)(const struct fb_var_screeninfo *var,=0A= struct fb_info_gen *info);=0A= int (*blank)(int blank_mode, struct fb_info_gen *info);=0A= void (*set_disp)(const void *par, struct display *disp,=0A= struct fb_info_gen *info);=0A= };=0A= =0A= struct fb_info_gen {=0A= struct fb_info info;=0A= =0A= /* Entries for a generic frame buffer device */=0A= /* Yes, this starts looking like C++ */=0A= u_int parsize;=0A= struct fbgen_hwswitch *fbhw;=0A= =0A= /* From here on everything is device dependent */=0A= };=0A= =0A= /*=0A= * `Generic' versions of the frame buffer device operations=0A= */=0A= =0A= extern int fbgen_get_fix(struct fb_fix_screeninfo *fix, int con,=0A= struct fb_info *info);=0A= extern int fbgen_get_var(struct fb_var_screeninfo *var, int con,=0A= struct fb_info *info);=0A= extern int fbgen_set_var(struct fb_var_screeninfo *var, int con,=0A= struct fb_info *info);=0A= extern int fbgen_get_cmap(struct fb_cmap *cmap, int kspc, int con,=0A= struct fb_info *info);=0A= extern int fbgen_set_cmap(struct fb_cmap *cmap, int kspc, int con,=0A= struct fb_info *info);=0A= extern int fbgen_pan_display(struct fb_var_screeninfo *var, int con,=0A= struct fb_info *info);=0A= extern int fbgen_ioctl(struct inode *inode, struct file *file,=0A= unsigned int cmd, unsigned long arg, int con,=0A= struct fb_info *info);=0A= =0A= /*=0A= * Helper functions=0A= */=0A= =0A= extern int fbgen_do_set_var(struct fb_var_screeninfo *var, int isactive,=0A= struct fb_info_gen *info);=0A= extern void fbgen_set_disp(int con, struct fb_info_gen *info);=0A= extern void fbgen_install_cmap(int con, struct fb_info_gen *info);=0A= extern int fbgen_update_var(int con, struct fb_info *info);=0A= extern int fbgen_switch(int con, struct fb_info *info);=0A= extern void fbgen_blank(int blank, struct fb_info *info);=0A= =0A= =0A= struct fb_videomode {=0A= const char *name;=0A= struct fb_var_screeninfo var;=0A= };=0A= =0A= =0A= /* drivers/char/fbmem.c */=0A= extern int register_framebuffer(struct fb_info *fb_info);=0A= extern int unregister_framebuffer(const struct fb_info *fb_info);=0A= extern int fbmon_valid_timings(u_int pixclock, u_int htotal, u_int = vtotal,=0A= const struct fb_info *fb_info);=0A= extern int fbmon_dpms(const struct fb_info *fb_info);=0A= =0A= =0A= extern int num_registered_fb;=0A= extern struct fb_info *registered_fb[FB_MAX];=0A= extern char con2fb_map[MAX_NR_CONSOLES];=0A= =0A= /* drivers/video/fbcon.c */=0A= extern struct display fb_display[MAX_NR_CONSOLES];=0A= =0A= /* drivers/video/fbcmap.c */=0A= extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp);=0A= extern void fb_copy_cmap(struct fb_cmap *from, struct fb_cmap *to,=0A= int fsfromto);=0A= extern int fb_get_cmap(struct fb_cmap *cmap, int kspc,=0A= int (*getcolreg)(u_int, u_int *, u_int *, u_int *,=0A= u_int *, struct fb_info *),=0A= struct fb_info *fb_info);=0A= extern int fb_set_cmap(struct fb_cmap *cmap, int kspc,=0A= int (*setcolreg)(u_int, u_int, u_int, u_int, u_int,=0A= struct fb_info *),=0A= struct fb_info *fb_info);=0A= extern struct fb_cmap *fb_default_cmap(int len);=0A= extern void fb_invert_cmaps(void);=0A= =0A= /* VESA Blanking Levels */=0A= #define VESA_NO_BLANKING 0=0A= #define VESA_VSYNC_SUSPEND 1=0A= #define VESA_HSYNC_SUSPEND 2=0A= #define VESA_POWERDOWN 3=0A= =0A= #endif /* __KERNEL__ */=0A= =0A= #if 1=0A= =0A= #define FBCMD_GET_CURRENTPAR 0xDEAD0005=0A= #define FBCMD_SET_CURRENTPAR 0xDEAD8005=0A= =0A= #endif=0A= =0A= =0A= #if 1 /* Preliminary */=0A= =0A= /*=0A= * Hardware Cursor=0A= */=0A= =0A= #define FBIOGET_FCURSORINFO 0x4607=0A= #define FBIOGET_VCURSORINFO 0x4608=0A= #define FBIOPUT_VCURSORINFO 0x4609=0A= #define FBIOGET_CURSORSTATE 0x460A=0A= #define FBIOPUT_CURSORSTATE 0x460B=0A= =0A= =0A= struct fb_fix_cursorinfo {=0A= __u16 crsr_width; /* width and height of the cursor in */=0A= __u16 crsr_height; /* pixels (zero if no cursor) */=0A= __u16 crsr_xsize; /* cursor size in display pixels */=0A= __u16 crsr_ysize;=0A= __u16 crsr_color1; /* colormap entry for cursor color1 */=0A= __u16 crsr_color2; /* colormap entry for cursor color2 */=0A= };=0A= =0A= struct fb_var_cursorinfo {=0A= __u16 width;=0A= __u16 height;=0A= __u16 xspot;=0A= __u16 yspot;=0A= __u8 data[1]; /* field with [height][width] */=0A= };=0A= =0A= struct fb_cursorstate {=0A= __s16 xoffset;=0A= __s16 yoffset;=0A= __u16 mode;=0A= };=0A= =0A= #define FB_CURSOR_OFF 0=0A= #define FB_CURSOR_ON 1=0A= #define FB_CURSOR_FLASH 2=0A= =0A= #endif /* Preliminary */=0A= =0A= #endif /* _LINUX_FB_H */=0A= ------=_NextPart_000_0042_01C1104F.D09549B0 Content-Type: application/octet-stream; name="kd.h" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="kd.h" #ifndef _LINUX_KD_H=0A= #define _LINUX_KD_H=0A= #include <linux/types.h>=0A= =0A= /* 0x4B is 'K', to avoid collision with termios and vt */=0A= =0A= #define GIO_FONT 0x4B60 /* gets font in expanded form */=0A= #define PIO_FONT 0x4B61 /* use font in expanded form */=0A= =0A= #define GIO_FONTX 0x4B6B /* get font using struct consolefontdesc */=0A= #define PIO_FONTX 0x4B6C /* set font using struct consolefontdesc */=0A= struct consolefontdesc {=0A= unsigned short charcount; /* characters in font (256 or 512) */=0A= unsigned short charheight; /* scan lines per character (1-32) */=0A= char *chardata; /* font data in expanded form */=0A= };=0A= =0A= #define PIO_FONTRESET 0x4B6D /* reset to default font */=0A= =0A= #define GIO_CMAP 0x4B70 /* gets colour palette on VGA+ */=0A= #define PIO_CMAP 0x4B71 /* sets colour palette on VGA+ */=0A= =0A= #define KIOCSOUND 0x4B2F /* start sound generation (0 for off) */=0A= #define KDMKTONE 0x4B30 /* generate tone */=0A= =0A= #define KDGETLED 0x4B31 /* return current led state */=0A= #define KDSETLED 0x4B32 /* set led state [lights, not flags] */=0A= #define LED_SCR 0x01 /* scroll lock led */=0A= #define LED_CAP 0x04 /* caps lock led */=0A= #define LED_NUM 0x02 /* num lock led */=0A= =0A= #define KDGKBTYPE 0x4B33 /* get keyboard type */=0A= #define KB_84 0x01=0A= #define KB_101 0x02 /* this is what we always answer */=0A= #define KB_OTHER 0x03=0A= =0A= #define KDADDIO 0x4B34 /* add i/o port as valid */=0A= #define KDDELIO 0x4B35 /* del i/o port as valid */=0A= #define KDENABIO 0x4B36 /* enable i/o to video board */=0A= #define KDDISABIO 0x4B37 /* disable i/o to video board */=0A= =0A= #define KDSETMODE 0x4B3A /* set text/graphics mode */=0A= #define KD_TEXT 0x00=0A= #define KD_GRAPHICS 0x01=0A= #define KD_TEXT0 0x02 /* obsolete */=0A= #define KD_TEXT1 0x03 /* obsolete */=0A= #define KDGETMODE 0x4B3B /* get current mode */=0A= =0A= #define KDMAPDISP 0x4B3C /* map display into address space */=0A= #define KDUNMAPDISP 0x4B3D /* unmap display from address space */=0A= =0A= typedef char scrnmap_t;=0A= #define E_TABSZ 256=0A= #define GIO_SCRNMAP 0x4B40 /* get screen mapping from kernel */=0A= #define PIO_SCRNMAP 0x4B41 /* put screen mapping table in kernel */=0A= #define GIO_UNISCRNMAP 0x4B69 /* get full Unicode screen mapping */=0A= #define PIO_UNISCRNMAP 0x4B6A /* set full Unicode screen mapping */=0A= =0A= #define GIO_UNIMAP 0x4B66 /* get unicode-to-font mapping from kernel */=0A= struct unipair {=0A= unsigned short unicode;=0A= unsigned short fontpos;=0A= };=0A= struct unimapdesc {=0A= unsigned short entry_ct;=0A= struct unipair *entries;=0A= };=0A= #define PIO_UNIMAP 0x4B67 /* put unicode-to-font mapping in kernel */=0A= #define PIO_UNIMAPCLR 0x4B68 /* clear table, possibly advise hash = algorithm */=0A= struct unimapinit {=0A= unsigned short advised_hashsize; /* 0 if no opinion */=0A= unsigned short advised_hashstep; /* 0 if no opinion */=0A= unsigned short advised_hashlevel; /* 0 if no opinion */=0A= };=0A= =0A= #define UNI_DIRECT_BASE 0xF000 /* start of Direct Font Region */=0A= #define UNI_DIRECT_MASK 0x01FF /* Direct Font Region bitmask */=0A= =0A= #define K_RAW 0x00=0A= #define K_XLATE 0x01=0A= #define K_MEDIUMRAW 0x02=0A= #define K_UNICODE 0x03=0A= #define KDGKBMODE 0x4B44 /* gets current keyboard mode */=0A= #define KDSKBMODE 0x4B45 /* sets current keyboard mode */=0A= =0A= #define K_METABIT 0x03=0A= #define K_ESCPREFIX 0x04=0A= #define KDGKBMETA 0x4B62 /* gets meta key handling mode */=0A= #define KDSKBMETA 0x4B63 /* sets meta key handling mode */=0A= =0A= #define K_SCROLLLOCK 0x01=0A= #define K_CAPSLOCK 0x02=0A= #define K_NUMLOCK 0x04=0A= #define KDGKBLED 0x4B64 /* get led flags (not lights) */=0A= #define KDSKBLED 0x4B65 /* set led flags (not lights) */=0A= =0A= struct kbentry {=0A= unsigned char kb_table;=0A= unsigned char kb_index;=0A= unsigned short kb_value;=0A= };=0A= #define K_NORMTAB 0x00=0A= #define K_SHIFTTAB 0x01=0A= #define K_ALTTAB 0x02=0A= #define K_ALTSHIFTTAB 0x03=0A= =0A= #define KDGKBENT 0x4B46 /* gets one entry in translation table */=0A= #define KDSKBENT 0x4B47 /* sets one entry in translation table */=0A= =0A= struct kbsentry {=0A= unsigned char kb_func;=0A= unsigned char kb_string[512];=0A= };=0A= #define KDGKBSENT 0x4B48 /* gets one function key string entry */=0A= #define KDSKBSENT 0x4B49 /* sets one function key string entry */=0A= =0A= struct kbdiacr {=0A= unsigned char diacr, base, result;=0A= };=0A= struct kbdiacrs {=0A= unsigned int kb_cnt; /* number of entries in following array = */=0A= struct kbdiacr kbdiacr[256]; /* MAX_DIACR from keyboard.h */=0A= };=0A= #define KDGKBDIACR 0x4B4A /* read kernel accent table */=0A= #define KDSKBDIACR 0x4B4B /* write kernel accent table */=0A= =0A= struct kbkeycode {=0A= unsigned int scancode, keycode;=0A= };=0A= #define KDGETKEYCODE 0x4B4C /* read kernel keycode table entry */=0A= #define KDSETKEYCODE 0x4B4D /* write kernel keycode table entry */=0A= =0A= #define KDSIGACCEPT 0x4B4E /* accept kbd generated signals */=0A= =0A= struct hwclk_time {=0A= unsigned sec; /* 0..59 */=0A= unsigned min; /* 0..59 */=0A= unsigned hour; /* 0..23 */=0A= unsigned day; /* 1..31 */=0A= unsigned mon; /* 0..11 */=0A= unsigned year; /* 70... */=0A= int wday; /* 0..6, 0 is Sunday, -1 means unknown/don't set */=0A= };=0A= =0A= #define KDGHWCLK 0x4B50 /* get hardware clock */=0A= #define KDSHWCLK 0x4B51 /* set hardware clock */=0A= =0A= struct kbd_repeat {=0A= int delay; /* in msec; <=3D 0: don't change */=0A= int rate; /* in msec; <=3D 0: don't change */=0A= };=0A= =0A= #define KDKBDREP 0x4B52 /* set keyboard delay/repeat rate;=0A= * actually used values are returned */=0A= =0A= #define KDFONTOP 0x4B72 /* font operations */=0A= =0A= struct console_font_op {=0A= unsigned int op; /* operation code KD_FONT_OP_* */=0A= unsigned int flags; /* KD_FONT_FLAG_* */=0A= unsigned int width, height; /* font size */=0A= unsigned int charcount;=0A= unsigned char *data; /* font data with height fixed to 32 */=0A= };=0A= =0A= #define KD_FONT_OP_SET 0 /* Set font */=0A= #define KD_FONT_OP_GET 1 /* Get font */=0A= #define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to = name / NULL */=0A= #define KD_FONT_OP_COPY 3 /* Copy from another console */=0A= =0A= #define KD_FONT_FLAG_DONT_RECALC 1 /* Don't recalculate hw charcell = size [compat] */=0A= #ifdef __KERNEL__=0A= #define KD_FONT_FLAG_OLD 0x80000000 /* Invoked via old interface = [compat] */=0A= #endif=0A= =0A= /* note: 0x4B00-0x4B4E all have had a value at some time;=0A= don't reuse for the time being */=0A= /* note: 0x4B60-0x4B6D, 0x4B70-0x4B72 used above */=0A= =0A= #endif /* _LINUX_KD_H */=0A= ------=_NextPart_000_0042_01C1104F.D09549B0 Content-Type: application/octet-stream; name="vt.h" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="vt.h" #ifndef _LINUX_VT_H=0A= #define _LINUX_VT_H=0A= =0A= /* 0x56 is 'V', to avoid collision with termios and kd */=0A= =0A= #define VT_OPENQRY 0x5600 /* find available vt */=0A= =0A= struct vt_mode {=0A= char mode; /* vt mode */=0A= char waitv; /* if set, hang on writes if not active */=0A= short relsig; /* signal to raise on release req */=0A= short acqsig; /* signal to raise on acquisition */=0A= short frsig; /* unused (set to 0) */=0A= };=0A= #define VT_GETMODE 0x5601 /* get mode of active vt */=0A= #define VT_SETMODE 0x5602 /* set mode of active vt */=0A= #define VT_AUTO 0x00 /* auto vt switching */=0A= #define VT_PROCESS 0x01 /* process controls switching */=0A= #define VT_ACKACQ 0x02 /* acknowledge switch */=0A= =0A= struct vt_stat {=0A= unsigned short v_active; /* active vt */=0A= unsigned short v_signal; /* signal to send */=0A= unsigned short v_state; /* vt bitmask */=0A= };=0A= #define VT_GETSTATE 0x5603 /* get global vt state info */=0A= #define VT_SENDSIG 0x5604 /* signal to send to bitmask of vts */=0A= =0A= #define VT_RELDISP 0x5605 /* release display */=0A= =0A= #define VT_ACTIVATE 0x5606 /* make vt active */=0A= #define VT_WAITACTIVE 0x5607 /* wait for vt active */=0A= #define VT_DISALLOCATE 0x5608 /* free memory associated to vt */=0A= =0A= struct vt_sizes {=0A= unsigned short v_rows; /* number of rows */=0A= unsigned short v_cols; /* number of columns */=0A= unsigned short v_scrollsize; /* number of lines of scrollback */=0A= };=0A= #define VT_RESIZE 0x5609 /* set kernel's idea of screensize */=0A= =0A= struct vt_consize {=0A= unsigned short v_rows; /* number of rows */=0A= unsigned short v_cols; /* number of columns */=0A= unsigned short v_vlin; /* number of pixel rows on screen */=0A= unsigned short v_clin; /* number of pixel rows per character */=0A= unsigned short v_vcol; /* number of pixel columns on screen */=0A= unsigned short v_ccol; /* number of pixel columns per character */=0A= };=0A= #define VT_RESIZEX 0x560A /* set kernel's idea of screensize + = more */=0A= #define VT_LOCKSWITCH 0x560B /* disallow vt switching */=0A= #define VT_UNLOCKSWITCH 0x560C /* allow vt switching */=0A= =0A= #endif /* _LINUX_VT_H */=0A= ------=_NextPart_000_0042_01C1104F.D09549B0-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?MDEPIGHBKHAKBGINHHJPOEILECAA.christes>