⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 map.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
static  char sccsid[] = "@(#)map.c 1.1 92/07/30 SMI";#include <fcntl.h>#include <sys/types.h>#include <sys/mman.h>#include "cg6reg.h"static	char *fbctec = 0;static	char *fhcthc = 0;extern char *device_name;extern char *getenv();int *map_lego_rom(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = 0;	prot = PROT_READ|PROT_WRITE;	flags = MAP_SHARED;	fd = open ( device, O_RDWR );	addr = (char *)mmap ( 0, CG6_ROM_SZ, prot, flags, fd, offset );	close ( fd );	return ( (int *)addr );}int *map_lego_alt(){        int     fd, prot, flags;        int     offset;        char    *addr;        char    *device;        device = device_name;        offset = 0x280000;        flags = MAP_PRIVATE;/**        device = getenv ("CG6DEVICE");*        if ( device == 0 ) device = strdup ( "/dev/sbus1" );*        offset = 0x280000;**        prot = PROT_READ|PROT_WRITE;*        flags = MAP_SHARED;*/        fd = open ( device, O_RDWR );        addr = (char *)mmap ( 0, CG6_ROM_SZ, prot, flags, fd, offset );        close ( fd );        return ( (int *)addr );}int *map_lego_dac(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = CG6_VADDR_CMAP;	flags = MAP_PRIVATE;	if ( strncmp ( device, "/dev/cgsix", 10 ) != 0 ) {		offset = CG6_ADDR_CMAP;		flags = MAP_SHARED;	}	prot = PROT_READ|PROT_WRITE;	fd = open ( device, O_RDWR );	addr = (char *)mmap ( 0, CG6_CMAP_SZ, prot, flags, fd, offset );	close (fd);	return ( (int *)addr );}int *map_lego_tec(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = CG6_VADDR_FBC;	flags = MAP_PRIVATE;	if ( strncmp ( device, "/dev/cgsix", 10 ) != 0 ) {		offset = CG6_ADDR_FBC;		flags = MAP_SHARED;	}	prot = PROT_READ|PROT_WRITE;	fd = open ( device, O_RDWR );	if ( fbctec == 0 ) {		addr = (char *)mmap(0, CG6_FBCTEC_SZ, prot, flags, fd, offset);		fbctec = addr;	} else addr = fbctec;	addr += CG6_TEC_POFF;	close (fd);	return ( (int *)addr );}int *map_lego_thc(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = CG6_VADDR_FHC;	flags = MAP_PRIVATE;	if ( strncmp ( device, "/dev/cgsix", 10 ) != 0 ) {		offset = CG6_ADDR_FHC;		flags = MAP_SHARED;	}	prot = PROT_READ|PROT_WRITE;	fd = open ( device, O_RDWR );	if ( fhcthc == 0 ) {		addr = (char *)mmap(0, CG6_FHCTHC_SZ, prot, flags, fd, offset);		fhcthc = addr;	} else addr = fhcthc;	addr += CG6_THC_POFF;	close (fd);	return ( (int *)addr );}int *map_lego_fbc(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = CG6_VADDR_FBC;	flags = MAP_PRIVATE;	if ( strncmp ( device, "/dev/cgsix", 10 ) != 0 ) {		offset = CG6_ADDR_FBC;		flags = MAP_SHARED;	}	prot = PROT_READ|PROT_WRITE;	fd = open ( device, O_RDWR );	if ( fbctec == 0 ) {		addr = (char *)mmap(0, CG6_FBCTEC_SZ, prot, flags, fd, offset);		fbctec = addr;	} else addr = fbctec;	close (fd);	return ( (int *)addr );}int *map_lego_fhc(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = CG6_VADDR_FHC;	flags = MAP_PRIVATE;	if ( strncmp ( device, "/dev/cgsix", 10 ) != 0 ) {		offset = CG6_ADDR_FHC;		flags = MAP_SHARED;	}	prot = PROT_READ|PROT_WRITE;	fd = open ( device, O_RDWR );	if ( fhcthc == 0 ) {		addr = (char *)mmap(0, CG6_FHCTHC_SZ, prot, flags, fd, offset);		fhcthc = addr;	} else addr = fhcthc;	close (fd);	return ( (int *)addr );}int *map_lego_dfb(){	int	fd, prot, flags;	int	offset;	char	*addr;	char	*device;	device = device_name;	offset = CG6_VADDR_COLOR;	flags = MAP_PRIVATE;	if (strncmp (device, "/dev/cgsix", 10 ) != 0 ) {		offset = CG6_ADDR_COLOR;		flags = MAP_SHARED;	}	prot = PROT_READ|PROT_WRITE;	fd = open ( device, O_RDWR );/**	addr = (char *)mmap ( 0, CG6_FB_SZ, prot, flags, fd, offset );*/	addr = (char *)mmap ( 0, 0x800000, prot, flags, fd, offset );	close (fd);	return ( (int *)addr );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -