Subversion Repositories HelenOS

Rev

Rev 3364 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3277 post 1
#ifndef RM_H
2
#define RM_H
3
 
3337 post 4
/* Return values for rm_scope() */
3296 post 5
#define RM_BOGUS 0
6
#define RM_FILE  1
7
#define RM_DIR   2
8
 
3337 post 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
 
3277 post 35
/* Prototypes for the rm command, excluding entry points */
3364 post 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 *);
3337 post 41
 
3277 post 42
#endif /* RM_H */
43