BPF_MEMWORDS
uint32_t mem[BPF_MEMWORDS];
__CTASSERT(BPF_MEMWORDS + 2 <= sizeof(bpf_memword_init_t) * NBBY);
__CTASSERT(BPF_MAX_MEMWORDS >= BPF_MEMWORDS);
uint32_t mem[BPF_MEMWORDS];
uint32_t mem[BPF_MEMWORDS];
const size_t memwords = extwords ? extwords : BPF_MEMWORDS;
const size_t memwords = BPF_MEMWORDS;
#define MAX_MEMWORDS BPF_MEMWORDS
#define GET_MEMWORDS(bc) (GET_EXTWORDS(bc) ? GET_EXTWORDS(bc) : BPF_MEMWORDS)
BPF_STMT(BPF_ST, BPF_MEMWORDS-1),
BPF_STMT(BPF_ST, BPF_MEMWORDS-1),
BPF_STMT(BPF_LD+BPF_MEM, BPF_MEMWORDS-1),
ATF_REQUIRE(BPF_MEMWORDS > 1);
BPF_STMT(BPF_ST, BPF_MEMWORDS-1),
BPF_STMT(BPF_LD+BPF_MEM, BPF_MEMWORDS-1),
ATF_REQUIRE(BPF_MEMWORDS > 6);
struct bpf_insn insns[5*BPF_MEMWORDS+2];
uint8_t pkt[BPF_MEMWORDS]; /* the program doesn't read any data */
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS].code = BPF_LD+BPF_W+BPF_LEN;
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS+3*k+1].code = BPF_JMP+BPF_JEQ+BPF_K;
insns[2*BPF_MEMWORDS+3*k+1].k = k+1;
insns[2*BPF_MEMWORDS+3*k+1].jt = 0;
insns[2*BPF_MEMWORDS+3*k+1].jf = 2;
insns[2*BPF_MEMWORDS+3*k+2].code = BPF_LD+BPF_MEM;
insns[2*BPF_MEMWORDS+3*k+2].k = k;
insns[2*BPF_MEMWORDS+3*k+3].code = BPF_RET+BPF_A;
insns[2*BPF_MEMWORDS+3*k+3].k = 0;
insns[5*BPF_MEMWORDS+1].code = BPF_RET+BPF_K;
insns[5*BPF_MEMWORDS+1].k = UINT32_MAX;
BPF_STMT(BPF_STX, BPF_MEMWORDS-1),
struct bpf_insn insns[5*BPF_MEMWORDS+2];
uint8_t pkt[BPF_MEMWORDS]; /* the program doesn't read any data */
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS].code = BPF_LD+BPF_W+BPF_LEN;
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS+3*k+1].code = BPF_JMP+BPF_JEQ+BPF_K;
insns[2*BPF_MEMWORDS+3*k+1].k = k+1;
insns[2*BPF_MEMWORDS+3*k+1].jt = 0;
insns[2*BPF_MEMWORDS+3*k+1].jf = 2;
insns[2*BPF_MEMWORDS+3*k+2].code = BPF_LD+BPF_MEM;
insns[2*BPF_MEMWORDS+3*k+2].k = k;
insns[2*BPF_MEMWORDS+3*k+3].code = BPF_RET+BPF_A;
insns[2*BPF_MEMWORDS+3*k+3].k = 0;
insns[5*BPF_MEMWORDS+1].code = BPF_RET+BPF_K;
insns[5*BPF_MEMWORDS+1].k = UINT32_MAX;
uint32_t mem[BPF_MEMWORDS];
BPF_STMT(BPF_ST, BPF_MEMWORDS-1),
BPF_STMT(BPF_ST, BPF_MEMWORDS-1),
BPF_STMT(BPF_LD+BPF_MEM, BPF_MEMWORDS-1),
ATF_REQUIRE(BPF_MEMWORDS > 1);
BPF_STMT(BPF_ST, BPF_MEMWORDS-1),
BPF_STMT(BPF_LD+BPF_MEM, BPF_MEMWORDS-1),
ATF_REQUIRE(BPF_MEMWORDS > 6);
struct bpf_insn insns[5*BPF_MEMWORDS+2];
uint8_t pkt[BPF_MEMWORDS]; /* the program doesn't read any data */
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS].code = BPF_LD+BPF_W+BPF_LEN;
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS+3*k+1].code = BPF_JMP+BPF_JEQ+BPF_K;
insns[2*BPF_MEMWORDS+3*k+1].k = k+1;
insns[2*BPF_MEMWORDS+3*k+1].jt = 0;
insns[2*BPF_MEMWORDS+3*k+1].jf = 2;
insns[2*BPF_MEMWORDS+3*k+2].code = BPF_LD+BPF_MEM;
insns[2*BPF_MEMWORDS+3*k+2].k = k;
insns[2*BPF_MEMWORDS+3*k+3].code = BPF_RET+BPF_A;
insns[2*BPF_MEMWORDS+3*k+3].k = 0;
insns[5*BPF_MEMWORDS+1].code = BPF_RET+BPF_K;
insns[5*BPF_MEMWORDS+1].k = UINT32_MAX;
BPF_STMT(BPF_STX, BPF_MEMWORDS-1),
struct bpf_insn insns[5*BPF_MEMWORDS+2];
uint8_t pkt[BPF_MEMWORDS]; /* the program doesn't read any data */
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS].code = BPF_LD+BPF_W+BPF_LEN;
for (k = 0; k < BPF_MEMWORDS; k++) {
insns[2*BPF_MEMWORDS+3*k+1].code = BPF_JMP+BPF_JEQ+BPF_K;
insns[2*BPF_MEMWORDS+3*k+1].k = k+1;
insns[2*BPF_MEMWORDS+3*k+1].jt = 0;
insns[2*BPF_MEMWORDS+3*k+1].jf = 2;
insns[2*BPF_MEMWORDS+3*k+2].code = BPF_LD+BPF_MEM;
insns[2*BPF_MEMWORDS+3*k+2].k = k;
insns[2*BPF_MEMWORDS+3*k+3].code = BPF_RET+BPF_A;
insns[2*BPF_MEMWORDS+3*k+3].k = 0;
insns[5*BPF_MEMWORDS+1].code = BPF_RET+BPF_K;
insns[5*BPF_MEMWORDS+1].k = UINT32_MAX;
uint32_t memstore[BPF_MEMWORDS];