CHDK_DE Vorschauversion  Trunk Rev. 5163
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
stdlib.h-Dateireferenz
#include "versions.h"
+ Include-Abhängigkeitsdiagramm für stdlib.h:
+ Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  chdkColor
 
struct  confColor
 
struct  stat
 
struct  FILE_S
 
struct  dirent
 
struct  DIR
 
struct  tm
 
struct  utimbuf
 

Makrodefinitionen

#define MAKE_COLOR(bg, fg)   ((twoColors)(((color)(bg) << 8) | (color)(fg)))
 
#define FG_COLOR(c)   ((color)(c ))
 
#define BG_COLOR(c)   ((color)(c >> 8))
 
#define NULL   ((void*)0)
 
#define SEEK_SET   0
 
#define SEEK_CUR   1
 
#define SEEK_END   2
 
#define O_RDONLY   0
 
#define O_WRONLY   1
 
#define O_RDWR   2
 
#define O_APPEND   8
 
#define O_TRUNC   0x200
 
#define O_CREAT   0x100
 
#define atoi(n)   strtol((n),NULL,0)
 
#define errno   (errnoOfTaskGet(0))
 
#define DOS_ATTR_RDONLY   0x01 /* read-only file */
 
#define DOS_ATTR_HIDDEN   0x02 /* hidden file */
 
#define DOS_ATTR_SYSTEM   0x04 /* system file */
 
#define DOS_ATTR_VOL_LABEL   0x08 /* volume label (not a file) */
 
#define DOS_ATTR_DIRECTORY   0x10 /* entry is a sub-directory */
 
#define DOS_ATTR_ARCHIVE   0x20 /* file subject to archiving */
 
#define OPENDIR_FL_NONE   0x0
 
#define OPENDIR_FL_CHDK_LFN   0x1
 

Typdefinitionen

typedef int coord
 
typedef unsigned char color
 
typedef unsigned short twoColors
 
typedef struct FILE_S FILE
 
typedef unsigned long time_t
 

Funktionen

int rand (void)
 
void * srand (unsigned int seed)
 
void qsort (void *__base, int __nelem, int __size, int(*__cmp)(const void *__e1, const void *__e2))
 
int isdigit (int c)
 
int isspace (int c)
 
int isalpha (int c)
 
int isupper (int c)
 
int islower (int c)
 
int ispunct (int c)
 
int isxdigit (int c)
 
int iscntrl (int c)
 
int isalnum (int c)
 
long sprintf (char *s, const char *st,...)
 
long strlen (const char *s)
 
int strcmp (const char *s1, const char *s2)
 
int strncmp (const char *s1, const char *s2, long n)
 
char * strchr (const char *s, int c)
 
char * strcpy (char *dest, const char *src)
 
char * strncpy (char *dest, const char *src, long n)
 
char * strcat (char *dest, const char *app)
 
char * strrchr (const char *s, int c)
 
char * strpbrk (const char *s, const char *accept)
 
char * strstr (const char *s, const char *s2)
 
long strtol (const char *nptr, char **endptr, int base)
 
unsigned long strtoul (const char *nptr, char **endptr, int base)
 
int tolower (int c)
 
int toupper (int c)
 
void * malloc (long size)
 
void free (void *p)
 
void * umalloc (long size)
 
void ufree (void *p)
 
void * memcpy (void *dest, const void *src, long n)
 
void * memset (void *s, int c, int n)
 
int memcmp (const void *s1, const void *s2, long n)
 
void * memchr (const void *s, int c, int n)
 
void SleepTask (long msec)
 
long taskLock ()
 
long taskUnlock ()
 
int creat (const char *name, int flags)
 
int open (const char *name, int flags, int mode)
 
int close (int fd)
 
int write (int fd, const void *buffer, long nbytes)
 
int read (int fd, void *buffer, long nbytes)
 
int lseek (int fd, long offset, int whence)
 
long mkdir (const char *dirname)
 
long mkdir_if_not_exist (const char *dirname)
 
int rename (const char *oldname, const char *newname)
 
int chdir (char *pathname)
 
int remove (const char *name)
 
