1ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross/* 2ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * Copyright (C) 2010 The Android Open Source Project 3ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 4ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * Licensed under the Apache License, Version 2.0 (the "License"); 5ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * you may not use this file except in compliance with the License. 6ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * You may obtain a copy of the License at 7ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 8ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * http://www.apache.org/licenses/LICENSE-2.0 9ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 10ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * Unless required by applicable law or agreed to in writing, software 11ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * distributed under the License is distributed on an "AS IS" BASIS, 12ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * See the License for the specific language governing permissions and 14ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * limitations under the License. 15ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross */ 16ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 17ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#ifndef _DIRECTORY_H_ 18ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define _DIRECTORY_H_ 19ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 20ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossstruct dentry { 21ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross char *path; 22ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross char *full_path; 23ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross const char *filename; 24ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross char *link; 25ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross unsigned long size; 26ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross u8 file_type; 27ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross u16 mode; 28ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross u16 uid; 29ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross u16 gid; 30ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross u32 *inode; 31de61f980c7b034eefac6e0ace718b3c1eb3f6252Colin Cross u32 mtime; 32b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalley char *secon; 33ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross}; 34ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 35ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossu32 make_directory(u32 dir_inode_num, u32 entries, struct dentry *dentries, 368aef66d2125af8de7672a12895276802fcc1948fColin Cross u32 dirs); 37ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossu32 make_file(const char *filename, u64 len); 38ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossu32 make_link(const char *filename, const char *link); 39de61f980c7b034eefac6e0ace718b3c1eb3f6252Colin Crossint inode_set_permissions(u32 inode_num, u16 mode, u16 uid, u16 gid, u32 mtime); 40b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalleyint inode_set_selinux(u32 inode_num, const char *secon); 41ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#endif 42