1547                 if (error != 0)
1548                         return (error);
1549         } else {
1550                 len = strlen(sp) + 1;
1551                 if (len > STK_AVAIL(args))
1552                         return (E2BIG);
1553                 bcopy(sp, args->stk_strp, len);
1554         }
1555 
1556         args->stk_strp += len;
1557 
1558         return (0);
1559 }
1560 
1561 /*
1562  * Add a fixed size byte array to the stack (only from kernel space).
1563  */
1564 static int
1565 stk_byte_add(uarg_t *args, const uint8_t *sp, size_t len)
1566 {
1567         int error;
1568 
1569         if (STK_AVAIL(args) < sizeof (int))
1570                 return (E2BIG);
1571         *--args->stk_offp = args->stk_strp - args->stk_base;
1572 
1573         if (len > STK_AVAIL(args))
1574                 return (E2BIG);
1575         bcopy(sp, args->stk_strp, len);
1576 
1577         args->stk_strp += len;
1578 
1579         return (0);
1580 }
1581 
1582 static int
1583 stk_getptr(uarg_t *args, char *src, char **dst)
1584 {
1585         int error;
1586 
1587         if (args->from_model == DATAMODEL_NATIVE) {
1588                 ulong_t ptr;
 
 | 
 
 
1547                 if (error != 0)
1548                         return (error);
1549         } else {
1550                 len = strlen(sp) + 1;
1551                 if (len > STK_AVAIL(args))
1552                         return (E2BIG);
1553                 bcopy(sp, args->stk_strp, len);
1554         }
1555 
1556         args->stk_strp += len;
1557 
1558         return (0);
1559 }
1560 
1561 /*
1562  * Add a fixed size byte array to the stack (only from kernel space).
1563  */
1564 static int
1565 stk_byte_add(uarg_t *args, const uint8_t *sp, size_t len)
1566 {
1567         if (STK_AVAIL(args) < sizeof (int))
1568                 return (E2BIG);
1569         *--args->stk_offp = args->stk_strp - args->stk_base;
1570 
1571         if (len > STK_AVAIL(args))
1572                 return (E2BIG);
1573         bcopy(sp, args->stk_strp, len);
1574 
1575         args->stk_strp += len;
1576 
1577         return (0);
1578 }
1579 
1580 static int
1581 stk_getptr(uarg_t *args, char *src, char **dst)
1582 {
1583         int error;
1584 
1585         if (args->from_model == DATAMODEL_NATIVE) {
1586                 ulong_t ptr;
 
 |