~galfy/helenos/bird-port-mainline

« back to all changes in this revision

Viewing changes to uspace/app/bdsh/cmds/modules/rm/rm.h

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef RM_H
 
2
#define RM_H
 
3
 
 
4
/* Return values for rm_scope() */
 
5
#define RM_BOGUS 0
 
6
#define RM_FILE  1
 
7
#define RM_DIR   2
 
8
 
 
9
/* Flags for rm_update() */
 
10
#define _RM_ENTRY   0
 
11
#define _RM_ADVANCE 1
 
12
#define _RM_REWIND  2
 
13
#define _RM_EXIT    3
 
14
 
 
15
/* A simple job structure */
 
16
typedef struct {
 
17
        /* Options set at run time */
 
18
        unsigned int force;      /* -f option */
 
19
        unsigned int recursive;  /* -r option */
 
20
        unsigned int safe;       /* -s option */
 
21
 
 
22
        /* Keeps track of the job in progress */
 
23
        int advance; /* How far deep we've gone since entering */
 
24
        DIR *entry;  /* Entry point to the tree being removed */
 
25
        char *owd;   /* Where we were when we invoked rm */
 
26
        char *cwd;   /* Current directory being transversed */
 
27
        char *nwd;   /* Next directory to be transversed */
 
28
 
 
29
        /* Counters */
 
30
        int f_removed; /* Number of files unlinked */
 
31
        int d_removed; /* Number of directories unlinked */
 
32
} rm_job_t;
 
33
 
 
34
 
 
35
/* Prototypes for the rm command, excluding entry points */
 
36
static unsigned int rm_start(rm_job_t *);
 
37
static void rm_end(rm_job_t *rm);
 
38
static unsigned int rm_recursive(const char *);
 
39
static unsigned int rm_single(const char *);
 
40
static unsigned int rm_scope(const char *);
 
41
 
 
42
#endif /* RM_H */
 
43