static void ocontext_destroy(struct ocontext *c, int i)
{
- context_destroy(&c->context[0]);
- context_destroy(&c->context[1]);
+ context_destroy(&c->context);
if ( i == OCON_ISID || i == OCON_DTREE )
xfree(c->u.name);
xfree(c);
head = p->ocontexts[OCON_ISID];
for ( c = head; c; c = c->next )
{
- if ( !c->context[0].user )
+ if ( !c->context.user )
{
printk(KERN_ERR "Flask: SID %s was never "
"defined.\n", c->u.name);
rc = -EINVAL;
goto out;
}
- if ( sidtab_insert(s, c->sid[0], &c->context[0]) )
+ if ( sidtab_insert(s, c->sid, &c->context) )
{
printk(KERN_ERR "Flask: unable to load initial "
"SID %s.\n", c->u.name);
rc = next_entry(buf, fp, sizeof(u32));
if ( rc < 0 )
goto bad;
- c->sid[0] = le32_to_cpu(buf[0]);
- rc = context_read_and_validate(&c->context[0], p, fp);
+ c->sid = le32_to_cpu(buf[0]);
+ rc = context_read_and_validate(&c->context, p, fp);
if ( rc )
goto bad;
break;
if ( rc < 0 )
goto bad;
c->u.pirq = le32_to_cpu(buf[0]);
- rc = context_read_and_validate(&c->context[0], p, fp);
+ rc = context_read_and_validate(&c->context, p, fp);
if ( rc )
goto bad;
break;
goto bad;
c->u.ioport.low_ioport = le32_to_cpu(buf[0]);
c->u.ioport.high_ioport = le32_to_cpu(buf[1]);
- rc = context_read_and_validate(&c->context[0], p, fp);
+ rc = context_read_and_validate(&c->context, p, fp);
if ( rc )
goto bad;
break;
c->u.iomem.low_iomem = le32_to_cpu(buf[0]);
c->u.iomem.high_iomem = le32_to_cpu(buf[1]);
}
- rc = context_read_and_validate(&c->context[0], p, fp);
+ rc = context_read_and_validate(&c->context, p, fp);
if ( rc )
goto bad;
break;
if ( rc < 0 )
goto bad;
c->u.device = le32_to_cpu(buf[0]);
- rc = context_read_and_validate(&c->context[0], p, fp);
+ rc = context_read_and_validate(&c->context, p, fp);
if ( rc )
goto bad;
break;
if ( rc < 0 )
goto bad;
c->u.name[len] = 0;
- rc = context_read_and_validate(&c->context[0], p, fp);
+ rc = context_read_and_validate(&c->context, p, fp);
if ( rc )
goto bad;
break;
if ( c )
{
- if ( !c->sid[0] )
+ if ( !c->sid )
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
- *out_sid = c->sid[0];
+ *out_sid = c->sid;
}
else
{
if ( c )
{
- if ( !c->sid[0] )
+ if ( !c->sid )
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
- *out_sid = c->sid[0];
+ *out_sid = c->sid;
}
else
{
c = c->next;
while (c && c->u.iomem.low_iomem <= end) {
- if (!c->sid[0])
+ if (!c->sid)
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
}
if (end <= c->u.iomem.high_iomem) {
/* iteration ends in the middle of this range */
- rc = fn(data, c->sid[0], start, end);
+ rc = fn(data, c->sid, start, end);
goto out;
}
- rc = fn(data, c->sid[0], start, c->u.iomem.high_iomem);
+ rc = fn(data, c->sid, start, c->u.iomem.high_iomem);
if (rc)
goto out;
start = c->u.iomem.high_iomem + 1;
if ( c )
{
- if ( !c->sid[0] )
+ if ( !c->sid )
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
- *out_sid = c->sid[0];
+ *out_sid = c->sid;
}
else
{
c = c->next;
while (c && c->u.ioport.low_ioport <= end) {
- if (!c->sid[0])
+ if (!c->sid)
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
}
if (end <= c->u.ioport.high_ioport) {
/* iteration ends in the middle of this range */
- rc = fn(data, c->sid[0], start, end);
+ rc = fn(data, c->sid, start, end);
goto out;
}
- rc = fn(data, c->sid[0], start, c->u.ioport.high_ioport);
+ rc = fn(data, c->sid, start, c->u.ioport.high_ioport);
if (rc)
goto out;
start = c->u.ioport.high_ioport + 1;
if ( c )
{
- if ( !c->sid[0] )
+ if ( !c->sid )
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
- *out_sid = c->sid[0];
+ *out_sid = c->sid;
}
else
{
if ( c )
{
- if ( !c->sid[0] )
+ if ( !c->sid )
{
- rc = sidtab_context_to_sid(&sidtab, &c->context[0], &c->sid[0]);
+ rc = sidtab_context_to_sid(&sidtab, &c->context, &c->sid);
if ( rc )
goto out;
}
- *out_sid = c->sid[0];
+ *out_sid = c->sid;
}
else
{
if ( (add = xzalloc(struct ocontext)) == NULL )
return -ENOMEM;
- add->sid[0] = sid;
+ add->sid = sid;
POLICY_WRLOCK;
switch( ocon )
{
if ( c->u.pirq == add->u.pirq )
{
- if ( c->sid[0] == sid )
+ if ( c->sid == sid )
break;
printk("%s: Duplicate pirq %d\n", __FUNCTION__, add->u.pirq);
ret = -EEXIST;
if (c && c->u.ioport.low_ioport <= high)
{
if (c->u.ioport.low_ioport == low &&
- c->u.ioport.high_ioport == high && c->sid[0] == sid)
+ c->u.ioport.high_ioport == high && c->sid == sid)
break;
printk("%s: IO Port overlap with entry %#x - %#x\n",
if (c && c->u.iomem.low_iomem <= high)
{
if (c->u.iomem.low_iomem == low &&
- c->u.iomem.high_iomem == high && c->sid[0] == sid)
+ c->u.iomem.high_iomem == high && c->sid == sid)
break;
printk("%s: IO Memory overlap with entry %#"PRIx64" - %#"PRIx64"\n",
{
if ( c->u.device == add->u.device )
{
- if ( c->sid[0] == sid )
+ if ( c->sid == sid )
break;
printk("%s: Duplicate PCI Device %#x\n", __FUNCTION__,
xfree(path);
return -ENOMEM;
}
- add->sid[0] = sid;
+ add->sid = sid;
add->u.name = path;
}
else