Changeset 5222:539af2614ec9 in roaraudio
- Timestamp:
- 11/12/11 12:29:15 (11 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/file.h
r5221 r5222 46 46 ssize_t roar_file_send_raw (int out, int in) _LIBROAR_ATTR_DEPRECATED; 47 47 48 ssize_t roar_file_map (char * filename, int flags, mode_t mode, size_t len, void ** mem) _LIBROAR_ATTR_DEPRECATED;49 int roar_file_unmap (size_t len, void * mem) _LIBROAR_ATTR_DEPRECATED;50 51 48 char * roar_cdromdevice (void); 52 49 -
libroar/file.c
r5221 r5222 131 131 } 132 132 133 ssize_t roar_file_map (char * filename, int flags, mode_t mode, size_t len, void ** mem) {134 #ifdef ROAR_HAVE_MMAP135 int fh;136 int mmap_flags = 0;137 struct stat stat;138 139 roar_debug_warn_obsolete("roar_file_map", NULL, NULL);140 141 if ( mem == NULL || filename == NULL )142 return -1;143 144 *mem = NULL;145 146 if ( flags & O_RDWR ) {147 mmap_flags = PROT_READ|PROT_WRITE;148 } else if ( flags & O_WRONLY ) {149 mmap_flags = PROT_WRITE;150 } else {151 mmap_flags = PROT_READ;152 }153 154 if ( (fh = open(filename, flags, mode)) == -1 ) {155 return -1;156 }157 158 if ( fstat(fh, &stat) == -1 ) {159 close(fh);160 return -1;161 }162 163 if ( stat.st_size < len ) {164 if ( ftruncate(fh, len) == -1 ) {165 close(fh);166 return -1;167 }168 }169 170 if ( (*mem = mmap(NULL, len, mmap_flags, MAP_SHARED, fh, 0)) == NULL ) {171 close(fh);172 return -1;173 }174 175 close(fh);176 177 return len;178 #else179 #ifdef ROAR_TARGET_WIN32180 ROAR_ERR("roar_file_map(*): There is no support to fast access files via mmap() within win32, download a real OS...");181 #endif182 return -1;183 #endif184 }185 186 int roar_file_unmap (size_t len, void * mem) {187 roar_debug_warn_obsolete("roar_file_unmap", NULL, NULL);188 189 #ifdef ROAR_HAVE_MMAP190 return munmap(mem, len);191 #else192 #ifdef ROAR_TARGET_WIN32193 ROAR_ERR("roar_file_map(*): There is no support to fast access files via mmap() within win32, download a real OS...");194 #endif195 return -1;196 #endif197 }198 199 200 133 char * roar_cdromdevice (void) { 201 134 char * k;
Note: See TracChangeset
for help on using the changeset viewer.