Changeset b04c6c66f43e941f33469519f1ff7d15faeeb929
- Timestamp:
- 05/03/08 14:48:17
(2 months ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1209818897 +0300
- git-parent:
[0b776c28b4446eed12dcc984b07f5fcae06d4b6d]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1209818477 +0300
- Message:
Process-wide memcpy/memset accelarations
(CPU features don't change across libvlc instances)
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r7f68203 |
rb04c6c6 |
|
| 884 | 884 | #define CPU_CAPABILITY_FPU (1<<31) |
|---|
| 885 | 885 | VLC_EXPORT( unsigned, vlc_CPU, ( void ) ); |
|---|
| | 886 | VLC_EXPORT( void *, vlc_memcpy, ( void *, const void *, size_t ) ); |
|---|
| | 887 | VLC_EXPORT( void *, vlc_memset, ( void *, int, size_t ) ); |
|---|
| | 888 | |
|---|
| | 889 | typedef void *(*vlc_memcpy_t) (void *tgt, const void *src, size_t n); |
|---|
| | 890 | typedef void *(*vlc_memset_t) (void *tgt, int c, size_t n); |
|---|
| | 891 | |
|---|
| | 892 | VLC_EXPORT( void, vlc_fastmem_register, (vlc_memcpy_t cpy, vlc_memset_t set) ); |
|---|
| | 893 | VLC_EXPORT( void *, vlc_memcpy, ( vlc_object_t *, void *, const void *, size_t ) ); |
|---|
| | 894 | VLC_EXPORT( void *, vlc_memset, ( vlc_object_t *, void *, int, size_t ) ); |
|---|
| 886 | 895 | |
|---|
| 887 | 896 | /***************************************************************************** |
|---|
| r0fd1b74 |
rb04c6c6 |
|
| 404 | 404 | vlc_list_release |
|---|
| 405 | 405 | vlc_lldiv |
|---|
| | 406 | vlc_memcpy |
|---|
| | 407 | vlc_memset |
|---|
| 406 | 408 | vlc_module_create |
|---|
| 407 | 409 | vlc_module_set |
|---|
| r449fd28 |
rb04c6c6 |
|
| 357 | 357 | } |
|---|
| 358 | 358 | |
|---|
| | 359 | static vlc_memcpy_t pf_vlc_memcpy = memcpy; |
|---|
| | 360 | static vlc_memcpy_t pf_vlc_memset = memset; |
|---|
| | 361 | |
|---|
| | 362 | void vlc_fastmem_register (vlc_memcpy_t cpy, vlc_memset_t set) |
|---|
| | 363 | { |
|---|
| | 364 | if (cpy) |
|---|
| | 365 | pf_vlc_memcpy = cpy; |
|---|
| | 366 | if (set) |
|---|
| | 367 | pf_vlc_memset = set; |
|---|
| | 368 | } |
|---|
| | 369 | |
|---|
| | 370 | /** |
|---|
| | 371 | * vlc_memcpy: fast CPU-dependent memcpy |
|---|
| | 372 | */ |
|---|
| | 373 | void *vlc_memcpy (void *tgt, const void *src, size_t n) |
|---|
| | 374 | { |
|---|
| | 375 | return pf_vlc_memcpy (tgt, src, n); |
|---|
| | 376 | } |
|---|
| | 377 | |
|---|
| | 378 | /** |
|---|
| | 379 | * vlc_memset: fast CPU-dependent memset |
|---|
| | 380 | */ |
|---|
| | 381 | void *vlc_memset (void *tgt, int c, size_t n) |
|---|
| | 382 | { |
|---|
| | 383 | return pf_vlc_memset (tgt, c, n); |
|---|
| | 384 | } |
|---|