CHDK_DE Vorschauversion  Trunk Rev. 5707
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
stdlib.h-Dateireferenz
+ Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  stat
 

Makrodefinitionen

#define atoi(n)   strtol((n),NULL,0)
 
#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 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 */
 

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))
 
long sprintf (char *s, const char *st,...)
 
long strtol (const char *nptr, char **endptr, int base)
 
unsigned long strtoul (const char *nptr, char **endptr, int base)
 
void * malloc (long size)
 
void free (void *p)
 
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)
 
int rename (const char *oldname, const char *newname)
 
int chdir (char *pathname)
 
int remove (const char *name)
 
int abs (int v)
 
long mkdir (const char *dirname)
 
int stat (const char *name, struct stat *pStat)
 
void msleep (long msec)
 
unsigned char SetFileAttributes (const char *fn, unsigned char attr)
 
long mkdir_if_not_exist (const char *dirname)
 
void * umalloc (long size)
 
void ufree (void *p)
 

Makro-Dokumentation

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

Definiert in Zeile 20 der Datei stdlib.h.

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

Definiert in Zeile 77 der Datei stdlib.h.

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

Definiert in Zeile 76 der Datei stdlib.h.

#define DOS_ATTR_HIDDEN   0x02 /* hidden file */

Definiert in Zeile 73 der Datei stdlib.h.

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

Definiert in Zeile 72 der Datei stdlib.h.

#define DOS_ATTR_SYSTEM   0x04 /* system file */

Definiert in Zeile 74 der Datei stdlib.h.

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

Definiert in Zeile 75 der Datei stdlib.h.

#define O_APPEND   8

Definiert in Zeile 61 der Datei stdlib.h.

#define O_CREAT   0x100

Definiert in Zeile 66 der Datei stdlib.h.

#define O_RDONLY   0

Definiert in Zeile 58 der Datei stdlib.h.

#define O_RDWR   2

Definiert in Zeile 60 der Datei stdlib.h.

#define O_TRUNC   0x200

Definiert in Zeile 65 der Datei stdlib.h.

#define O_WRONLY   1

Definiert in Zeile 59 der Datei stdlib.h.

Dokumentation der Funktionen

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

Definiert in Zeile 473 der Datei wrappers.c.

474 {
475 #if defined(OPT_FILEIO_STATS)
476  camera_info.fileio_stats.close_count++;
477 #endif
478  if (fd == -1)
479  {
480 #if defined(OPT_FILEIO_STATS)
481  camera_info.fileio_stats.close_badfile_count++;
482 #endif
483  return -1;
484  }
485  int haveSemaphore = takeFileIOSemaphore();
486  if (!haveSemaphore)
487 #if defined(CAM_IS_VID_REC_WORKS)
488  if (!conf.allow_unsafe_io)
489 #endif
490  return -1;
491  int r = _Close(fd);
492  if (haveSemaphore)
493  _GiveSemaphore(fileio_semaphore);
494 #if defined(OPT_FILEIO_STATS)
495  if (r == -1)
496  camera_info.fileio_stats.close_fail_count++;
497 #endif
498  return r;
499 }
void free ( void *  p)

Definiert in Zeile 303 der Datei memmgmt.c.

304 {
305  extern void canon_free(void *p);
306 
307  if (!chdk_free(&aram_heap,p))
308  if (!chdk_free(&exmem_heap,p))
309  canon_free(p);
310 }
int lseek ( int  fd,
long  offset,
int  whence 
)

Definiert in Zeile 527 der Datei wrappers.c.

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

Definiert in Zeile 288 der Datei memmgmt.c.

289 {
290  extern void *canon_malloc(long size);
291 
292  void *p = chdk_malloc(&aram_heap,size);
293 
294  if (p == 0)
295  p = chdk_malloc(&exmem_heap,size);
296 
297  if (p == 0)
298  p = canon_malloc(size);
299 
300  return p;
301 }
long mkdir ( const char *  dirname)

Definiert in Zeile 532 der Datei wrappers.c.

533 {
534 #ifdef MKDIR_RETURN_ONE_ON_SUCCESS
535  // mkdir returns 1 on success, 0 on fail. So, values are inverted, to be compatible with previous versions
536  if(_MakeDirectory_Fut(dirname,1)) return 0;
537  else return 1;
538 #else
539  return _MakeDirectory_Fut(dirname,-1); // meaning of second arg is not clear, firmware seems to use -1
540 #endif
541 }
long mkdir_if_not_exist ( const char *  dirname)

Definiert in Zeile 288 der Datei file_shelter.c.

289 {
290  // Check if directory exists and create it if it does not.
291  if (stat(dirname,0) != 0) return mkdir(dirname);
292  return 0; // Success
293 }
void msleep ( long  msec)

Definiert in Zeile 48 der Datei wrappers.c.

49 {
50  _SleepTask(msec);
51 }
int open ( const char *  name,
int  flags,
int  mode 
)

Definiert in Zeile 444 der Datei wrappers.c.

445 {
446 #if defined(OPT_FILEIO_STATS)
447  camera_info.fileio_stats.open_count++;
448 #endif
449 #if !CAM_DRYOS
450  // Adjust O_TRUNC and O_CREAT flags for VxWorks
451  // Remove O_APPEND flag if present (not in VxWorks)
452  flags = (flags & ~(O_TRUNC|O_CREAT|O_APPEND)) | ((flags & (O_TRUNC|O_CREAT)) << 1);
453 #else
454  if(!name || name[0]!='A')
455  return -1;
456 #endif
457  int haveSemaphore = takeFileIOSemaphore();
458  if (!haveSemaphore)
459 #if defined(CAM_IS_VID_REC_WORKS)
460  if (!conf.allow_unsafe_io)
461 #endif
462  return -1;
463  int fd = _Open(name, flags, mode);
464  if (haveSemaphore)
465  _GiveSemaphore(fileio_semaphore);
466 #if defined(OPT_FILEIO_STATS)
467  if (fd == -1)
468  camera_info.fileio_stats.open_fail_count++;
469 #endif
470  return fd;
471 }
void qsort ( void *  __base,
int  __nelem,
int  __size,
int(*)(const void *__e1, const void *__e2)  __cmp 
)

Definiert in Zeile 1168 der Datei wrappers.c.

1168  {
1169  _qsort(__base, __nelem, __size, __cmp);
1170 }
int rand ( void  )

Definiert in Zeile 1160 der Datei wrappers.c.

1160  {
1161  return _rand();
1162 }
int read ( int  fd,
void *  buffer,
long  nbytes 
)

Definiert in Zeile 522 der Datei wrappers.c.

523 {
524  return _Read(fd, buffer, nbytes);
525 }
int remove ( const char *  name)

Definiert in Zeile 550 der Datei wrappers.c.

551 {
552 #ifdef CAM_DRYOS_2_3_R39
553  // For DryOS R39 and later need to check if 'name' is a file or directory
554  // and call appropriate delete function.
555  struct stat st;
556  if (stat(name,&st) == 0)
557  {
558  if (st.st_attrib & DOS_ATTR_DIRECTORY)
559  return _DeleteDirectory_Fut(name);
560  else
561  return _DeleteFile_Fut(name);
562  }
563  return -1; // return fail - file / directory does not exist
564 #else
565  return _DeleteFile_Fut(name);
566 #endif
567 }
int rename ( const char *  oldname,
const char *  newname 
)

Definiert in Zeile 816 der Datei wrappers.c.

816  {
817  return _RenameFile_Fut(oldname, newname);
818 }
unsigned char SetFileAttributes ( const char *  fn,
unsigned char  attr 
)

Definiert in Zeile 1768 der Datei wrappers.c.

1769 {
1770 #ifdef CAM_DRYOS_2_3_R39
1771  return _SetFileAttributes(fn, attr);
1772 #else
1773  int fd;
1774  unsigned char ret = -1;
1775 
1776  fd = open(fn, 0, 0);
1777  if( fd ) {
1778  _SetFileAttributes(fd, attr);
1779  close(fd);
1780  ret = attr;
1781  }
1782  return ret;
1783 #endif
1784 }
long sprintf ( char *  s,
const char *  st,
  ... 
)

Definiert in Zeile 895 der Datei wrappers.c.

896 {
897  long res;
898  __builtin_va_list va;
899  __builtin_va_start(va, st);
900  res = _vsprintf(s, st, va);
901  __builtin_va_end(va);
902  return res;
903 }
void* srand ( unsigned int  seed)

Definiert in Zeile 1164 der Datei wrappers.c.

1164  {
1165  return _srand(seed);
1166 }
int stat ( const char *  name,
struct stat pStat 
)

Definiert in Zeile 747 der Datei wrappers.c.

748 {
749  // sanity check. canon firmware hangup if start not from 'A/'
750  if ( !name || (name[0] | 0x20)!='a' || name[1]!='/' ) return 1;
751 
752  // use temp __stat stucture to match camera firmware
753  // and copy values across to output
754  struct __stat lStat;
755  int rv = _stat(name, &lStat);
756  if (pStat)
757  {
758  if (rv == 0)
759  {
760  pStat->st_attrib = lStat.st_attrib;
761  pStat->st_size = lStat.st_size;
762  pStat->st_ctime = lStat.st_ctime;
763  pStat->st_mtime = lStat.st_mtime;
764  }
765  else
766  {
767  memset( pStat, 0, sizeof(struct stat));
768  }
769  }
770  return rv;
771 }
long strtol ( const char *  nptr,
char **  endptr,
int  base 
)

Definiert in Zeile 874 der Datei wrappers.c.

874  {
875  return _strtol(nptr, endptr, base);
876 }
unsigned long strtoul ( const char *  nptr,
char **  endptr,
int  base 
)

Definiert in Zeile 878 der Datei wrappers.c.

878  {
879 #if CAM_DRYOS
880  return (unsigned long)_strtolx(nptr, endptr, base, 0);
881 #else
882  return _strtoul(nptr, endptr, base);
883 #endif
884 }
void ufree ( void *  p)

Definiert in Zeile 1071 der Datei wrappers.c.

1071  {
1072 #if CAM_DRYOS
1074 #else
1078  }
1079 #endif
1080 }
void* umalloc ( long  size)

Definiert in Zeile 1057 der Datei wrappers.c.

1057  {
1058 #if CAM_DRYOS
1059  return _AllocateUncacheableMemory(size);
1060 #else
1062  return 0;
1063  } else {
1064  void *r=_AllocateUncacheableMemory(size);
1066  return r;
1067  }
1068 #endif
1069 }
int write ( int  fd,
const void *  buffer,
long  nbytes 
)

Definiert in Zeile 501 der Datei wrappers.c.

502 {
503  if (fd == -1)
504  {
505 #if defined(OPT_FILEIO_STATS)
506  camera_info.fileio_stats.write_badfile_count++;
507 #endif
508  return -1;
509  }
510  int haveSemaphore = takeFileIOSemaphore();
511  if (!haveSemaphore)
512 #if defined(CAM_IS_VID_REC_WORKS)
513  if (!conf.allow_unsafe_io)
514 #endif
515  return -1;
516  int r = _Write(fd, buffer, nbytes);
517  if (haveSemaphore)
518  _GiveSemaphore(fileio_semaphore);
519  return r;
520 }