Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
isapnp
isapnp-1.26-powerpc.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File isapnp-1.26-powerpc.diff of Package isapnp
--- include/isapnp/iopl.h +++ include/isapnp/iopl.h 2001/12/05 12:54:41 @@ -52,12 +52,15 @@ #include <dos.h> #else #ifndef _OS2_ -# if defined __GLIBC__ && __GLIBC__ >= 2 +# if defined __GLIBC__ && __GLIBC__ >= 2 && !defined __powerpc__ # include <sys/io.h> # else # ifdef _AXP_ # include <sys/io.h> # else +#define __KERNEL__ +# include <asm/types.h> +#undef __KERNEL__ # include <asm/io.h> # endif # endif /* __GLIBC__ */ --- src/iopl.c +++ src/iopl.c 2001/12/05 12:54:41 @@ -48,12 +48,85 @@ #include <isapnp/iopl.h> #include <isapnp/pnp.h> +#ifdef __powerpc__ +unsigned long isa_io_base; +#include <stdio.h> +#include <sys/mman.h> +#include <fcntl.h> +#include <string.h> +#endif + /* Acquire I/O port privileges needed for ISA PnP configuration. ** The return value is 0 on success, or the value of errno on failure. */ int acquire_pnp_io_privileges(void) { +#ifdef __powerpc__ + { + FILE *fd1; + int fd2; + unsigned char buffer[1024]; + unsigned long phys_io_base=0; + + fd1=fopen("/proc/cpuinfo","r"); + if(fd1 == NULL) + { + printf("Cannot open /proc/cpuinfo, unable to determine architecture.\n"); + exit(42); + } + + while(fgets(buffer,1024,fd1)) + { +#ifdef PPCIODEBUG + printf("buffer: %s\n",buffer); +#endif + if(strncmp(buffer,"machine",7)==0) + { +#ifdef PPCIODEBUG + printf("found\n"); +#endif + if(strstr(buffer,"CHRP")) + phys_io_base=CHRP_ISA_IO_BASE; + else if(strstr(buffer,"PReP") || strstr(buffer,"PREP")) + phys_io_base=PREP_ISA_IO_BASE; + } + } + fclose(fd1); + if (phys_io_base==0) + { + printf("Unknown architecture (currently supported: CHRP, PREP)\n"); + exit(43); + } + + fd2=open("/dev/mem",O_RDWR); + if(fd2 < 0) + { + printf("Cannot open /dev/mem, unable to mmap IO space.\n"); + exit(44); + } + + isa_io_base=(unsigned int) mmap((caddr_t)0, + 64<<10, + PROT_READ|PROT_WRITE, + MAP_SHARED, + fd2, + phys_io_base); + + if(isa_io_base==(unsigned int)MAP_FAILED) + { + printf("mmap'ing IO space failed.\n"); + close(fd2); + exit(45); + } + + close(fd2); + + } + return 0; + +#else /* __powerpc__ */ + int ret = 0; #ifdef HAVE_IOPL /* @@ -73,6 +146,7 @@ else { return(0); } +#endif } /* Relinquish I/O port privileges needed for ISA PnP configuration. @@ -81,6 +155,9 @@ int relinquish_pnp_io_privileges(void) { +#ifdef __powerpc__ + return 0; +#else int ret = 0; #ifdef HAVE_IOPL ret = iopl(0); @@ -96,6 +173,7 @@ else { return(0); } +#endif } /****************************************************************************/
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor