On Mon, Jan 30, 2017 at 05:35:28PM +0900, Taeung Song wrote:

SNIP

> +#define for_each_event_system(dir, dent, tps)                        \
> +     while ((dent = readdir(dir)))                           \
> +             if (dent->d_type == DT_DIR &&                   \
> +                 (strcmp(dent->d_name, ".")) &&              \
> +                 (strcmp(dent->d_name, "..")) &&             \
> +                 (name_in_tp_list(dent->d_name, tps)))
> +
>  static int copy_event_system(const char *sys, struct tracepoint_path *tps)
>  {
>       struct dirent *dent;
> @@ -186,12 +193,7 @@ static int copy_event_system(const char *sys, struct 
> tracepoint_path *tps)
>               return -errno;
>       }
>  
> -     while ((dent = readdir(dir))) {
> -             if (dent->d_type != DT_DIR ||
> -                 strcmp(dent->d_name, ".") == 0 ||
> -                 strcmp(dent->d_name, "..") == 0 ||
> -                 !name_in_tp_list(dent->d_name, tps))
> -                     continue;
> +     for_each_event_system(dir, dent, tps) {
>               if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) {
>                       err = -ENOMEM;
>                       goto out;
> @@ -210,12 +212,7 @@ static int copy_event_system(const char *sys, struct 
> tracepoint_path *tps)
>       }
>  
>       rewinddir(dir);
> -     while ((dent = readdir(dir))) {
> -             if (dent->d_type != DT_DIR ||
> -                 strcmp(dent->d_name, ".") == 0 ||
> -                 strcmp(dent->d_name, "..") == 0 ||
> -                 !name_in_tp_list(dent->d_name, tps))
> -                     continue;
> +     for_each_event_system(dir, dent, tps) {
>               if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) {
>                       err = -ENOMEM;
>                       goto out;
> @@ -266,6 +263,14 @@ static bool system_in_tp_list(char *sys, struct 
> tracepoint_path *tps)
>       return false;
>  }
>  
> +#define for_each_event_file(dir, dent, tps)                  \
> +     while ((dent = readdir(dir)))                           \
> +             if (dent->d_type == DT_DIR &&                   \
> +                 (strcmp(dent->d_name, ".")) &&              \
> +                 (strcmp(dent->d_name, "..")) &&             \
> +                 (strcmp(dent->d_name, "ftrace")) &&         \
> +                 (system_in_tp_list(dent->d_name, tps)))

looks almost the same as for_each_event_system macro,
what's the difference other than 'ftrace' check?
also why's one 'file' and the other 'system'? looks
like we coud have just one macro in here

jirka

Reply via email to