Symbol: fsm
lib/libnvmm/libnvmm_x86.c
1824
node_overflow(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
1826
fsm->fn = NULL;
lib/libnvmm/libnvmm_x86.c
1831
fsm_read(struct x86_decode_fsm *fsm, uint8_t *bytes, size_t n)
lib/libnvmm/libnvmm_x86.c
1833
if (fsm->buf + n > fsm->end) {
lib/libnvmm/libnvmm_x86.c
1836
memcpy(bytes, fsm->buf, n);
lib/libnvmm/libnvmm_x86.c
1841
fsm_advance(struct x86_decode_fsm *fsm, size_t n,
lib/libnvmm/libnvmm_x86.c
1844
fsm->buf += n;
lib/libnvmm/libnvmm_x86.c
1845
if (fsm->buf > fsm->end) {
lib/libnvmm/libnvmm_x86.c
1846
fsm->fn = node_overflow;
lib/libnvmm/libnvmm_x86.c
1848
fsm->fn = fn;
lib/libnvmm/libnvmm_x86.c
1868
node_movs(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
1885
fsm_advance(fsm, 0, NULL);
lib/libnvmm/libnvmm_x86.c
1897
node_cmps(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
1914
fsm_advance(fsm, 0, NULL);
lib/libnvmm/libnvmm_x86.c
1924
node_stlo(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
1955
fsm_advance(fsm, 0, NULL);
lib/libnvmm/libnvmm_x86.c
1961
node_dmo(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
1982
if (fsm_read(fsm, (uint8_t *)&stdmo->u.dmo, adrsize) == -1) {
lib/libnvmm/libnvmm_x86.c
1985
fsm_advance(fsm, adrsize, NULL);
lib/libnvmm/libnvmm_x86.c
2007
node_immediate(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2027
if (fsm_read(fsm, (uint8_t *)&store->u.imm.data, immsize) == -1) {
lib/libnvmm/libnvmm_x86.c
2030
fsm_advance(fsm, immsize, NULL);
lib/libnvmm/libnvmm_x86.c
2040
node_disp(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2056
if (fsm_read(fsm, (uint8_t *)&data, n) == -1) {
lib/libnvmm/libnvmm_x86.c
2060
if (__predict_true(fsm->is64bit)) {
lib/libnvmm/libnvmm_x86.c
2067
fsm_advance(fsm, n, node_immediate);
lib/libnvmm/libnvmm_x86.c
2069
fsm_advance(fsm, n, NULL);
lib/libnvmm/libnvmm_x86.c
2080
node_dual(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2105
fsm_advance(fsm, 1, node_immediate);
lib/libnvmm/libnvmm_x86.c
2107
fsm_advance(fsm, 1, NULL);
lib/libnvmm/libnvmm_x86.c
2110
fsm_advance(fsm, 1, node_disp);
lib/libnvmm/libnvmm_x86.c
2150
node_sib(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2157
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2192
fsm_advance(fsm, 1, node_disp);
lib/libnvmm/libnvmm_x86.c
2194
fsm_advance(fsm, 1, node_immediate);
lib/libnvmm/libnvmm_x86.c
2196
fsm_advance(fsm, 1, NULL);
lib/libnvmm/libnvmm_x86.c
2250
is_rip_relative(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2252
return (fsm->is64bit && /* RIP-relative only in 64bit mode */
lib/libnvmm/libnvmm_x86.c
2258
is_disp32_only(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2260
return (!fsm->is64bit && /* no disp32-only in 64bit mode */
lib/libnvmm/libnvmm_x86.c
2267
is_disp16_only(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2275
is_dual(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2303
node_regmodrm(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2310
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2366
fsm_advance(fsm, 1, node_sib);
lib/libnvmm/libnvmm_x86.c
2370
if (is_rip_relative(fsm, instr)) {
lib/libnvmm/libnvmm_x86.c
2375
fsm_advance(fsm, 1, node_disp);
lib/libnvmm/libnvmm_x86.c
2379
if (is_disp32_only(fsm, instr)) {
lib/libnvmm/libnvmm_x86.c
2384
fsm_advance(fsm, 1, node_disp);
lib/libnvmm/libnvmm_x86.c
2388
if (__predict_false(is_disp16_only(fsm, instr))) {
lib/libnvmm/libnvmm_x86.c
2393
fsm_advance(fsm, 1, node_disp);
lib/libnvmm/libnvmm_x86.c
2397
if (__predict_false(is_dual(fsm, instr))) {
lib/libnvmm/libnvmm_x86.c
2399
fsm_advance(fsm, 0, node_dual);
lib/libnvmm/libnvmm_x86.c
2413
fsm_advance(fsm, 1, node_immediate);
lib/libnvmm/libnvmm_x86.c
2415
fsm_advance(fsm, 1, NULL);
lib/libnvmm/libnvmm_x86.c
2420
fsm_advance(fsm, 1, node_immediate);
lib/libnvmm/libnvmm_x86.c
2422
fsm_advance(fsm, 1, NULL);
lib/libnvmm/libnvmm_x86.c
2425
fsm_advance(fsm, 1, node_disp);
lib/libnvmm/libnvmm_x86.c
2432
get_operand_size(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2443
if (!fsm->is16bit) {
lib/libnvmm/libnvmm_x86.c
2462
get_address_size(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2464
if (fsm->is64bit) {
lib/libnvmm/libnvmm_x86.c
2471
if (fsm->is32bit) {
lib/libnvmm/libnvmm_x86.c
2486
node_primary_opcode(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2491
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2502
instr->operand_size = get_operand_size(fsm, instr);
lib/libnvmm/libnvmm_x86.c
2503
instr->address_size = get_address_size(fsm, instr);
lib/libnvmm/libnvmm_x86.c
2505
if (fsm->is64bit && (instr->operand_size == 4)) {
lib/libnvmm/libnvmm_x86.c
2511
fsm_advance(fsm, 1, node_regmodrm);
lib/libnvmm/libnvmm_x86.c
2514
fsm_advance(fsm, 1, node_dmo);
lib/libnvmm/libnvmm_x86.c
2516
fsm_advance(fsm, 1, node_stlo);
lib/libnvmm/libnvmm_x86.c
2518
fsm_advance(fsm, 1, node_movs);
lib/libnvmm/libnvmm_x86.c
2520
fsm_advance(fsm, 1, node_cmps);
lib/libnvmm/libnvmm_x86.c
2529
node_secondary_opcode(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2534
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2545
instr->operand_size = get_operand_size(fsm, instr);
lib/libnvmm/libnvmm_x86.c
2546
instr->address_size = get_address_size(fsm, instr);
lib/libnvmm/libnvmm_x86.c
2548
if (fsm->is64bit && (instr->operand_size == 4)) {
lib/libnvmm/libnvmm_x86.c
2564
fsm_advance(fsm, 1, node_regmodrm);
lib/libnvmm/libnvmm_x86.c
2573
node_main(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2582
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2591
fsm_advance(fsm, 1, node_secondary_opcode);
lib/libnvmm/libnvmm_x86.c
2598
fsm->fn = node_primary_opcode;
lib/libnvmm/libnvmm_x86.c
2601
fsm->fn = node_primary_opcode;
lib/libnvmm/libnvmm_x86.c
2608
node_rex_prefix(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2614
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2619
if (__predict_false(!fsm->is64bit)) {
lib/libnvmm/libnvmm_x86.c
2630
fsm_advance(fsm, n, node_main);
lib/libnvmm/libnvmm_x86.c
2635
node_legacy_prefix(struct x86_decode_fsm *fsm, struct x86_instr *instr)
lib/libnvmm/libnvmm_x86.c
2639
if (fsm_read(fsm, &byte, sizeof(byte)) == -1) {
lib/libnvmm/libnvmm_x86.c
2667
fsm_advance(fsm, 0, node_rex_prefix);
lib/libnvmm/libnvmm_x86.c
2671
fsm_advance(fsm, 1, node_legacy_prefix);
lib/libnvmm/libnvmm_x86.c
2679
struct x86_decode_fsm fsm;
lib/libnvmm/libnvmm_x86.c
2687
fsm.is64bit = is_64bit(state);
lib/libnvmm/libnvmm_x86.c
2688
fsm.is32bit = is_32bit(state);
lib/libnvmm/libnvmm_x86.c
2689
fsm.is16bit = is_16bit(state);
lib/libnvmm/libnvmm_x86.c
2691
fsm.fn = node_legacy_prefix;
lib/libnvmm/libnvmm_x86.c
2692
fsm.buf = inst_bytes;
lib/libnvmm/libnvmm_x86.c
2693
fsm.end = inst_bytes + inst_len;
lib/libnvmm/libnvmm_x86.c
2695
while (fsm.fn != NULL) {
lib/libnvmm/libnvmm_x86.c
2696
ret = (*fsm.fn)(&fsm, instr);
lib/libnvmm/libnvmm_x86.c
2710
instr->len = fsm.buf - inst_bytes;
sbin/newfs/mkfs.c
1605
const struct fsm *fsm;
sbin/newfs/mkfs.c
1631
for (fsm = fs_magics; ; fsm++) {
sbin/newfs/mkfs.c
1633
if (fsm->mask == 0)
sbin/newfs/mkfs.c
1635
v = oldfs[fsm->offset];
sbin/newfs/mkfs.c
1636
if ((v & fsm->mask) == fsm->magic ||
sbin/newfs/mkfs.c
1637
(bswap32(v) & fsm->mask) == fsm->magic)
sbin/newfs/mkfs.c
1642
oldfs[fsm->offset] = 0;
sbin/newfs_ext2fs/mke2fs.c
798
const struct fsm *fsm;
sbin/newfs_ext2fs/mke2fs.c
833
for (fsm = fs_magics;; fsm++) {
sbin/newfs_ext2fs/mke2fs.c
835
if (fsm->mask == 0)
sbin/newfs_ext2fs/mke2fs.c
837
v = oldfs[fsm->offset];
sbin/newfs_ext2fs/mke2fs.c
838
if ((v & fsm->mask) == fsm->magic ||
sbin/newfs_ext2fs/mke2fs.c
839
(bswap32(v) & fsm->mask) == fsm->magic)
sbin/newfs_ext2fs/mke2fs.c
844
oldfs[fsm->offset] = 0;