int stat (const char *name, struct stat *pStat)
 
unsigned char SetFileAttributes (const char *fn, unsigned char attr)
 
FILEfopen (const char *filename, const char *mode)
 
long fclose (FILE *f)
 
long fread (void *buf, long elsize, long count, FILE *f)
 
long fwrite (const void *buf, long elsize, long count, FILE *f)
 
long fseek (FILE *file, long offset, long whence)
 
long fflush (FILE *file)
 
long feof (FILE *file)
 
long ftell (FILE *file)
 
char * fgets (char *buf, int n, FILE *f)
 
void msleep (long msec)
 
long task_lock ()
 
long task_unlock ()
 
const char * task_name (int id)
 
int task_id_list_get (int *idlist, int size)
 
const char * strerror (int num)
 
int errnoOfTaskGet (int tid)
 
DIRopendir (const char *name)
 
DIRopendir_chdk (const char *name, unsigned flags)
 
struct direntreaddir (DIR *)
 
int closedir (DIR *)
 
struct tmlocaltime (const time_t *_tod)
 
struct tmget_localtime ()
 
int utime (const char *file, struct utimbuf *newTimes)
 
unsigned long time (unsigned long *timer)
 
long strftime (char *s, unsigned long maxsize, const char *format, const struct tm *timp)
 
time_t mktime (struct tm *timp)
 
int abs (int v)
 
void DebugAssert (char *, int)
 
int CreateBinarySemaphore (char *name, int init)
 
int TakeSemaphore (int sem, int timeout)
 
void GiveSemaphore (int sem)
 

Makro-Dokumentation

#define atoi (   n)    strtol((n),NULL,0)

Definiert in Zeile 95 der Datei stdlib.h.

#define BG_COLOR (   c)    ((color)(c >> 8))

Definiert in Zeile 34 der Datei stdlib.h.

#define DOS_ATTR_ARCHIVE   0x20 /* file subject to archiving */

Definiert in Zeile 172 der Datei stdlib.h.

#define DOS_ATTR_DIRECTORY   0x10 /* entry is a sub-directory */

Definiert in Zeile 171 der Datei stdlib.h.

#define DOS_ATTR_HIDDEN   0x02 /* hidden file */

Definiert in Zeile 168 der Datei stdlib.h.

#define DOS_ATTR_RDONLY   0x01 /* read-only file */

Definiert in Zeile 167 der Datei stdlib.h.

#define DOS_ATTR_SYSTEM   0x04 /* system file */

Definiert in Zeile 169 der Datei stdlib.h.

#define DOS_ATTR_VOL_LABEL   0x08 /* volume label (not a file) */

Definiert in Zeile 170 der Datei stdlib.h.

#define errno   (errnoOfTaskGet(0))

Definiert in Zeile 163 der Datei stdlib.h.

#define FG_COLOR (   c)    ((color)(c ))

Definiert in Zeile 33 der Datei stdlib.h.

#define MAKE_COLOR (   bg,
  fg 
)    ((twoColors)(((color)(bg) << 8) | (color)(fg)))

Definiert in Zeile 32 der Datei stdlib.h.

#define NULL   ((void*)0)

Definiert in Zeile 38 der Datei stdlib.h.

#define O_APPEND   8

Definiert in Zeile 47 der Datei stdlib.h.

#define O_CREAT   0x100

Definiert in Zeile 52 der Datei stdlib.h.

#define O_RDONLY   0

Definiert in Zeile 44 der Datei stdlib.h.

#define O_RDWR   2

Definiert in Zeile 46 der Datei stdlib.h.

#define O_TRUNC   0x200

Definiert in Zeile 51 der Datei stdlib.h.

#define O_WRONLY   1

Definiert in Zeile 45 der Datei stdlib.h.

#define OPENDIR_FL_CHDK_LFN   0x1

Definiert in Zeile 193 der Datei stdlib.h.

#define OPENDIR_FL_NONE   0x0

Definiert in Zeile 192 der Datei stdlib.h.

#define SEEK_CUR   1

Definiert in Zeile 41 der Datei stdlib.h.

#define SEEK_END   2

Definiert in Zeile 42 der Datei stdlib.h.

#define SEEK_SET   0

Definiert in Zeile 40 der Datei stdlib.h.

Dokumentation der benutzerdefinierten Typen

typedef unsigned char color

Definiert in Zeile 29 der Datei stdlib.h.

typedef int coord

Definiert in Zeile 28 der Datei stdlib.h.

typedef struct FILE_S FILE
typedef unsigned long time_t

Definiert in Zeile 217 der Datei stdlib.h.

typedef unsigned short twoColors

Definiert in Zeile 30 der Datei stdlib.h.

Dokumentation der Funktionen

int abs ( int  v)
int chdir ( char *  pathname)
int close ( int  fd)

Definiert in Zeile 451 der Datei wrappers.c.

452 {
453 #if defined(OPT_FILEIO_STATS)
454  camera_info.fileio_stats.close_count++;
455 #endif
456  if (fd == -1)
457  {
458 #if defined(OPT_FILEIO_STATS)
459  camera_info.fileio_stats.close_badfile_count++;
460 #endif
461  return -1;
462  }
463  int haveSemaphore = takeFileIOSemaphore();
464  if (!haveSemaphore)
465 #if defined(CAM_IS_VID_REC_WORKS)
466  if (!conf.allow_unsafe_io)
467 #endif
468  return -1;
469  int r = _Close(fd);
470  if (haveSemaphore)
471  _GiveSemaphore(fileio_semaphore);
472 #if defined(OPT_FILEIO_STATS)
473  if (r == -1)
474  camera_info.fileio_stats.close_fail_count++;
475 #endif
476  return r;
477 }
int closedir ( DIR )

Definiert in Zeile 114 der Datei lib_thumb.c.

115 {
116  int rv = -1;
117  if (d && d->cam_DIR)
118  {
119 #if defined(CAM_DRYOS)
120  if (d->fw_dir == 0)
121  {
122  rv = CHDKCloseDir(d->cam_DIR);
123  }
124  else
125 #endif
126  rv = fw_closedir(d->cam_DIR);
127 
128  // Mark closed (just in case)
129  d->cam_DIR = 0;
130  // Free allocated memory
131  free(d);
132  }
133  return rv;
134 }
int creat ( const char *  name,
int  flags 
)
int CreateBinarySemaphore ( char *  name,
int  init 
)

Definiert in Zeile 1859 der Datei wrappers.c.

1860 {
1861  extern int _CreateBinarySemaphore(char*, int);
1862  return _CreateBinarySemaphore(name, init);
1863 }
void DebugAssert ( char *  ,
int   
)

Definiert in Zeile 1848 der Datei wrappers.c.

1849 {
1850 #if CAM_3ARG_DebugAssert
1851  extern void _DebugAssert(int, char*, int);
1852  _DebugAssert(0, err, line);
1853 #else
1854  extern void _DebugAssert(char*, int);
1855  _DebugAssert(err, line);
1856 #endif
1857 }
int errnoOfTaskGet ( int  tid)

Definiert in Zeile 791 der Datei wrappers.c.

791  {
792 #if !CAM_DRYOS
793  return _errnoOfTaskGet(tid);
794 #else
795  return 0;
796 #endif
797 }
long fclose ( FILE f)

Definiert in Zeile 749 der Datei wrappers.c.

749  {
750  return _Fclose_Fut((long)f);
751 }
long feof ( FILE file)

Definiert in Zeile 765 der Datei wrappers.c.

765  {
766  return _Feof_Fut((long)file);
767 }
long fflush ( FILE file)

Definiert in Zeile 769 der Datei wrappers.c.

769  {
770  return _Fflush_Fut((long)file);
771 }
char* fgets ( char *  buf,
int  n,
FILE f 
)

Definiert in Zeile 773 der Datei wrappers.c.

773  {
774  return _Fgets_Fut(buf,n,(int)f);
775 }
FILE* fopen ( const char *  filename,
const char *  mode 
)

Definiert in Zeile 734 der Datei wrappers.c.

734  {
735 #ifdef CAM_DRYOS
736  if(!filename || filename[0]!='A') {
737  return NULL;
738  }
739 #endif
740 
741  // Check fileio semaphore, if not available we are probably recording video
742  if (!takeFileIOSemaphore())
743  return NULL;
744  _GiveSemaphore(fileio_semaphore);
745 
746  return (FILE *)_Fopen_Fut(filename,mode);
747 }
long fread ( void *  buf,
long  elsize,
long  count,
FILE f 
)

Definiert in Zeile 753 der Datei wrappers.c.

753  {
754  return _Fread_Fut(buf,elsize,count,(long)f);
755 }
void free ( void *  p)

Definiert in Zeile 289 der Datei memmgmt.c.

290 {
291  extern void canon_free(void *p);
292 
293  if (!chdk_free(&aram_heap,p))
294  if (!chdk_free(&exmem_heap,p))
295  canon_free(p);
296 }
long fseek ( FILE file,
long  offset,
long  whence 
)

Definiert in Zeile 761 der Datei wrappers.c.

761  {
762  return _Fseek_Fut((long)file,offset,whence);
763 }
long ftell ( FILE file)

Definiert in Zeile 345 der Datei main.c.

345  {
346  if(!file) return -1;
347  return file->pos;
348 }
long fwrite ( const void *  buf,
long  elsize,
long  count,
FILE f 
)

Definiert in Zeile 757 der Datei wrappers.c.

757  {
758  return _Fwrite_Fut(buf,elsize,count,(long)f);
759 }
struct tm* get_localtime ( )

Definiert in Zeile 222 der Datei lib_thumb.c.

223 {
224  time_t t = time(NULL);
225  return localtime(&t);
226 }
void GiveSemaphore ( int  sem)

Definiert in Zeile 1870 der Datei wrappers.c.

1871 {
1872  _GiveSemaphore(sem);
1873 }
int isalnum ( int  c)

Definiert in Zeile 173 der Datei lib_thumb.c.

173 { return (isdigit(c) || isalpha(c)); }
int isalpha ( int  c)

Definiert in Zeile 15 der Datei issmth.c.

16 {
17  return (c>='A' && c<='Z') || (c>='a' && c<='z');
18 }
int iscntrl ( int  c)

Definiert in Zeile 169 der Datei lib_thumb.c.

169 { return ((c >=0 && c <32) || c == 127); }
int isdigit ( int  c)

Definiert in Zeile 3 der Datei issmth.c.

4 {
5  return (c>='0') && (c<='9');
6 }
int islower ( int  c)

Definiert in Zeile 22 der Datei wrappers.c.

22 { return _islower(c); }
int ispunct ( int  c)

Definiert in Zeile 23 der Datei wrappers.c.

23 { return _ispunct(c); }
int isspace ( int  c)

Definiert in Zeile 8 der Datei issmth.c.

9 {
10  if ((c >= '\t') && (c <= '\r')) return 1;
11  if (c == ' ') return 1;
12  return 0;
13 }
int isupper ( int  c)

Definiert in Zeile 20 der Datei issmth.c.

21 {
22  return (c>='A' && c<='Z');
23 }
int isxdigit ( int  c)

Definiert in Zeile 24 der Datei wrappers.c.

24 { return _isxdigit(c); }
struct tm* localtime ( const time_t _tod)

Definiert in Zeile 908 der Datei wrappers.c.

908  {
909 #if !CAM_DRYOS
910  return _localtime(_tod);
911 #else
912  // for DRYOS cameras do something with this! - sizeof(x[]) must be >= sizeof(struct tm) : 'static int x[9];'
913  static int x[10];
914  return _LocalTime(_tod, &x);
915 #endif
916 }
int lseek ( int  fd,
long  offset,
int  whence 
)

Definiert in Zeile 505 der Datei wrappers.c.

506 {
507  return _lseek(fd, offset, whence); /* yes, it's lower-case lseek here since Lseek calls just lseek (A610) */
508 }
void* malloc ( long  size)

Definiert in Zeile 274 der Datei memmgmt.c.

