forked from KolibriOS/kolibrios
newlib: pixlib2.h & minor update
git-svn-id: svn://kolibrios.org@3301 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
184ffd02ae
commit
14165c3cb3
@ -26,6 +26,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
#include <memory.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <gthr.h>
|
#include <gthr.h>
|
||||||
|
|
||||||
|
@ -1,362 +1,8 @@
|
|||||||
|
|
||||||
_BEGIN_STD_C
|
_BEGIN_STD_C
|
||||||
|
|
||||||
#if defined(__arm__) || defined(__thumb__)
|
|
||||||
/*
|
|
||||||
* All callee preserved registers:
|
|
||||||
* v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7
|
|
||||||
*/
|
|
||||||
#define _JBLEN 23
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__AVR__)
|
|
||||||
#define _JBLEN 24
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __sparc__
|
|
||||||
/*
|
|
||||||
* onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
|
|
||||||
* All else recovered by under/over(flow) handling.
|
|
||||||
*/
|
|
||||||
#define _JBLEN 13
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __BFIN__
|
|
||||||
#define _JBLEN 40
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* necv70 was 9 as well. */
|
|
||||||
|
|
||||||
#if defined(__m68k__) || defined(__mc68000__)
|
|
||||||
/*
|
|
||||||
* onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6,
|
|
||||||
* fp2-fp7 for 68881.
|
|
||||||
* All else recovered by under/over(flow) handling.
|
|
||||||
*/
|
|
||||||
#define _JBLEN 34
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
|
|
||||||
/*
|
|
||||||
* D, X, Y are not saved.
|
|
||||||
* Only take into account the pseudo soft registers (max 32).
|
|
||||||
*/
|
|
||||||
#define _JBLEN 32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__Z8001__) || defined(__Z8002__)
|
|
||||||
/* 16 regs + pc */
|
|
||||||
#define _JBLEN 20
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _AM29K
|
|
||||||
/*
|
|
||||||
* onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
|
|
||||||
* All else recovered by under/over(flow) handling.
|
|
||||||
*/
|
|
||||||
#define _JBLEN 9
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__CYGWIN__) && !defined (_JBLEN)
|
|
||||||
#define _JBLEN (13 * 4)
|
|
||||||
#elif defined (__i386__)
|
|
||||||
#if defined(__unix__) || defined(__rtems__)
|
|
||||||
# define _JBLEN 9
|
|
||||||
#else
|
|
||||||
#include "setjmp-dj.h"
|
#include "setjmp-dj.h"
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __x86_64__
|
|
||||||
#define _JBTYPE long long
|
|
||||||
#define _JBLEN 8
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __i960__
|
|
||||||
#define _JBLEN 35
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __M32R__
|
|
||||||
/* Only 8 words are currently needed. 10 gives us some slop if we need
|
|
||||||
to expand. */
|
|
||||||
#define _JBLEN 10
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __mips__
|
|
||||||
#ifdef __mips64
|
|
||||||
#define _JBTYPE long long
|
|
||||||
#endif
|
|
||||||
#ifdef __mips_soft_float
|
|
||||||
#define _JBLEN 11
|
|
||||||
#else
|
|
||||||
#define _JBLEN 23
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __m88000__
|
|
||||||
#define _JBLEN 21
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __H8300__
|
|
||||||
#define _JBLEN 5
|
|
||||||
#define _JBTYPE int
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __H8300H__
|
|
||||||
/* same as H8/300 but registers are twice as big */
|
|
||||||
#define _JBLEN 5
|
|
||||||
#define _JBTYPE long
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (__H8300S__) || defined (__H8300SX__)
|
|
||||||
/* same as H8/300 but registers are twice as big */
|
|
||||||
#define _JBLEN 5
|
|
||||||
#define _JBTYPE long
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __H8500__
|
|
||||||
#define _JBLEN 4
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __sh__
|
|
||||||
#if __SH5__
|
|
||||||
#define _JBLEN 50
|
|
||||||
#define _JBTYPE long long
|
|
||||||
#else
|
|
||||||
#define _JBLEN 20
|
|
||||||
#endif /* __SH5__ */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __v800
|
|
||||||
#define _JBLEN 28
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __PPC__
|
|
||||||
#ifdef __ALTIVEC__
|
|
||||||
#define _JBLEN 64
|
|
||||||
#else
|
|
||||||
#define _JBLEN 32
|
|
||||||
#endif
|
|
||||||
#define _JBTYPE double
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MICROBLAZE__
|
|
||||||
#define _JBLEN 20
|
|
||||||
#define _JBTYPE unsigned int
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __hppa__
|
|
||||||
/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15.
|
|
||||||
Note space exists for the FP registers, but they are not
|
|
||||||
saved. */
|
|
||||||
#define _JBLEN 28
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__mn10300__) || defined(__mn10200__)
|
|
||||||
#ifdef __AM33_2__
|
|
||||||
#define _JBLEN 26
|
|
||||||
#else
|
|
||||||
/* A guess */
|
|
||||||
#define _JBLEN 10
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __v850
|
|
||||||
/* I think our setjmp is saving 15 regs at the moment. Gives us one word
|
|
||||||
slop if we need to expand. */
|
|
||||||
#define _JBLEN 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_C4x)
|
|
||||||
#define _JBLEN 10
|
|
||||||
#endif
|
|
||||||
#if defined(_C3x)
|
|
||||||
#define _JBLEN 9
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __TMS320C6X__
|
|
||||||
#define _JBLEN 13
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __TIC80__
|
|
||||||
#define _JBLEN 13
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __D10V__
|
|
||||||
#define _JBLEN 8
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __D30V__
|
|
||||||
#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2)
|
|
||||||
#define _JBTYPE double
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __frv__
|
|
||||||
#define _JBLEN (68/2) /* room for 68 32-bit regs */
|
|
||||||
#define _JBTYPE double
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __moxie__
|
|
||||||
#define _JBLEN 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __CRX__
|
|
||||||
#define _JBLEN 9
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
|
|
||||||
/* r6, r7, r8, r9, r10, r11, r12 (r12L, r12H),
|
|
||||||
* r13 (r13L, r13H), ra(raL, raH), sp(spL, spH) */
|
|
||||||
#define _JBLEN 14
|
|
||||||
#define _JBTYPE unsigned short
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __fr30__
|
|
||||||
#define _JBLEN 10
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __iq2000__
|
|
||||||
#define _JBLEN 32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __mcore__
|
|
||||||
#define _JBLEN 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __MMIX__
|
|
||||||
/* Using a layout compatible with GCC's built-in. */
|
|
||||||
#define _JBLEN 5
|
|
||||||
#define _JBTYPE unsigned long
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __mt__
|
|
||||||
#define _JBLEN 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __SPU__
|
|
||||||
#define _JBLEN 50
|
|
||||||
#define _JBTYPE __vector signed int
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __xstormy16__
|
|
||||||
/* 4 GPRs plus SP plus PC. */
|
|
||||||
#define _JBLEN 8
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __mep__
|
|
||||||
/* 16 GPRs, pc, hi, lo */
|
|
||||||
#define _JBLEN 19
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __CRIS__
|
|
||||||
#define _JBLEN 18
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __lm32__
|
|
||||||
#define _JBLEN 19
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __m32c__
|
|
||||||
#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
|
|
||||||
#define _JBLEN (22/2)
|
|
||||||
#else
|
|
||||||
#define _JBLEN (34/2)
|
|
||||||
#endif
|
|
||||||
#define _JBTYPE unsigned short
|
|
||||||
#endif /* __m32c__ */
|
|
||||||
|
|
||||||
#ifdef __RL78__
|
|
||||||
/* Three banks of registers, SP, CS, ES, PC */
|
|
||||||
#define _JBLEN (8*3+8)
|
|
||||||
#define _JBTYPE unsigned char
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __RX__
|
|
||||||
#define _JBLEN 0x44
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _JBLEN
|
|
||||||
#ifdef _JBTYPE
|
|
||||||
typedef _JBTYPE jmp_buf[_JBLEN];
|
|
||||||
#else
|
|
||||||
typedef int jmp_buf[_JBLEN];
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
_END_STD_C
|
_END_STD_C
|
||||||
|
|
||||||
#if defined(__CYGWIN__) || defined(__rtems__)
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* POSIX sigsetjmp/siglongjmp macros */
|
|
||||||
#ifdef _JBTYPE
|
|
||||||
typedef _JBTYPE sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (_JBTYPE))];
|
|
||||||
#else
|
|
||||||
typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define _SAVEMASK _JBLEN
|
|
||||||
#define _SIGMASK (_JBLEN+1)
|
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
|
||||||
# define _CYGWIN_WORKING_SIGSETJMP
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _POSIX_THREADS
|
|
||||||
#define __SIGMASK_FUNC pthread_sigmask
|
|
||||||
#else
|
|
||||||
#define __SIGMASK_FUNC sigprocmask
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
|
|
||||||
#define sigsetjmp(env, savemask) \
|
|
||||||
__extension__ \
|
|
||||||
({ \
|
|
||||||
sigjmp_buf *_sjbuf = &(env); \
|
|
||||||
((*_sjbuf)[_SAVEMASK] = savemask,\
|
|
||||||
__SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\
|
|
||||||
setjmp (*_sjbuf)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define siglongjmp(env, val) \
|
|
||||||
__extension__ \
|
|
||||||
({ \
|
|
||||||
sigjmp_buf *_sjbuf = &(env); \
|
|
||||||
((((*_sjbuf)[_SAVEMASK]) ? \
|
|
||||||
__SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\
|
|
||||||
: 0), \
|
|
||||||
longjmp (*_sjbuf, val)); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#else /* !__GNUC__ */
|
|
||||||
|
|
||||||
#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\
|
|
||||||
__SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\
|
|
||||||
setjmp (env))
|
|
||||||
|
|
||||||
#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\
|
|
||||||
__SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\
|
|
||||||
longjmp (env, val))
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* POSIX _setjmp/_longjmp, maintained for XSI compatibility. These
|
|
||||||
are equivalent to sigsetjmp/siglongjmp when not saving the signal mask.
|
|
||||||
New applications should use sigsetjmp/siglongjmp instead. */
|
|
||||||
#ifdef __CYGWIN__
|
|
||||||
extern void _longjmp(jmp_buf, int);
|
|
||||||
extern int _setjmp(jmp_buf);
|
|
||||||
#else
|
|
||||||
#define _setjmp(env) sigsetjmp ((env), 0)
|
|
||||||
#define _longjmp(env, val) siglongjmp ((env), (val))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif /* __CYGWIN__ or __rtems__ */
|
|
||||||
|
@ -15,12 +15,12 @@
|
|||||||
|
|
||||||
/* C99 formats support (such as %a, %zu, ...) in IO functions like
|
/* C99 formats support (such as %a, %zu, ...) in IO functions like
|
||||||
* printf/scanf enabled */
|
* printf/scanf enabled */
|
||||||
/* #undef _WANT_IO_C99_FORMATS */
|
//#define _WANT_IO_C99_FORMATS
|
||||||
|
|
||||||
#define __DYNAMIC_REENT__
|
#define __DYNAMIC_REENT__
|
||||||
|
|
||||||
/* long long type support in IO functions like printf/scanf enabled */
|
/* long long type support in IO functions like printf/scanf enabled */
|
||||||
/* #undef _WANT_IO_LONG_LONG */
|
#define _WANT_IO_LONG_LONG
|
||||||
|
|
||||||
/* Register application finalization function using atexit. */
|
/* Register application finalization function using atexit. */
|
||||||
/* #undef _WANT_REGISTER_FINI */
|
/* #undef _WANT_REGISTER_FINI */
|
||||||
|
38
programs/develop/libraries/newlib/include/pixlib2.h
Normal file
38
programs/develop/libraries/newlib/include/pixlib2.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#ifndef __PIXLIB2_H__
|
||||||
|
#define __PIXLIB2_H__
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define HW_BIT_BLIT (1<<0) /* BGRX blitter */
|
||||||
|
#define HW_TEX_BLIT (1<<1) /* stretch blit */
|
||||||
|
#define HW_VID_BLIT (1<<2) /* planar and packed video */
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint32_t handle;
|
||||||
|
uint8_t *data;
|
||||||
|
|
||||||
|
uint32_t width;
|
||||||
|
uint32_t height;
|
||||||
|
uint32_t pitch;
|
||||||
|
|
||||||
|
uint32_t max_width;
|
||||||
|
uint32_t max_height;
|
||||||
|
uint32_t flags;
|
||||||
|
}bitmap_t;
|
||||||
|
|
||||||
|
uint32_t init_pixlib(uint32_t flags);
|
||||||
|
void done_pixlib();
|
||||||
|
|
||||||
|
int create_bitmap(bitmap_t *bitmap);
|
||||||
|
int destroy_bitmap(bitmap_t *bitmap);
|
||||||
|
|
||||||
|
int lock_bitmap(bitmap_t *bitmap);
|
||||||
|
int resize_bitmap(bitmap_t *bitmap);
|
||||||
|
int blit_bitmap(bitmap_t *bitmap, int dst_x, int dst_y,int w, int h);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -108,4 +108,3 @@ SECTIONS
|
|||||||
*(.debug_ranges)
|
*(.debug_ranges)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,14 +73,10 @@ SECTIONS
|
|||||||
LONG(0);
|
LONG(0);
|
||||||
__data_end__ = . ;
|
__data_end__ = . ;
|
||||||
*(.data_cygwin_nocopy)
|
*(.data_cygwin_nocopy)
|
||||||
}
|
|
||||||
|
|
||||||
.eh_frame ALIGN(16) :
|
|
||||||
{
|
|
||||||
*(.eh_frame)
|
|
||||||
___iend = . ;
|
___iend = . ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bss ALIGN(16):
|
bss ALIGN(16):
|
||||||
{
|
{
|
||||||
*(.bss)
|
*(.bss)
|
||||||
@ -101,6 +97,7 @@ SECTIONS
|
|||||||
*(.debug$F)
|
*(.debug$F)
|
||||||
*(.drectve)
|
*(.drectve)
|
||||||
*(.note.GNU-stack)
|
*(.note.GNU-stack)
|
||||||
|
*(.eh_frame)
|
||||||
*(.comment)
|
*(.comment)
|
||||||
*(.debug_abbrev)
|
*(.debug_abbrev)
|
||||||
*(.debug_info)
|
*(.debug_info)
|
||||||
|
@ -15,7 +15,7 @@ void *load_file(const char *path, size_t *len)
|
|||||||
if( !get_fileinfo(path, &info) )
|
if( !get_fileinfo(path, &info) )
|
||||||
{
|
{
|
||||||
|
|
||||||
file = user_alloc( info.size );
|
file = (void*)user_alloc( info.size );
|
||||||
read_file(path, file, 0, info.size, &bytes );
|
read_file(path, file, 0, info.size, &bytes );
|
||||||
if( bytes == info.size )
|
if( bytes == info.size )
|
||||||
{
|
{
|
||||||
@ -23,7 +23,7 @@ void *load_file(const char *path, size_t *len)
|
|||||||
{
|
{
|
||||||
void *tmp = NULL;
|
void *tmp = NULL;
|
||||||
info.size = ((size_t*)file)[1];
|
info.size = ((size_t*)file)[1];
|
||||||
tmp = user_alloc(info.size);
|
tmp = (void*)user_alloc(info.size);
|
||||||
unpack(file, tmp);
|
unpack(file, tmp);
|
||||||
user_free(file);
|
user_free(file);
|
||||||
file = tmp;
|
file = tmp;
|
||||||
|
Loading…
Reference in New Issue
Block a user