CHDK_DE Vorschauversion  Trunk Rev. 5830
 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 475 der Datei wrappers.c.

476 {
477 #if defined(OPT_FILEIO_STATS)
478  camera_info.fileio_stats.close_count++;
479 #endif
480  if (fd == -1)
481  {
482 #if defined(OPT_FILEIO_STATS)
483  camera_info.fileio_stats.close_badfile_count++;
484 #endif
485  return -1;
486  }
487  int haveSemaphore = takeFileIOSemaphore();
488  if (!haveSemaphore)
489 #if defined(CAM_IS_VID_REC_WORKS)
490  if (!conf.allow_unsafe_io)
491 #endif
492  return -1;
493  int r = _Close(fd);
494  if (haveSemaphore)
495  _GiveSemaphore(fileio_semaphore);
496 #if defined(OPT_FILEIO_STATS)
497  if (r == -1)
498  camera_info.fileio_stats.close_fail_count++;
499 #endif
500  return r;
501 }
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 529 der Datei wrappers.c.

530 {
531  return _lseek(fd, offset, whence); /* yes, it's lower-case lseek here since Lseek calls just lseek (A610) */
532 }
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 534 der Datei wrappers.c.

535 {
536 #ifdef MKDIR_RETURN_ONE_ON_SUCCESS
537  // mkdir returns 1 on success, 0 on fail. So, values are inverted, to be compatible with previous versions
538  if(_MakeDirectory_Fut(dirname,1)) return 0;
539  else return 1;
540 #else
541  return _MakeDirectory_Fut(dirname,-1); // meaning of second arg is not clear, firmware seems to use -1
542 #endif
543 }
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 446 der Datei wrappers.c.

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

Definiert in Zeile 1177 der Datei wrappers.c.

1177  {
1178  _qsort(__base, __nelem, __size, __cmp);
1179 }
int rand ( void  )

Definiert in Zeile 1169 der Datei wrappers.c.

1169  {
1170  return _rand();
1171 }
int read ( int  fd,
void *  buffer,
long  nbytes 
)

Definiert in Zeile 524 der Datei wrappers.c.

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

Definiert in Zeile 552 der Datei wrappers.c.

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

Definiert in Zeile 818 der Datei wrappers.c.

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

Definiert in Zeile 1805 der Datei wrappers.c.

1806 {
1807 #ifdef CAM_DRYOS_2_3_R39
1808  return _SetFileAttributes(fn, attr);
1809 #else
1810  int fd;
1811  unsigned char ret = -1;
1812 
1813  fd = open(fn, 0, 0);
1814  if( fd ) {
1815  _SetFileAttributes(fd, attr);
1816  close(fd);
1817  ret = attr;
1818  }
1819  return ret;
1820 #endif
1821 }
long sprintf ( char *  s,
const char *  st,
  ... 
)

Definiert in Zeile 904 der Datei wrappers.c.

905 {
906  long res;
907  __builtin_va_list va;
908  __builtin_va_start(va, st);
909  res = _vsprintf(s, st, va);
910  __builtin_va_end(va);
911  return res;
912 }
void* srand ( unsigned int  seed)

Definiert in Zeile 1173 der Datei wrappers.c.

1173  {
1174  return _srand(seed);
1175 }
int stat ( const char *  name,
struct stat pStat 
)

Definiert in Zeile 749 der Datei wrappers.c.

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

Definiert in Zeile 883 der Datei wrappers.c.

883  {
884  return _strtol(nptr, endptr, base);
885 }
unsigned long strtoul ( const char *  nptr,
char **  endptr,
int  base 
)

Definiert in Zeile 887 der Datei wrappers.c.

887  {
888 #if CAM_DRYOS
889  return (unsigned long)_strtolx(nptr, endptr, base, 0);
890 #else
891  return _strtoul(nptr, endptr, base);
892 #endif
893 }
void ufree ( void *  p)

Definiert in Zeile 1080 der Datei wrappers.c.

1080  {
1081 #if CAM_DRYOS
1083 #else
1087  }
1088 #endif
1089 }
void* umalloc ( long  size)

Definiert in Zeile 1066 der Datei wrappers.c.

1066  {
1067 #if CAM_DRYOS
1068  return _AllocateUncacheableMemory(size);
1069 #else
1071  return 0;
1072  } else {
1073  void *r=_AllocateUncacheableMemory(size);
1075  return r;
1076  }
1077 #endif
1078 }
int write ( int  fd,
const void *  buffer,
long  nbytes 
)

Definiert in Zeile 503 der Datei wrappers.c.

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