275 {
276  extern void *canon_malloc(long size);
277 
278  void *p = chdk_malloc(&aram_heap,size);
279 
280  if (p == 0)
281  p = chdk_malloc(&exmem_heap,size);
282 
283  if (p == 0)
284  p = canon_malloc(size);
285 
286  return p;
287 }
void* memchr ( const void *  s,
int  c,
int  n 
)

Definiert in Zeile 994 der Datei wrappers.c.

994  {
995  return _memchr(s,c,n);
996 }
int memcmp ( const void *  s1,
const void *  s2,
long  n 
)

Definiert in Zeile 19 der Datei memcmp.c.

20 {
21  register const unsigned char *s1 = (const unsigned char*)str1;
22  register const unsigned char *s2 = (const unsigned char*)str2;
23 
24  while (count-- > 0)
25  {
26  if (*s1++ != *s2++)
27  return s1[-1] < s2[-1] ? -1 : 1;
28  }
29  return 0;
30 }
void* memcpy ( void *  dest,
const void *  src,
long  n 
)

Definiert in Zeile 18 der Datei memcpy.c.

19 {
20  return memmove(out, in, length);
21 }
void* memset ( void *  s,
int  c,
int  n 
)

Definiert in Zeile 985 der Datei wrappers.c.

985  {
986  return _memset(s, c, n);
987 }
long mkdir ( const char *  dirname)

Definiert in Zeile 510 der Datei wrappers.c.

511 {
512 #ifdef MKDIR_RETURN_ONE_ON_SUCCESS
513  // mkdir returns 1 on success, 0 on fail. So, values are inverted, to be compatible with previous versions
514  if(_MakeDirectory_Fut(dirname,1)) return 0;
515  else return 1;
516 #else
517  return _MakeDirectory_Fut(dirname,-1); // meaning of second arg is not clear, firmware seems to use -1
518 #endif
519 }
long mkdir_if_not_exist ( const char *  dirname)

Definiert in Zeile 122 der Datei gui_tetris.c.

123 {
124  // Check if directory exists and create it if it does not.
125  if (stat(dirname,0) != 0) return mkdir(dirname);
126  return 0; // Success
127 }
time_t mktime ( struct tm timp)

Definiert in Zeile 922 der Datei wrappers.c.

922  {
923 #if !CAM_DRYOS
924  return _mktime(timp);
925 #else
926  int timp_ext[10]; // struct tm + a ptr
927  _memcpy(timp_ext,timp,9*sizeof(int));
928  timp_ext[9]=0;
929  long retval = _mktime_ext(&timp_ext);
930  _memcpy(timp,timp_ext,9*sizeof(int));
931  return retval;
932 #endif
933 }
void msleep ( long  msec)

Definiert in Zeile 41 der Datei wrappers.c.

42 {
43  _SleepTask(msec);
44 }
int open ( const char *  name,
int  flags,
int  mode 
)

Definiert in Zeile 422 der Datei wrappers.c.

423 {
424 #if defined(OPT_FILEIO_STATS)
425  camera_info.fileio_stats.open_count++;
426 #endif
427 #if !CAM_DRYOS
428  // Adjust O_TRUNC and O_CREAT flags for VxWorks
429  // Remove O_APPEND flag if present (not in VxWorks)
430  flags = (flags & ~(O_TRUNC|O_CREAT|O_APPEND)) | ((flags & (O_TRUNC|O_CREAT)) << 1);
431 #else
432  if(!name || name[0]!='A')
433  return -1;
434 #endif
435  int haveSemaphore = takeFileIOSemaphore();
436  if (!haveSemaphore)
437 #if defined(CAM_IS_VID_REC_WORKS)
438  if (!conf.allow_unsafe_io)
439 #endif
440  return -1;
441  int fd = _Open(name, flags, mode);
442  if (haveSemaphore)
443  _GiveSemaphore(fileio_semaphore);
444 #if defined(OPT_FILEIO_STATS)
445  if (fd == -1)
446  camera_info.fileio_stats.open_fail_count++;
447 #endif
448  return fd;
449 }
DIR* opendir ( const char *  name)

Definiert in Zeile 16 der Datei lib_thumb.c.

17 {
18  return opendir_chdk(name,OPENDIR_FL_NONE);
19 }
DIR* opendir_chdk ( const char *  name,
unsigned  flags 
)

Definiert in Zeile 21 der Datei lib_thumb.c.

22 {
23  // Create CHDK DIR structure
24  DIR *dir = malloc(sizeof(DIR));
25  // If malloc failed return failure
26  if (dir == 0) return NULL;
27 
28 #if defined(CAM_DRYOS)
29  extern int get_fstype(void);
30  // try built-in routine first, but only on FAT
31  if ((get_fstype() < 4) && (flags & OPENDIR_FL_CHDK_LFN))
32  {
33  dir->fw_dir = 0;
34  dir->cam_DIR = CHDKOpenDir(name);
35  }
36  else
37  {
38  dir->cam_DIR = NULL;
39  }
40  if (!dir->cam_DIR)
41  {
42  // try firmware routine if built-in failed
43  dir->fw_dir = 1;
44  dir->cam_DIR = fw_opendir(name);
45  }
46 #else
47  dir->cam_DIR = fw_opendir(name);
48 #endif
49 
50  // Init readdir return value
51  dir->dir.d_name[0] = 0;
52 
53  // If failed clean up and return failure
54  if (!dir->cam_DIR)
55  {
56  free(dir);
57  return NULL;
58  }
59 
60  return dir;
61 }
void qsort ( void *  __base,
int  __nelem,
int  __size,
int(*)(const void *__e1, const void *__e2)  __cmp 
)

Definiert in Zeile 1064 der Datei wrappers.c.

1064  {
1065  _qsort(__base, __nelem, __size, __cmp);
1066 }
int rand ( void  )

Definiert in Zeile 20 der Datei rnd.c.

20  {
21  if ( seed_val <= quotient )
22  seed_val = (seed_val * 16807L) % LONG_MAX;
23  else {
24  long int high_part = seed_val / quotient;
25  long int low_part = seed_val % quotient;
26 
27  long int test = 16807L * low_part - remainder * high_part;
28 
29  if ( test > 0 )
30  seed_val = test;
31  else
32  seed_val = test + LONG_MAX;
33  }
34 
35  return seed_val;
36 }
int read ( int  fd,
void *  buffer,
long  nbytes 
)

Definiert in Zeile 500 der Datei wrappers.c.

501 {
502  return _Read(fd, buffer, nbytes);
503 }
struct dirent* readdir ( DIR )

Definiert in Zeile 71 der Datei lib_thumb.c.

72 {
73  if (d && d->cam_DIR)
74  {
75  // Get next entry from firmware function
76  extern void *fw_readdir(void *d);
77  struct __dirent *de = fw_readdir(d->cam_DIR);
78  // Return next directory name if present, else return 0 (end of list)
79  if (de)
80  {
81  strcpy(d->dir.d_name,de->d_name);
82  return &d->dir;
83  }
84  else
85  {
86  d->dir.d_name[0] = 0;
87  }
88  }
89  return NULL;
90 }
int remove ( const char *  name)

Definiert in Zeile 528 der Datei wrappers.c.

529 {
530 #ifdef CAM_DRYOS_2_3_R39
531  // For DryOS R39 and later need to check if 'name' is a file or directory
532  // and call appropriate delete function.
533  struct stat st;
534  if (stat(name,&st) == 0)
535  {
536  if (st.st_attrib & DOS_ATTR_DIRECTORY)
537  return _DeleteDirectory_Fut(name);
538  else
539  return _DeleteFile_Fut(name);
540  }
541  return -1; // return fail - file / directory does not exist
542 #else
543  return _DeleteFile_Fut(name);
544 #endif
545 }
int rename ( const char *  oldname,
const char *  newname 
)

Definiert in Zeile 777 der Datei wrappers.c.

777  {
778  return _RenameFile_Fut(oldname, newname);
779 }
unsigned char SetFileAttributes ( const char *  fn,
unsigned char  attr 
)

Definiert in Zeile 1652 der Datei wrappers.c.

