#include <stdio.h>
struct pattern
{
unsigned int status :1;
}patterns[32]={{0}};
void set_busy(struct pattern *ps,int i);
void set_idle(struct pattern *ps,int i);
int count_busy(struct pattern *ps);
void set_busy_range(struct pattern *ps,int from,int to);
int is_busy(struct pattern *ps,int i);
int main()
{
int i = 0;
struct pattern *ps = patterns;
//set_busy_range(ps,5,10);
for (ps = patterns;ps<patterns+32;ps++)
{
printf("pattern[%d]=%d\n",i,ps->status);
i++;
}
printf("count = %d\n",count_busy(ps));
return 0;
}
int count_busy(struct pattern *ps)
{
int c1=0;
for(ps=patterns;ps<patterns+32;ps++)
{
if (ps->status!=0)
c1++;
}
return c1;
}
void set_busy_range(struct pattern *ps,int from,int to)
{
for(ps=patterns+from;ps<=patterns+to;ps++)
{
ps->status=1;
}
}
int is_busy(struct pattern *ps,int i)
{
ps = ps+i;
return (ps->status==1)? 1:0;
}
void set_busy(struct pattern *ps,int i)
{
ps = ps+i;
ps->status=1;
}
void set_idle(struct pattern *ps,int i)
{
ps=ps+i;
ps->status=0;
}
struct pattern
{
unsigned int status :1;
}patterns[32]={{0}};
void set_busy(struct pattern *ps,int i);
void set_idle(struct pattern *ps,int i);
int count_busy(struct pattern *ps);
void set_busy_range(struct pattern *ps,int from,int to);
int is_busy(struct pattern *ps,int i);
int main()
{
int i = 0;
struct pattern *ps = patterns;
//set_busy_range(ps,5,10);
for (ps = patterns;ps<patterns+32;ps++)
{
printf("pattern[%d]=%d\n",i,ps->status);
i++;
}
printf("count = %d\n",count_busy(ps));
return 0;
}
int count_busy(struct pattern *ps)
{
int c1=0;
for(ps=patterns;ps<patterns+32;ps++)
{
if (ps->status!=0)
c1++;
}
return c1;
}
void set_busy_range(struct pattern *ps,int from,int to)
{
for(ps=patterns+from;ps<=patterns+to;ps++)
{
ps->status=1;
}
}
int is_busy(struct pattern *ps,int i)
{
ps = ps+i;
return (ps->status==1)? 1:0;
}
void set_busy(struct pattern *ps,int i)
{
ps = ps+i;
ps->status=1;
}
void set_idle(struct pattern *ps,int i)
{
ps=ps+i;
ps->status=0;
}