Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Marvin Scholz
libaacs
Commits
e190c88f
Commit
e190c88f
authored
Feb 22, 2016
by
npzacs
Browse files
Merge file_write() from libbluray
parent
bed21f3b
Changes
3
Show whitespace changes
Inline
Side-by-side
src/file/file.h
View file @
e190c88f
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
#define file_seek(X,Y,Z) X->seek(X,Y,Z)
#define file_seek(X,Y,Z) X->seek(X,Y,Z)
#define file_tell(X) X->tell(X)
#define file_tell(X) X->tell(X)
#define file_read(X,Y,Z) X->read(X,Y,Z)
#define file_read(X,Y,Z) X->read(X,Y,Z)
#define file_write(X,Y,Z) X->write(X,Y,Z)
BD_PRIVATE
int64_t
file_size
(
AACS_FILE_H
*
fp
);
BD_PRIVATE
int64_t
file_size
(
AACS_FILE_H
*
fp
);
BD_PRIVATE
extern
AACS_FILE_H
*
(
*
file_open
)(
const
char
*
filename
,
const
char
*
mode
);
BD_PRIVATE
extern
AACS_FILE_H
*
(
*
file_open
)(
const
char
*
filename
,
const
char
*
mode
);
...
...
src/file/file_posix.c
View file @
e190c88f
...
@@ -87,6 +87,28 @@ static int64_t _file_read(AACS_FILE_H *file, uint8_t *buf, int64_t size)
...
@@ -87,6 +87,28 @@ static int64_t _file_read(AACS_FILE_H *file, uint8_t *buf, int64_t size)
return
(
int64_t
)
got
;
return
(
int64_t
)
got
;
}
}
static
int64_t
_file_write
(
AACS_FILE_H
*
file
,
const
uint8_t
*
buf
,
int64_t
size
)
{
ssize_t
written
,
result
;
if
(
size
<=
0
||
size
>=
BD_MAX_SSIZE
)
{
BD_DEBUG
(
DBG_FILE
|
DBG_CRIT
,
"Ignoring invalid write of size %"
PRId64
" (%p)
\n
"
,
size
,
(
void
*
)
file
);
return
0
;
}
for
(
written
=
0
;
written
<
(
ssize_t
)
size
;
written
+=
result
)
{
result
=
write
((
int
)(
intptr_t
)
file
->
internal
,
buf
+
written
,
size
-
written
);
if
(
result
<
0
)
{
if
(
errno
!=
EINTR
)
{
BD_DEBUG
(
DBG_FILE
,
"write() failed (%p)
\n
"
,
(
void
*
)
file
);
break
;
}
result
=
0
;
}
}
return
(
int64_t
)
written
;
}
static
AACS_FILE_H
*
_file_open
(
const
char
*
filename
,
const
char
*
cmode
)
static
AACS_FILE_H
*
_file_open
(
const
char
*
filename
,
const
char
*
cmode
)
{
{
AACS_FILE_H
*
file
;
AACS_FILE_H
*
file
;
...
@@ -123,6 +145,7 @@ static AACS_FILE_H *_file_open(const char* filename, const char *cmode)
...
@@ -123,6 +145,7 @@ static AACS_FILE_H *_file_open(const char* filename, const char *cmode)
file
->
close
=
_file_close
;
file
->
close
=
_file_close
;
file
->
seek
=
_file_seek
;
file
->
seek
=
_file_seek
;
file
->
read
=
_file_read
;
file
->
read
=
_file_read
;
file
->
write
=
_file_write
;
file
->
tell
=
_file_tell
;
file
->
tell
=
_file_tell
;
file
->
internal
=
(
void
*
)(
intptr_t
)
fd
;
file
->
internal
=
(
void
*
)(
intptr_t
)
fd
;
...
...
src/file/file_win32.c
View file @
e190c88f
...
@@ -75,6 +75,16 @@ static int64_t _file_read(AACS_FILE_H *file, uint8_t *buf, int64_t size)
...
@@ -75,6 +75,16 @@ static int64_t _file_read(AACS_FILE_H *file, uint8_t *buf, int64_t size)
return
0
;
return
0
;
}
}
static
int64_t
_file_write
(
AACS_FILE_H
*
file
,
const
uint8_t
*
buf
,
int64_t
size
)
{
if
(
size
>
0
&&
size
<
BD_MAX_SSIZE
)
{
return
(
int64_t
)
fwrite
(
buf
,
1
,
(
size_t
)
size
,
(
FILE
*
)
file
->
internal
);
}
BD_DEBUG
(
DBG_FILE
|
DBG_CRIT
,
"Ignoring invalid write of size %"
PRId64
" (%p)
\n
"
,
size
,
(
void
*
)
file
);
return
0
;
}
static
AACS_FILE_H
*
_file_open
(
const
char
*
filename
,
const
char
*
mode
)
static
AACS_FILE_H
*
_file_open
(
const
char
*
filename
,
const
char
*
mode
)
{
{
AACS_FILE_H
*
file
;
AACS_FILE_H
*
file
;
...
@@ -105,6 +115,7 @@ static AACS_FILE_H *_file_open(const char* filename, const char *mode)
...
@@ -105,6 +115,7 @@ static AACS_FILE_H *_file_open(const char* filename, const char *mode)
file
->
close
=
_file_close
;
file
->
close
=
_file_close
;
file
->
seek
=
_file_seek
;
file
->
seek
=
_file_seek
;
file
->
read
=
_file_read
;
file
->
read
=
_file_read
;
file
->
write
=
_file_write
;
file
->
tell
=
_file_tell
;
file
->
tell
=
_file_tell
;
BD_DEBUG
(
DBG_FILE
,
"Opened WIN32 file %s (%p)
\n
"
,
filename
,
(
void
*
)
file
);
BD_DEBUG
(
DBG_FILE
,
"Opened WIN32 file %s (%p)
\n
"
,
filename
,
(
void
*
)
file
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment