Subversion Repositories HelenOS

Rev

Rev 3296 | Rev 3346 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3296 Rev 3337
Line 1... Line 1...
1
#ifndef RM_H
1
#ifndef RM_H
2
#define RM_H
2
#define RM_H
3
 
3
 
-
 
4
/* Return values for rm_scope() */
4
#define RM_BOGUS 0
5
#define RM_BOGUS 0
5
#define RM_FILE  1
6
#define RM_FILE  1
6
#define RM_DIR   2
7
#define RM_DIR   2
7
 
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
 
8
/* Prototypes for the rm command, excluding entry points */
35
/* Prototypes for the rm command, excluding entry points */
-
 
36
extern unsigned int rm_start(rm_job_t *);
-
 
37
extern void rm_end(rm_job_t *rm);
9
extern unsigned int rm_recursive(const char *);
38
extern unsigned int rm_recursive(const char *);
10
extern unsigned int rm_single(const char *);
39
extern unsigned int rm_single(const char *);
11
extern unsigned int rm_scope(const char *);
40
extern unsigned int rm_scope(const char *);
-
 
41
 
12
#endif /* RM_H */
42
#endif /* RM_H */
13
 
43