1653 {
1654 #ifdef CAM_DRYOS_2_3_R39
1655  return _SetFileAttributes(fn, attr);
1656 #else
1657  int fd;
1658  unsigned char ret = -1;
1659 
1660  fd = open(fn, 0, 0);
1661  if( fd ) {
1662  _SetFileAttributes(fd, attr);
1663  close(fd);
1664  ret = attr;
1665  }
1666  return ret;
1667 #endif
1668 }
void SleepTask ( long  msec)
long sprintf ( char *  s,
const char *  st,
  ... 
)

Definiert in Zeile 855 der Datei wrappers.c.

856 {
857  long res;
858  __builtin_va_list va;
859  __builtin_va_start(va, st);
860  res = _vsprintf(s, st, va);
861  __builtin_va_end(va);
862  return res;
863 }
void* srand ( unsigned int  seed)

Definiert in Zeile 1060 der Datei wrappers.c.

1060  {
1061  return _srand(seed);
1062 }
int stat ( const char *  name,
struct stat pStat 
)

Definiert in Zeile 708 der Datei wrappers.c.

709 {
710  // sanity check. canon firmware hangup if start not from 'A/'
711  if ( !name || (name[0] | 0x20)!='a' || name[1]!='/' ) return 1;
712 
713  // use temp __stat stucture to match camera firmware
714  // and copy values across to output
715  struct __stat lStat;
716  int rv = _stat(name, &lStat);
717  if (pStat)
718  {
719  if (rv == 0)
720  {
721  pStat->st_attrib = lStat.st_attrib;
722  pStat->st_size = lStat.st_size;
723  pStat->st_ctime = lStat.st_ctime;
724  pStat->st_mtime = lStat.st_mtime;
725  }
726  else
727  {
728  memset( pStat, 0, sizeof(struct stat));
729  }
730  }
731  return rv;
732 }
char* strcat ( char *  dest,
const char *  app 
)

Definiert in Zeile 826 der Datei wrappers.c.

826  {
827  return _strcat(dest, app);
828 }
char* strchr ( const char *  s,
int  c 
)

Definiert in Zeile 814 der Datei wrappers.c.

814  {
815  return _strchr(s, c);
816 }
int strcmp ( const char *  s1,
const char *  s2 
)

Definiert in Zeile 38 der Datei strcmp.c.

39 {
40  while (*s1 != '\0' && *s1 == *s2)
41  {
42  s1++;
43  s2++;
44  }
45 
46  return (*(unsigned char *) s1) - (*(unsigned char *) s2);
47 }
char* strcpy ( char *  dest,
const char *  src 
)

Definiert in Zeile 818 der Datei wrappers.c.

818  {
819  return _strcpy(dest, src);
820 }
const char* strerror ( int  num)

Definiert in Zeile 867 der Datei wrappers.c.

867  {
868 #if !CAM_DRYOS
869  static char msg[20];
870  sprintf(msg,"errno 0x%X",en);
871  return msg;
872 #else
873  return "error";
874 #endif
875 }
long strftime ( char *  s,
unsigned long  maxsize,
const char *  format,
const struct tm timp 
)

Definiert in Zeile 918 der Datei wrappers.c.

918  {
919  return _strftime(s,maxsize,format,timp);
920 }
long strlen ( const char *  s)

Definiert in Zeile 34 der Datei strlen.c.

35 {
36  const char *start = str;
37 
38  while (*str)
39  str++;
40 
41  return str - start;
42 }
int strncmp ( const char *  s1,
const char *  s2,
long  n 
)

Definiert in Zeile 810 der Datei wrappers.c.

810  {
811  return _strncmp(s1, s2, n);
812 }
char* strncpy ( char *  dest,
const char *  src,
long  n 
)

Definiert in Zeile 822 der Datei wrappers.c.

822  {
823  return _strncpy(dest, src, n);
824 }
char* strpbrk ( const char *  s,
const char *  accept 
)

Definiert in Zeile 847 der Datei wrappers.c.

848 {
849  return _strpbrk(s, accept);
850 }
char* strrchr ( const char *  s,
int  c 
)

Definiert in Zeile 830 der Datei wrappers.c.

830  {
831  return _strrchr(s, c);
832 }
char* strstr ( const char *  s,
const char *  s2 
)

