Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: sandbox/linux/seccomp-bpf/codegen.h

Issue 66723007: Make sandbox/linux/seccomp-bpf/ follow the style guide. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (empty) rebase Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sandbox/linux/seccomp-bpf/bpf_tests.h ('k') | sandbox/linux/seccomp-bpf/codegen.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sandbox/linux/seccomp-bpf/codegen.h
diff --git a/sandbox/linux/seccomp-bpf/codegen.h b/sandbox/linux/seccomp-bpf/codegen.h
index 88521c2b52dd20fa303cb46ea0a6aca4594e9634..6ef76037e2899541a63c00799220d03dcaba559d 100644
--- a/sandbox/linux/seccomp-bpf/codegen.h
+++ b/sandbox/linux/seccomp-bpf/codegen.h
@@ -13,14 +13,13 @@
#include "sandbox/linux/seccomp-bpf/instruction.h"
#include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
-
namespace playground2 {
-typedef std::vector<Instruction *> Instructions;
-typedef std::vector<BasicBlock *> BasicBlocks;
-typedef std::map<const Instruction *, int> BranchTargets;
-typedef std::map<const Instruction *, BasicBlock *> TargetsToBlocks;
-typedef std::map<const BasicBlock *, int> IncomingBranches;
+typedef std::vector<Instruction*> Instructions;
+typedef std::vector<BasicBlock*> BasicBlocks;
+typedef std::map<const Instruction*, int> BranchTargets;
+typedef std::map<const Instruction*, BasicBlock*> TargetsToBlocks;
+typedef std::map<const BasicBlock*, int> IncomingBranches;
// The code generator instantiates a basic compiler that can convert a
// graph of BPF instructions into a well-formed stream of BPF instructions.
@@ -66,16 +65,19 @@ class CodeGen {
// are owned by the CodeGen object. They do not need to be explicitly
// deleted.
// For details on the possible parameters refer to <linux/filter.h>
- Instruction *MakeInstruction(uint16_t code, uint32_t k,
- Instruction *next = NULL);
- Instruction *MakeInstruction(uint16_t code, const ErrorCode& err);
- Instruction *MakeInstruction(uint16_t code, uint32_t k,
- Instruction *jt, Instruction *jf);
+ Instruction* MakeInstruction(uint16_t code,
+ uint32_t k,
+ Instruction* next = NULL);
+ Instruction* MakeInstruction(uint16_t code, const ErrorCode& err);
+ Instruction* MakeInstruction(uint16_t code,
+ uint32_t k,
+ Instruction* jt,
+ Instruction* jf);
// Join two (sequences of) instructions. This is useful, if the "next"
// parameter had not originally been given in the call to MakeInstruction(),
// or if a (conditional) jump still has an unsatisfied target.
- void JoinInstructions(Instruction *head, Instruction *tail);
+ void JoinInstructions(Instruction* head, Instruction* tail);
// Traverse the graph of instructions and visit each instruction once.
// Traversal order is implementation-defined. It is acceptable to make
@@ -83,68 +85,69 @@ class CodeGen {
// do not affect traversal.
// The "fnc" function gets called with both the instruction and the opaque
// "aux" pointer.
- void Traverse(Instruction *, void (*fnc)(Instruction *, void *aux),
- void *aux);
+ void Traverse(Instruction*, void (*fnc)(Instruction*, void* aux), void* aux);
// Compiles the graph of instructions into a BPF program that can be passed
// to the kernel. Please note that this function modifies the graph in place
// and must therefore only be called once per graph.
- void Compile(Instruction *instructions, Sandbox::Program *program);
+ void Compile(Instruction* instructions, Sandbox::Program* program);
private:
friend class CodeGenUnittestHelper;
// Find all the instructions that are the target of BPF_JMPs.
void FindBranchTargets(const Instruction& instructions,
- BranchTargets *branch_targets);
+ BranchTargets* branch_targets);
// Combine instructions between "head" and "tail" into a new basic block.
// Basic blocks are defined as sequences of instructions whose only branch
// target is the very first instruction; furthermore, any BPF_JMP or BPF_RET
// instruction must be at the very end of the basic block.
- BasicBlock *MakeBasicBlock(Instruction *head, Instruction *tail);
+ BasicBlock* MakeBasicBlock(Instruction* head, Instruction* tail);
// Creates a basic block and adds it to "basic_blocks"; sets "first_block"
// if it is still NULL.
- void AddBasicBlock(Instruction *head, Instruction *tail,
+ void AddBasicBlock(Instruction* head,
+ Instruction* tail,
const BranchTargets& branch_targets,
- TargetsToBlocks *basic_blocks, BasicBlock **first_block);
+ TargetsToBlocks* basic_blocks,
+ BasicBlock** first_block);
// Cuts the DAG of instructions into basic blocks.
- BasicBlock *CutGraphIntoBasicBlocks(Instruction *instructions,
+ BasicBlock* CutGraphIntoBasicBlocks(Instruction* instructions,
const BranchTargets& branch_targets,
- TargetsToBlocks *blocks);
+ TargetsToBlocks* blocks);
// Find common tail sequences of basic blocks and coalesce them.
- void MergeTails(TargetsToBlocks *blocks);
+ void MergeTails(TargetsToBlocks* blocks);
// For each basic block, compute the number of incoming branches.
- void ComputeIncomingBranches(BasicBlock *block,
+ void ComputeIncomingBranches(BasicBlock* block,
const TargetsToBlocks& targets_to_blocks,
- IncomingBranches *incoming_branches);
+ IncomingBranches* incoming_branches);
// Topologically sort the basic blocks so that all jumps are forward jumps.
// This is a requirement for any well-formed BPF program.
- void TopoSortBasicBlocks(BasicBlock *first_block,
+ void TopoSortBasicBlocks(BasicBlock* first_block,
const TargetsToBlocks& blocks,
- BasicBlocks *basic_blocks);
+ BasicBlocks* basic_blocks);
// Convert jt_ptr_ and jf_ptr_ fields in BPF_JMP instructions to valid
// jt_ and jf_ jump offsets. This can result in BPF_JA instructions being
// inserted, if we need to jump over more than 256 instructions.
- void ComputeRelativeJumps(BasicBlocks *basic_blocks,
+ void ComputeRelativeJumps(BasicBlocks* basic_blocks,
const TargetsToBlocks& targets_to_blocks);
// Concatenate instructions from all basic blocks into a BPF program that
// can be passed to the kernel.
- void ConcatenateBasicBlocks(const BasicBlocks&, Sandbox::Program *program);
+ void ConcatenateBasicBlocks(const BasicBlocks&, Sandbox::Program* program);
// We stick all instructions and basic blocks into pools that get destroyed
// when the CodeGen object is destroyed. This way, we neither need to worry
// about explicitly managing ownership, nor do we need to worry about using
// smart pointers in the presence of circular references.
Instructions instructions_;
- BasicBlocks basic_blocks_;
+ BasicBlocks basic_blocks_;
// Compile() must only ever be called once as it makes destructive changes
// to the DAG.
« no previous file with comments | « sandbox/linux/seccomp-bpf/bpf_tests.h ('k') | sandbox/linux/seccomp-bpf/codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698