Definiert in Zeile 194 der Datei lib_thumb.c.

195 {
196  const char *p = s1;
197  const int len = strlen(s2);
198 
199  for (; (p = strchr(p, *s2)) != 0; p++)
200  {
201  if (strncmp(p, s2, len) == 0)
202  return (char*)p;
203  }
204  return (0);
205 }
long strtol ( const char *  nptr,
char **  endptr,
int  base 
)

Definiert in Zeile 834 der Datei wrappers.c.

834  {
835  return _strtol(nptr, endptr, base);
836 }
unsigned long strtoul ( const char *  nptr,
char **  endptr,
int  base 
)

Definiert in Zeile 838 der Datei wrappers.c.

838  {
839 #if CAM_DRYOS
840  return (unsigned long)_strtolx(nptr, endptr, base, 0);
841 #else
842  return _strtoul(nptr, endptr, base);
843 #endif
844 }
int TakeSemaphore ( int  sem,
int  timeout 
)

Definiert in Zeile 1865 der Datei wrappers.c.

1866 {
1867  return _TakeSemaphore(sem, timeout);
1868 }
int task_id_list_get ( int *  idlist,
int  size 
)

Definiert in Zeile 62 der Datei wrappers.c.

63 {
64  return _taskIdListGet(idlist,size);
65 }
long task_lock ( )

Definiert in Zeile 47 der Datei wrappers.c.

48 {
49  return _taskLock();
50 }
const char* task_name ( int  id)

Definiert in Zeile 57 der Datei wrappers.c.

58 {
59  return _taskName(id);
60 }
long task_unlock ( )

Definiert in Zeile 52 der Datei wrappers.c.

53 {
54  return _taskUnlock();
55 }
long taskLock ( )
long taskUnlock ( )
unsigned long time ( unsigned long *  timer)

Definiert in Zeile 880 der Datei wrappers.c.

880  {
881  return _time(timer);
882 }
int tolower ( int  c)

Definiert in Zeile 26 der Datei wrappers.c.

26 { return _tolower(c); }
int toupper ( int  c)

Definiert in Zeile 27 der Datei wrappers.c.

27 { return _toupper(c); }
void ufree ( void *  p)

Definiert in Zeile 977 der Datei wrappers.c.

977  {
978  return _FreeUncacheableMemory(p);
979 }
void* umalloc ( long  size)

Definiert in Zeile 973 der Datei wrappers.c.

973  {
974  return _AllocateUncacheableMemory(size);
975 }
int utime ( const char *  file,
struct utimbuf newTimes 
)

Definiert in Zeile 884 der Datei wrappers.c.

884  {
885 #if !CAM_DRYOS
886  return _utime(file, newTimes);
887 #else
888  int res=0;
889  int fd;
890  fd = _open(file, 0, 0);
891 
892 #ifdef CAM_DRYOS_2_3_R39
893  if (fd>=0) {
894  _close(fd);
895  res=_SetFileTimeStamp(file, newTimes->modtime, newTimes->actime);
896  }
897 #else
898  if (fd>=0) {
899  res=_SetFileTimeStamp(fd, newTimes->modtime, newTimes->actime);
900  _close(fd);
901  }
902  // return value compatibe with utime: ok=0 fail=-1
903 #endif
904  return (res)?0:-1;
905 #endif
906 }
int write ( int  fd,
const void *  buffer,
long  nbytes 
)

Definiert in Zeile 479 der Datei wrappers.c.

480 {
481  if (fd == -1)
482  {
483 #if defined(OPT_FILEIO_STATS)
484  camera_info.fileio_stats.write_badfile_count++;
485 #endif
486  return -1;
487  }
488  int haveSemaphore = takeFileIOSemaphore();
489  if (!haveSemaphore)
490 #if defined(CAM_IS_VID_REC_WORKS)
491  if (!conf.allow_unsafe_io)
492 #endif
493  return -1;
494  int r = _Write(fd, buffer, nbytes);
495  if (haveSemaphore)
496  _GiveSemaphore(fileio_semaphore);
497  return r;
498 }